Re: [freebsd] Скорость работы NFS при копировании блоками разного размера

2012-03-26 Пенетрантность Владимир Друзенко

25.03.2012 15:56, Mikolaj Golub пишет:

On Sun, 25 Mar 2012 07:11:50 +0400 Владимир Друзенко wrote:

  ВД  Тред нашёл:
  ВД  
http://lists.freebsd.org/pipermail/freebsd-stable/2011-November/064611.html
  ВД  Но в нём обсуждается другой вопрос - просто о низкой пропускной
  ВД  способности NFS.

  ВД  Указанные там тюнинги увеличили скорость в 1.1-1.4 раза, но скачок при
  ВД  размере буфера 800-900Kb так и остался:
  ВД  # dd if=/dev/zero of=/mnt/documents/test.zero bs=*884983* count=256
  ВД  226555648 bytes transferred in 55.568878 secs (*4077024* bytes/sec)

  ВД  # dd if=/dev/zero of=/mnt/documents/test.zero bs=*884982* count=256
  ВД  226555392 bytes transferred in 2.931009 secs (*77296040* bytes/sec)

  ВД  Тюнинги на клиенте: nfs опции mount -
  ВД  rw,intr,soft,bg,nfsv3,readahead=4,wsize=65536,rsize=65536,tcp,async.
  ВД  Тюнинги на сервере: zfs set sync=disabled datastorage/documents/
  ВД  vfs.nfsrv.async/ в 9.0 нет.
  ВД  Патч из треда и для /vfs.nfsrv.async /так же НЕ накладывал.


  ВД  Может ещё какие мысли?

Задампить трафик tcpdump-ом для двух случаев и посмотреть в wireshark в чем
отличие.



Спасибо за наводку.

Отфильтровал оба случая по наличию nfs.write.committed: в случае 
нормальной скорости Committed: UNSTABLE (0), а в случае плохой 
Committed: FILE_SYNC (2).
При копировании 8 блоков вышеуказанных размеров получается чуть более 
100 таких строк в каждом случае:
V3 WRITE Replay (Call xxx) Len:65536 UNSTABLE и V3 WRITE Replay (Call 
xxx) Len:65536 FILE_SYNC соответственно.
Также в случае медленной скорости было 6 пакетов вида: [RPC duplicate of 
#4302][TCP Retransmission] V3 WRITE Reply (Call In 4274) Len:65536 
FILE_SYNC.


Теперь хотя бы понятно кто виноват. Остался вопрос что делать?.

Дампы могу выслать, если нужно - оба в архиве 130Kb.



Re: [freebsd] Скорость работы NFS при копировании блоками разного размера

2012-03-26 Пенетрантность Slawa Olhovchenkov
On Mon, Mar 26, 2012 at 11:49:33AM +0400, Владимир Друзенко wrote:

 25.03.2012 15:56, Mikolaj Golub пишет:
  On Sun, 25 Mar 2012 07:11:50 +0400 Владимир Друзенко wrote:
 
ВД  Тред нашёл:
ВД  
  http://lists.freebsd.org/pipermail/freebsd-stable/2011-November/064611.html
ВД  Но в нём обсуждается другой вопрос - просто о низкой пропускной
ВД  способности NFS.
 
ВД  Указанные там тюнинги увеличили скорость в 1.1-1.4 раза, но скачок 
  при
ВД  размере буфера 800-900Kb так и остался:
ВД  # dd if=/dev/zero of=/mnt/documents/test.zero bs=*884983* count=256
ВД  226555648 bytes transferred in 55.568878 secs (*4077024* bytes/sec)
 
ВД  # dd if=/dev/zero of=/mnt/documents/test.zero bs=*884982* count=256
ВД  226555392 bytes transferred in 2.931009 secs (*77296040* bytes/sec)
 
ВД  Тюнинги на клиенте: nfs опции mount -
ВД  rw,intr,soft,bg,nfsv3,readahead=4,wsize=65536,rsize=65536,tcp,async.
ВД  Тюнинги на сервере: zfs set sync=disabled datastorage/documents/
ВД  vfs.nfsrv.async/ в 9.0 нет.
ВД  Патч из треда и для /vfs.nfsrv.async /так же НЕ накладывал.
 
 
ВД  Может ещё какие мысли?
 
  Задампить трафик tcpdump-ом для двух случаев и посмотреть в wireshark в чем
  отличие.
 
 
 Спасибо за наводку.
 
 Отфильтровал оба случая по наличию nfs.write.committed: в случае 
 нормальной скорости Committed: UNSTABLE (0), а в случае плохой 
 Committed: FILE_SYNC (2).
 При копировании 8 блоков вышеуказанных размеров получается чуть более 
 100 таких строк в каждом случае:
 V3 WRITE Replay (Call xxx) Len:65536 UNSTABLE и V3 WRITE Replay (Call 
 xxx) Len:65536 FILE_SYNC соответственно.
 Также в случае медленной скорости было 6 пакетов вида: [RPC duplicate of 
 #4302][TCP Retransmission] V3 WRITE Reply (Call In 4274) Len:65536 
 FILE_SYNC.
 
 Теперь хотя бы понятно кто виноват. Остался вопрос что делать?.
 
 Дампы могу выслать, если нужно - оба в архиве 130Kb.
 

добавить опцию async в параметры монтирования?


Re: [freebsd] Скорость работы NFS при копировании блоками разного размера

2012-03-26 Пенетрантность Владимир Друзенко

26.03.2012 11:51, Slawa Olhovchenkov пишет:

On Mon, Mar 26, 2012 at 11:49:33AM +0400, Владимир Друзенко wrote:


25.03.2012 15:56, Mikolaj Golub пишет:

On Sun, 25 Mar 2012 07:11:50 +0400 Владимир Друзенко wrote:

   ВД   Тред нашёл:
   ВД   
http://lists.freebsd.org/pipermail/freebsd-stable/2011-November/064611.html
   ВД   Но в нём обсуждается другой вопрос - просто о низкой пропускной
   ВД   способности NFS.

   ВД   Указанные там тюнинги увеличили скорость в 1.1-1.4 раза, но скачок при
   ВД   размере буфера 800-900Kb так и остался:
   ВД   # dd if=/dev/zero of=/mnt/documents/test.zero bs=*884983* count=256
   ВД   226555648 bytes transferred in 55.568878 secs (*4077024* bytes/sec)

   ВД   # dd if=/dev/zero of=/mnt/documents/test.zero bs=*884982* count=256
   ВД   226555392 bytes transferred in 2.931009 secs (*77296040* bytes/sec)

   ВД   Тюнинги на клиенте: nfs опции mount -
   ВД   rw,intr,soft,bg,nfsv3,readahead=4,wsize=65536,rsize=65536,tcp,async.
   ВД   Тюнинги на сервере: zfs set sync=disabled datastorage/documents/
   ВД   vfs.nfsrv.async/ в 9.0 нет.
   ВД   Патч из треда и для /vfs.nfsrv.async /так же НЕ накладывал.


   ВД   Может ещё какие мысли?

Задампить трафик tcpdump-ом для двух случаев и посмотреть в wireshark в чем
отличие.


Спасибо за наводку.

Отфильтровал оба случая по наличию nfs.write.committed: в случае
нормальной скорости Committed: UNSTABLE (0), а в случае плохой
Committed: FILE_SYNC (2).
При копировании 8 блоков вышеуказанных размеров получается чуть более
100 таких строк в каждом случае:
V3 WRITE Replay (Call xxx) Len:65536 UNSTABLE и V3 WRITE Replay (Call
xxx) Len:65536 FILE_SYNC соответственно.
Также в случае медленной скорости было 6 пакетов вида: [RPC duplicate of
#4302][TCP Retransmission] V3 WRITE Reply (Call In 4274) Len:65536
FILE_SYNC.

Теперь хотя бы понятно кто виноват. Остался вопрос что делать?.

Дампы могу выслать, если нужно - оба в архиве 130Kb.


добавить опцию async в параметры монтирования?


Спасибо Кэп, но уже есть и уже писал об этом в треде...




[freebsd] Re: [freebsd] Скорость работы NFS при копировании блоками разного размера

2012-03-26 Пенетрантность Alexander Yerenkow
Могу предложить сделать пару тестов наоборот, т.е. чтение с NFS.
Также в том треде про низкую пропускную способность загрузка клиента была
высокая, может ли так быть что у вас слишком мощный клиент что визуально не
видно разницы в загрузке (load)?
Ну и так как уже практически создана площадка с повторяемостью проблемы, то
до патча с фиксом почти недалеко вам осталось :)

-- 
Regards,
Alexander Yerenkow


Re: [freebsd] Скорость работы NFS при копировании блоками разного размера

2012-03-26 Пенетрантность Владимир Друзенко

26.03.2012 12:51, Alexander Yerenkow пишет:

Могу предложить сделать пару тестов наоборот, т.е. чтение с NFS.
Создал файл на сервере ~4.5Gb (чтобы весь не влез в кэшь ни сервера, ни 
клиента).
Чтение чуть более 100Mytes/s (это около предела сети GigabitEthernet) 
любым размером блока от 1k до 16M.
Также в том треде про низкую пропускную способность загрузка клиента 
была высокая, может ли так быть что у вас слишком мощный клиент что 
визуально не видно разницы в загрузке (load)?

Не очень понял о чём речь.
Спеки клиента и сервера в первом посте треда:
 * клиент: i386 Core 2 Duo E7200@3.4GHz 4Gb DDR2 800MHz;
 * сервер: amd64 Xeon E5030@2.66GHz 2Gb DDR2 FB-DIMM 667MHz;

Ну и так как уже практически создана площадка с повторяемостью 
проблемы, то до патча с фиксом почти недалеко вам осталось :)
Угу. Осталось выяснить почему сервер отвечает Committed: UNSTABLE с 
размером блока до определённой величины, и Committed: FILE_SYNC после.

Есть кто, кто разбирался с исходниками NFS сервера FreeBSD?
Начал курить сырцы... Плохо, что просто так перегружать сервер не 
получится - только ночью.



--
Regards,
Alexander Yerenkow






Re: [freebsd] Скорость работы NFS при копировании блоками разного размера

2012-03-26 Пенетрантность Mikolaj Golub

On Mon, 26 Mar 2012 11:49:33 +0400 Владимир Друзенко wrote:

 ВД 25.03.2012 15:56, Mikolaj Golub пишет:
  On Sun, 25 Mar 2012 07:11:50 +0400 Владимир Друзенко wrote:
 
ВД  Тред нашёл:
ВД  
  http://lists.freebsd.org/pipermail/freebsd-stable/2011-November/064611.html
ВД  Но в нём обсуждается другой вопрос - просто о низкой пропускной
ВД  способности NFS.
 
ВД  Указанные там тюнинги увеличили скорость в 1.1-1.4 раза, но скачок 
  при
ВД  размере буфера 800-900Kb так и остался:
ВД  # dd if=/dev/zero of=/mnt/documents/test.zero bs=*884983* count=256
ВД  226555648 bytes transferred in 55.568878 secs (*4077024* bytes/sec)
 
ВД  # dd if=/dev/zero of=/mnt/documents/test.zero bs=*884982* count=256
ВД  226555392 bytes transferred in 2.931009 secs (*77296040* bytes/sec)
 
ВД  Тюнинги на клиенте: nfs опции mount -
ВД  rw,intr,soft,bg,nfsv3,readahead=4,wsize=65536,rsize=65536,tcp,async.
ВД  Тюнинги на сервере: zfs set sync=disabled datastorage/documents/
ВД  vfs.nfsrv.async/ в 9.0 нет.
ВД  Патч из треда и для /vfs.nfsrv.async /так же НЕ накладывал.
 
 
ВД  Может ещё какие мысли?
 
  Задампить трафик tcpdump-ом для двух случаев и посмотреть в wireshark в чем
  отличие.
 

 ВД Спасибо за наводку.

 ВД Отфильтровал оба случая по наличию nfs.write.committed: в случае
 ВД нормальной скорости Committed: UNSTABLE (0), а в случае плохой
 ВД Committed: FILE_SYNC (2).
 ВД При копировании 8 блоков вышеуказанных размеров получается чуть более
 ВД 100 таких строк в каждом случае:
 ВД V3 WRITE Replay (Call xxx) Len:65536 UNSTABLE и V3 WRITE Replay (Call
 ВД xxx) Len:65536 FILE_SYNC соответственно.
 ВД Также в случае медленной скорости было 6 пакетов вида: [RPC duplicate
 ВД of #4302][TCP Retransmission] V3 WRITE Reply (Call In 4274) Len:65536
 ВД FILE_SYNC.

 ВД Теперь хотя бы понятно кто виноват. Остался вопрос что делать?.

 ВД Дампы могу выслать, если нужно - оба в архиве 130Kb.

Советую в freebsd-fs@ написать. Есть вероятность что там смогут помочь.

По поводу FILESYNC, jhb@ описывал как он наблюдал, но в другой ситуации, при
сборке:

http://lists.freebsd.org/pipermail/freebsd-fs/2011-August/012265.html

Не вчитывался чем закончилось обсуждение, патч есть, но похоже он так и не был
закомичен.

-- 
Mikolaj Golub


Re: [freebsd] Скорость работы NFS при копировании блоками разного размера

2012-03-25 Пенетрантность Mikolaj Golub

On Sun, 25 Mar 2012 07:11:50 +0400 Владимир Друзенко wrote:

 ВД Тред нашёл:
 ВД http://lists.freebsd.org/pipermail/freebsd-stable/2011-November/064611.html
 ВД Но в нём обсуждается другой вопрос - просто о низкой пропускной
 ВД способности NFS.

 ВД Указанные там тюнинги увеличили скорость в 1.1-1.4 раза, но скачок при
 ВД размере буфера 800-900Kb так и остался:
 ВД # dd if=/dev/zero of=/mnt/documents/test.zero bs=*884983* count=256
 ВД 226555648 bytes transferred in 55.568878 secs (*4077024* bytes/sec)

 ВД # dd if=/dev/zero of=/mnt/documents/test.zero bs=*884982* count=256
 ВД 226555392 bytes transferred in 2.931009 secs (*77296040* bytes/sec)

 ВД Тюнинги на клиенте: nfs опции mount - 
 ВД rw,intr,soft,bg,nfsv3,readahead=4,wsize=65536,rsize=65536,tcp,async.
 ВД Тюнинги на сервере: zfs set sync=disabled datastorage/documents/
 ВД vfs.nfsrv.async/ в 9.0 нет.
 ВД Патч из треда и для /vfs.nfsrv.async /так же НЕ накладывал.


 ВД Может ещё какие мысли?

Задампить трафик tcpdump-ом для двух случаев и посмотреть в wireshark в чем
отличие.

-- 
Mikolaj Golub


Re: [freebsd] Скорость работы NFS при копировании блоками разного размера

2012-03-24 Пенетрантность Владимир Друзенко

21.03.2012 14:35, Lystopad Aleksandr пишет:

  Hello, Владимир Друзенко!

On Wed, Mar 21, 2012 at 06:20:05AM +0400
v...@unislabs.com wrote about [freebsd] Скорость работы NFS при копировании блоками 
разного размера:


Приветствую всех.

(Заранее прошу прощение за простыню.)

Системы:
* клиент: i386 Core 2 Duo E7300@3.4GHz 4Gb DDR2 800MHz;
* сервер: amd64 Xeon E5030@2.66GHz 2Gb DDR2 FB-DIMM 667MHz;
* на обеих машинках RELENG_9 начала февраля 2012;
* обе на гигабите: модели мам, сетевух и свитчей запощу, если есть
необходимость в этом;
* NFS на сервере на ZFS (по хэндбуку), ZFS RAIDZ на 4x2Tb WD RE4;
* все тесты проводил в 4-5 msk - загрузка сети и серверов практически
нулевая.

Собственно в чём причина написания сего сообщения: непонятки со
скоростью копирования по NFS.
Всё началось с банального копирования файлов по NFS - ну очень медленно.
При этом по самбе такое не наблюдается.


Поройтесь в архивах freebsd-stable@ за этот и прошлый месяц. Что-то
припоминаю -- проскакивало, но я не вникал.



Тред нашёл: 
http://lists.freebsd.org/pipermail/freebsd-stable/2011-November/064611.html
Но в нём обсуждается другой вопрос - просто о низкой пропускной 
способности NFS.


Указанные там тюнинги увеличили скорость в 1.1-1.4 раза, но скачок при 
размере буфера 800-900Kb так и остался:

# dd if=/dev/zero of=/mnt/documents/test.zero bs=*884983* count=256
226555648 bytes transferred in 55.568878 secs (*4077024* bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero bs=*884982* count=256
226555392 bytes transferred in 2.931009 secs (*77296040* bytes/sec)

Тюнинги на клиенте: nfs опции mount - 
rw,intr,soft,bg,nfsv3,readahead=4,wsize=65536,rsize=65536,tcp,async.

Тюнинги на сервере: zfs set sync=disabled datastorage/documents/
vfs.nfsrv.async/ в 9.0 нет.
Патч из треда и для /vfs.nfsrv.async /так же НЕ накладывал.


Может ещё какие мысли?



Re: [freebsd] Скорость работы NFS при копировании блоками разного размера

2012-03-21 Пенетрантность Владимир Друзенко

On 21.03.2012 08:56, Sergey Rudenko wrote:

Wed, 21 Mar 2012 06:20:05 +0400 от Владимир Друзенкоv...@unislabs.com:


Приветствую всех.

(Заранее прошу прощение за простыню.)

Системы:
* клиент: i386 Core 2 Duo E7300@3.4GHz
sentmsg?composeTo=E7300@3.4GHz 4Gb DDR2 800MHz;
* сервер: amd64 Xeon E5030@2.66GHz
sentmsg?composeTo=E5030@2.66GHz 2Gb DDR2 FB-DIMM 667MHz;
* на обеих машинках RELENG_9 начала февраля 2012;
* обе на гигабите: модели мам, сетевух и свитчей запощу, если есть
необходимость в этом;
* NFS на сервере на ZFS (по хэндбуку), ZFS RAIDZ на 4x2Tb WD RE4;
* все тесты проводил в 4-5 msk - загрузка сети и серверов
практически нулевая.

Собственно в чём причина написания сего сообщения: непонятки со
скоростью копирования по NFS.
Всё началось с банального копирования файлов по NFS - ну очень
медленно.
При этом по самбе такое не наблюдается.

Начал тестить:
# grep documents /etc/fstab
server.ip:/datastorage/documents /mnt/documents  nfs
rw,intr,soft,bg 0   0


# dd if=/dev/zero of=/usr/test.zero count=256 bs=1024k
256+0 records in
256+0 records out
268435456 bytes transferred in 2.950790 secs (90970710 bytes/sec)

# time cp /usr/test.zero /mnt/documents/
real2m1.657s
user0m0.000s
sys 0m0.599s
# echo $((268435456/(2*60+2)))
2200290
Это всего-то 2.2Mbytes/s! Мало даже для 100Mbit/s сети.

Вот самба (тот же каталог на сервере, что и по NFS, samba 3.6.3):
# time cp /usr/test.zero /mnt/smb0/
real0m6.197s
user0m0.000s
sys 0m0.286s
# echo $((268435456/6))
44739242

44.7Mbytes/s - не идеал, но уже неплохо.


Решил потестить dd:
(строки вида 256+0 records in и 256+0 records out убрал, чтобы
не мешали)

# dd if=/dev/zero of=/mnt/documents/test.zero count=512k bs=512
268435456 bytes transferred in 5.776159 secs (46473003 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=256k bs=1024
268435456 bytes transferred in 5.275812 secs (50880407 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=128k bs=2048
268435456 bytes transferred in 5.009737 secs (53582744 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=64k bs=4096
268435456 bytes transferred in 4.465294 secs (60115963 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=32k bs=8192
268435456 bytes transferred in 4.616121 secs (58151737 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=16k bs=16384
268435456 bytes transferred in 4.792773 secs (56008381 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=8k bs=32k
268435456 bytes transferred in 4.698532 secs (57131773 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=4k bs=64k
268435456 bytes transferred in 4.558262 secs (58889872 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=2k bs=128k
268435456 bytes transferred in 4.987123 secs (53825714 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=1k bs=256k
268435456 bytes transferred in 4.925698 secs (54496937 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=512 bs=512k
268435456 bytes transferred in 4.954061 secs (54184931 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=*1024k*
268435456 bytes transferred in 119.418152 secs (*2247861* bytes/sec)
??

Начал экспериментировать:
# dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=800k
209715200 bytes transferred in 3.649696 secs (57461007 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=810k
212336640 bytes transferred in 5.292056 secs (40123658 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=820k
214958080 bytes transferred in 4.571811 secs (47018145 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=830k
217579520 bytes transferred in 5.237694 secs (41541090 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=840k
220200960 bytes transferred in 7.006737 secs (31427033 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=850k
222822400 bytes transferred in 5.609241 secs (39724162 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=860k
225443840 bytes transferred in 4.649138 secs (48491536 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=*870k*
228065280 bytes transferred in 102.918602 secs (*2215977* bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=*880k*
230686720 bytes transferred in 103.500444 secs (*2228848* bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=*890k*
233308160 bytes transferred in 109.924715 secs (*2122436* 

Re: [freebsd] Скорость работы NFS при копировании блоками разного размера

2012-03-21 Пенетрантность Lystopad Aleksandr
 Hello, Владимир Друзенко!

On Wed, Mar 21, 2012 at 06:20:05AM +0400
v...@unislabs.com wrote about [freebsd] Скорость работы NFS при копировании 
блоками разного размера:
 
 Приветствую всех.
 
 (Заранее прошу прощение за простыню.)
 
 Системы:
 * клиент: i386 Core 2 Duo E7300@3.4GHz 4Gb DDR2 800MHz;
 * сервер: amd64 Xeon E5030@2.66GHz 2Gb DDR2 FB-DIMM 667MHz;
 * на обеих машинках RELENG_9 начала февраля 2012;
 * обе на гигабите: модели мам, сетевух и свитчей запощу, если есть 
 необходимость в этом;
 * NFS на сервере на ZFS (по хэндбуку), ZFS RAIDZ на 4x2Tb WD RE4;
 * все тесты проводил в 4-5 msk - загрузка сети и серверов практически 
 нулевая.
 
 Собственно в чём причина написания сего сообщения: непонятки со 
 скоростью копирования по NFS.
 Всё началось с банального копирования файлов по NFS - ну очень медленно.
 При этом по самбе такое не наблюдается.

Поройтесь в архивах freebsd-stable@ за этот и прошлый месяц. Что-то
припоминаю -- проскакивало, но я не вникал.

-- 
 Lystopad Aleksandr 


[freebsd] Скорость работы NFS при копировании блоками разного размера

2012-03-20 Пенетрантность Владимир Друзенко


Приветствую всех.

(Заранее прошу прощение за простыню.)

Системы:
* клиент: i386 Core 2 Duo E7300@3.4GHz 4Gb DDR2 800MHz;
* сервер: amd64 Xeon E5030@2.66GHz 2Gb DDR2 FB-DIMM 667MHz;
* на обеих машинках RELENG_9 начала февраля 2012;
* обе на гигабите: модели мам, сетевух и свитчей запощу, если есть 
необходимость в этом;

* NFS на сервере на ZFS (по хэндбуку), ZFS RAIDZ на 4x2Tb WD RE4;
* все тесты проводил в 4-5 msk - загрузка сети и серверов практически 
нулевая.


Собственно в чём причина написания сего сообщения: непонятки со 
скоростью копирования по NFS.

Всё началось с банального копирования файлов по NFS - ну очень медленно.
При этом по самбе такое не наблюдается.

Начал тестить:
# grep documents /etc/fstab
server.ip:/datastorage/documents /mnt/documents  nfs rw,intr,soft,bg 
0   0


# dd if=/dev/zero of=/usr/test.zero count=256 bs=1024k
256+0 records in
256+0 records out
268435456 bytes transferred in 2.950790 secs (90970710 bytes/sec)

# time cp /usr/test.zero /mnt/documents/
real2m1.657s
user0m0.000s
sys 0m0.599s
# echo $((268435456/(2*60+2)))
2200290
Это всего-то 2.2Mbytes/s! Мало даже для 100Mbit/s сети.

Вот самба (тот же каталог на сервере, что и по NFS, samba 3.6.3):
# time cp /usr/test.zero /mnt/smb0/
real0m6.197s
user0m0.000s
sys 0m0.286s
# echo $((268435456/6))
44739242

44.7Mbytes/s - не идеал, но уже неплохо.


Решил потестить dd:
(строки вида 256+0 records in и 256+0 records out убрал, чтобы не 
мешали)


# dd if=/dev/zero of=/mnt/documents/test.zero count=512k bs=512
268435456 bytes transferred in 5.776159 secs (46473003 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=256k bs=1024
268435456 bytes transferred in 5.275812 secs (50880407 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=128k bs=2048
268435456 bytes transferred in 5.009737 secs (53582744 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=64k bs=4096
268435456 bytes transferred in 4.465294 secs (60115963 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=32k bs=8192
268435456 bytes transferred in 4.616121 secs (58151737 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=16k bs=16384
268435456 bytes transferred in 4.792773 secs (56008381 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=8k bs=32k
268435456 bytes transferred in 4.698532 secs (57131773 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=4k bs=64k
268435456 bytes transferred in 4.558262 secs (58889872 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=2k bs=128k
268435456 bytes transferred in 4.987123 secs (53825714 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=1k bs=256k
268435456 bytes transferred in 4.925698 secs (54496937 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=512 bs=512k
268435456 bytes transferred in 4.954061 secs (54184931 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=*1024k*
268435456 bytes transferred in 119.418152 secs (*2247861* bytes/sec)
??

Начал экспериментировать:
# dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=800k
209715200 bytes transferred in 3.649696 secs (57461007 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=810k
212336640 bytes transferred in 5.292056 secs (40123658 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=820k
214958080 bytes transferred in 4.571811 secs (47018145 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=830k
217579520 bytes transferred in 5.237694 secs (41541090 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=840k
220200960 bytes transferred in 7.006737 secs (31427033 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=850k
222822400 bytes transferred in 5.609241 secs (39724162 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=860k
225443840 bytes transferred in 4.649138 secs (48491536 bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=*870k*
228065280 bytes transferred in 102.918602 secs (*2215977* bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=*880k*
230686720 bytes transferred in 103.500444 secs (*2228848* bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=*890k*
233308160 bytes transferred in 109.924715 secs (*2122436* bytes/sec)

# dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=*900k*
235929600 bytes transferred in 113.634523 secs (*2076214* bytes/sec)


Для сравнения проверил на двух системах с Linux (тотже 
/datastorage/documents):

- машинка на том же свитче, что и клиент:
# dd if=/dev/zero of=/mnt/test.zero count=256 bs=1M
скопировано 268435456 байт (268 MB), 4,12729 c, 65,0 MB/c

- машинка на том же свитче, что и сервер:
# dd if=/dev/zero of=/mnt/test.zero count=256 bs=1M
268435456 bytes (268 MB) copied, 4,59726 s, 58,4 MB/s


[freebsd] Re: [freebsd] Скорость работы NFS при копировании блоками разного размера

2012-03-20 Пенетрантность Sergey Rudenko

Потери\ошибки на интерфейсах есть?

Wed, 21 Mar 2012 06:20:05 +0400 от Владимир Друзенкоv...@unislabs.com:
  
  
 
 
 Приветствую всех.
 
 (Заранее прошу прощение за простыню.)
 
 Системы:
 * клиент: i386 Core 2 Duo E7300@3.4GHz 4Gb DDR2 800MHz;
 * сервер: amd64 Xeon E5030@2.66GHz 2Gb DDR2 FB-DIMM 667MHz;
 * на обеих машинках RELENG_9 начала февраля 2012;
 * обе на гигабите: модели мам, сетевух и свитчей запощу, если есть 
необходимость в этом;
 * NFS на сервере на ZFS (по хэндбуку), ZFS RAIDZ на 4x2Tb WD RE4;
 * все тесты проводил в 4-5 msk - загрузка сети и серверов практически нулевая.
 
 Собственно в чём причина написания сего сообщения: непонятки со скоростью 
копирования по NFS.
 Всё началось с банального копирования файлов по NFS - ну очень медленно.
 При этом по самбе такое не наблюдается.
 
 Начал тестить:
 # grep documents /etc/fstab
 server.ip:/datastorage/documents /mnt/documents  nfs rw,intr,soft,bg 
0   0
 
 # dd if=/dev/zero of=/usr/test.zero count=256 bs=1024k 
 256+0 records in
 256+0 records out
 268435456 bytes transferred in 2.950790 secs (90970710 bytes/sec)
 
 # time cp /usr/test.zero /mnt/documents/
 real    2m1.657s
 user    0m0.000s
 sys 0m0.599s
 # echo $((268435456/(2*60+2)))
 2200290
 Это всего-то 2.2Mbytes/s! Мало даже для 100Mbit/s сети.
 
 Вот самба (тот же каталог на сервере, что и по NFS, samba 3.6.3):
 # time cp /usr/test.zero /mnt/smb0/
 real    0m6.197s
 user    0m0.000s
 sys 0m0.286s
 # echo $((268435456/6))
 44739242
 
 44.7Mbytes/s - не идеал, но уже неплохо.
 
 
 Решил потестить dd:
 (строки вида 256+0 records in и 256+0 records out убрал, чтобы не мешали)
 
 # dd if=/dev/zero of=/mnt/documents/test.zero count=512k bs=512
 268435456 bytes transferred in 5.776159 secs (46473003 bytes/sec)
 
 # dd if=/dev/zero of=/mnt/documents/test.zero count=256k bs=1024
 268435456 bytes transferred in 5.275812 secs (50880407 bytes/sec)
 
 # dd if=/dev/zero of=/mnt/documents/test.zero count=128k bs=2048
 268435456 bytes transferred in 5.009737 secs (53582744 bytes/sec)
 
 # dd if=/dev/zero of=/mnt/documents/test.zero count=64k bs=4096
 268435456 bytes transferred in 4.465294 secs (60115963 bytes/sec)
 
 # dd if=/dev/zero of=/mnt/documents/test.zero count=32k bs=8192
 268435456 bytes transferred in 4.616121 secs (58151737 bytes/sec)
 
 # dd if=/dev/zero of=/mnt/documents/test.zero count=16k bs=16384
 268435456 bytes transferred in 4.792773 secs (56008381 bytes/sec)
 
 # dd if=/dev/zero of=/mnt/documents/test.zero count=8k bs=32k
 268435456 bytes transferred in 4.698532 secs (57131773 bytes/sec)
 
 # dd if=/dev/zero of=/mnt/documents/test.zero count=4k bs=64k
 268435456 bytes transferred in 4.558262 secs (58889872 bytes/sec)
 
 # dd if=/dev/zero of=/mnt/documents/test.zero count=2k bs=128k
 268435456 bytes transferred in 4.987123 secs (53825714 bytes/sec)
 
 # dd if=/dev/zero of=/mnt/documents/test.zero count=1k bs=256k
 268435456 bytes transferred in 4.925698 secs (54496937 bytes/sec)
 
 # dd if=/dev/zero of=/mnt/documents/test.zero count=512 bs=512k
 268435456 bytes transferred in 4.954061 secs (54184931 bytes/sec)
 
 # dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=1024k
 268435456 bytes transferred in 119.418152 secs (2247861 bytes/sec)
 ??
 
 Начал экспериментировать:
 # dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=800k
 209715200 bytes transferred in 3.649696 secs (57461007 bytes/sec)
 
 # dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=810k
 212336640 bytes transferred in 5.292056 secs (40123658 bytes/sec) 
 
 # dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=820k
 214958080 bytes transferred in 4.571811 secs (47018145 bytes/sec)
 
 # dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=830k
 217579520 bytes transferred in 5.237694 secs (41541090 bytes/sec)
 
 # dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=840k
 220200960 bytes transferred in 7.006737 secs (31427033 bytes/sec) 
 
 # dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=850k 
 222822400 bytes transferred in 5.609241 secs (39724162 bytes/sec) 
 
 # dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=860k 
 225443840 bytes transferred in 4.649138 secs (48491536 bytes/sec)
 
 # dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=870k
 228065280 bytes transferred in 102.918602 secs (2215977 bytes/sec)
 
 # dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=880k
 230686720 bytes transferred in 103.500444 secs (2228848 bytes/sec)
 
 # dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=890k
 233308160 bytes transferred in 109.924715 secs (2122436 bytes/sec)
 
 # dd if=/dev/zero of=/mnt/documents/test.zero count=256 bs=900k
 235929600 bytes transferred in 113.634523 secs (2076214 bytes/sec)
 
 
 Для сравнения проверил на двух системах с Linux (тотже /datastorage/documents):
 - машинка на том же свитче, что и клиент:
 # dd if=/dev/zero of=/mnt/test.zero