Дома у Windows 7 и Windows 10 собственный клиент для общего доступа к Windows работает плохо. Он подключен к серверу Samba через гигабитный коммутатор. Скорость чтения составляет около 60 МБ / с, в то время как запись на сервер достигает приемлемой пропускной способности 114 МБ / с.

Теоретический максимум составляет 125 МБ / с (1000 Мбит / 8 байт), и неоптимальная производительность чтения беспокоит меня в течение длительного времени.

Установка выглядит следующим образом:

Client:                               Server: 
- Windows 10                          - Linux 4.1.12
- Ethernet: Intel I218-LM (gigabit)   - Ethernet: Realtek RTL8111/8168/8411
                                      - Samba 3.6.25
Switch:
- Cheap but solid 8-port gigabit switch by Netgear (2007)

При попытке решить эту проблему в Интернете можно найти устаревшие предложения по настройке сервера samba. Я обнаружил, что изменение параметров сокета и параметров чтения и записи не имеет заметного улучшения:

/etc/samba/smb.conf

; useless tweaks for a home network 2014-2015. oversized buffers do not help...
[global]
read size = 365536
read prediction = true
socket options = IPTOS_LOWDELAY  TCP_NODELAY SO_RCVBUF=158192 SO_SNDBUF=158192
write raw = yes
read raw = yes

Сравнительный анализ пропускной способности сети с помощью iperf (cygwin) дал примерно 930 Мбит / с. К сожалению, производительность сети (диспетчер задач) никогда не указывает на насыщение канала выше 560 Мбит, в то время как CrystalDiskMark считывает данные с подключенного сетевого ресурса.

В качестве последней попытки решить проблему, я загрузил Knoppix на компьютере с Windows-клиентом, чтобы смонтировать и протестировать общий ресурс:

mount -o user=foo //192.168.1.3/data /mnt/remote
iozone -o -r 4m -s 1200mb -i{0,1} 

Это привело к результатам, близким к физическому пределу. Есть ли у вас какие-либо предложения по устранению этой проблемы?

1 ответ1

1

Проблема может быть связана с настройками драйвера TCP или Ethernet в Windows.

Один источник сообщает, что отключение этих параметров помогает:

  • Разгрузка контрольной суммы IPv4
  • Large Send Offload Version 2
  • Разгрузка контрольной суммы TCP
  • Разгрузка контрольной суммы UDP

Я могу подтвердить эти выводы, и, кроме того, я обнаружил, что настройки, указанные ниже, также помогают:

  • адаптивное межкадровое расстояние -> выкл.
  • большой пакет -> 9014 байта
  • модерация прерывания -> отключена
  • скорость модерации прерывания -> выкл

Изменение настроек драйвера NIC значительно улучшило производительность:

плохая перфорация

хорошо-перфорация

Настройки сетевого адаптера

Control Panel -> Network 
    -> change adapter settings
        -> right-click>properties -> advanced

ник драйвер настройки

Соответствующая документация и ветка форума:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .