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

Samba share, запись производительности

Я запускаю сервер debian jessie, который предоставляет samba-share на внешнем диске с использованием ext4, его скорость чтения и записи составляет около 80 МБ / с и 40 МБ / с. В настоящее время я использую клиент Win7. Обе машины подключены к Gigabit-LAN, которая обеспечивает скорость передачи около 80-90 МБ / с.

Чтение с samba-share работает нормально со скоростью передачи 60-70MB / s. Однако при записи в этот общий ресурс на Win7-клиенте производительность составляет около 1 МБ / с.

Кто-нибудь испытывал такую ​​плохую производительность записи в подобном сценарии? Есть ли какие-либо настройки для данной настройки для оптимизации производительности? Или это поможет изменить файловую систему и т. Д.?

У SAMBA есть несколько вариантов повышения производительности чтения / записи. Для вашего случая может быть важным вариантом является размер кеша записи. Вот цитата из https://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html.

размер кеша записи (S)
Если для этого целочисленного параметра установлено ненулевое значение, Samba создаст кеш в памяти для каждого файла с открытой блокировкой (это не делается для файлов без блокировки). Все записи, которые клиент не запрашивает для сброса непосредственно на диск, будут по возможности сохраняться в этом кэше. Кэш сбрасывается на диск, когда происходит запись, смещение которой не помещается в кеш, или когда файл закрывается клиентом. Чтение файла также обслуживается из этого кеша, если данные хранятся в нем. Этот кеш позволяет Samba группировать клиентские записи в более эффективный размер записи для дисков RAID (т. Е. Записи могут быть настроены в соответствии с размером полосы RAID) и может улучшить производительность в системах, где дисковая подсистема является узким местом, но есть свободная память для пользовательского пространства. программы. Целочисленный параметр указывает размер этого кэша (для каждого файла с открытой блокировкой) в байтах.

По умолчанию: размер кеша записи = 0
Пример: размер кэша записи = 262144 # для размера кэша 256 КБ на файл

Здесь вы можете найти рабочий пример: http://www.arm-blog.com/samba-finetuning-for-better-transfer-speeds/ и https://coderwall.com/p/2ufa0g/fix-samba-read-and-write-performance-issues

Вам необходимо настроить эти параметры в разделе [global] файла /etc/samba/smb.conf и перезапустить самбу. Вы можете проверить упомянутую выше страницу руководства samba, чтобы уточнить возможные варианты.

Как быстро сервер Debian может записывать данные на внешний диск? (используйте fio или что-то еще, чтобы проверить это)
Какая задержка у внешнего диска? (возможно, протестируйте с dd или что-то в этом роде)
Какая задержка от клиента Win7 до расшарки? (подойдет простой пинг)
Можете ли вы предоставить свой файл /etc/samba/smb.conf?

На максимальную теоретическую скорость чтения / записи общего ресурса влияет множество факторов. Есть также несколько вариантов конфигурации, которые также могут влиять на скорость. Если вы можете предоставить дополнительные сведения, возможно, я или другой пользователь смогу помочь вам найти проблему или улучшить скорость записи.

У меня была такая же проблема. После долгих исследований и работы с конфигурацией Samba мне удалось заставить ее передавать с разумной скоростью, добавив IPTOS_THROUGHPUT к варианты розеток config и удаление IPTOS_LOWDELAY.