Назад | Перейти на главную страницу

FreeBSD: производительность Samba через GBit-Ethernet

Я использую FreeBSD NAS с RAID-Z.

Я могу читать ~ 300 МБ / с с дисков ZFS в / dev / null на коробке, но получаю только около 50 МБ / с через GBit-Ethernet с SMB для Windows 7 (Samba 3.5.6). Обе системы имеют Intel-PCIe-NIC и подключаются напрямую.

Samba настроена на использование AIO, и я уже пытался настроить TCP / IP:

kern.ipc.maxsockbuf=16777216
net.inet.tcp.sendspace=1048576
net.inet.tcp.recvspace=1048576
net.inet.tcp.sendbuf_max=8388608
net.inet.tcp.recvbuf_max=8388608
net.inet.tcp.delayed_ack=0

Есть идеи, что вызывает узкое место? Я думаю, что ссылка должна легко обрабатывать 100 МБ / с.

Ладно, на самом деле было две проблемы:

  1. В конце концов, Jumbo-кадры не так уж и важны. Это дало мне огромный прирост производительности.
  2. Мой SSD-диск может легко записывать 100 МБ / с, но я недавно включил сжатие NTFS, которое создало проблемы (секундные задержки при записи). Оптимизация TRIM решила это.

Чтобы проверить кабель и пропускную способность ваших драйверов, вы должны снять ограничения записи на жесткий диск (и антивирус для окна Windows).

Итак, вы можете:

  • создайте RAM-диск в окне Windows, загрузите / вставьте на него файлы

  • создать и перенаправить общий ресурс samba в / dev / null и вставить в него файлы из окна Windows

  • запустите утилиту кросс-платформенной пропускной способности (возможно, часть утилит Intel NIC на платформе Windows).

Если кто-нибудь знает о кросс-платформенном инструменте для тестирования производительности Windows-Unix, дайте мне / нам знать :-)

И да, вам нужно будет убедиться, что у вас есть соответствующие jumbo-кадры (2048 байтов, кажется, «норма») на ваших сетевых устройствах и коммутаторе. Стандартный размер пакета TCP / IP немного мал для гигабитных потоков.