У меня Samba установлена на сервере с 8 жесткими дисками по 2 ТБ в raid5, ОС - debian 2.6.32, 64 бит.
Когда я копирую файл размером 3,5 ГБ на сервер, первый ГБ передается со скоростью около 100 МБ / с, но затем скорость медленно падает до 2-3 МБ / с. Я пытался настроить SO_RCVBUF от 8192 до 65536, TCP_NODELAY, IPTOS_LOWDELAY и SO_KEEPALIVE, они не помогают.
Рейд аппаратный, контроллер 3ware 9750-8i, у него кеш 500МБ, объем памяти не соответствует проблеме, так как притормаживание происходит после 1Гб. Протестировал сеть с помощью iperf, она работает на скорости 800 Мбит / с, это не узкое место. Обе карты NIC в Windows 7 и на сервере Debian являются полнодуплексными, я проверил их статус.
После перезагрузки сервера и начала загрузки файла использование памяти увеличивается до размера переданного файла. Не знаю, нормально это или нет. Есть идеи, что еще попробовать?
Последний комментарий Вот рекомендует некоторые настройки:
echo 64 > /sys/block/sdb/queue/max_sectors_kb
echo 512 > /sys/block/sdb/queue/nr_requests
echo deadline > /sys/block/sdb/queue/scheduler
echo 20 > /proc/sys/vm/dirty_background_ratio
echo 60 > /proc/sys/vm/dirty_ratio
blockdev --setra 16384 /dev/sdb
насколько безопасно их применять? у меня есть данные, которые я не хочу терять
РЕДАКТИРОВАТЬ: замедление является постоянным, когда я копирую второй файл после завершения первого, он ведет себя так же.
EDIT2: жесткие диски Hitachi 2 ТБ 64 МБ, deskstar 7k3000, sata-III
у сервера 8ГБ RAM 1333Mhz
Возникла ли эта проблема недавно, т. Е. Работала раньше или нет?
Если да, можете ли вы указать время его изменения и, возможно, сопоставить с некоторыми изменениями? Что-нибудь в журналах? Есть ли у вас какие-либо сообщения в интерфейсе управления RAID, такие как сбой дисков / восстановление?
Что произойдет, если вы используете, скажем, sftp или nfs вместо samba?
вы можете попытаться скопировать файл с подключенного USB-диска, e-sata или напрямую подключенного диска? в этом случае вы можете проверить, связана ли проблема с сетью, конфигурацией самбы или чем-то еще. Вы можете отслеживать рейды с помощью iostat. какие у вас диски? 7200к, 5400к? сколько оперативной памяти в сервере? обратная запись в кеш отключена на дисках? а у контроллера есть резервная батарея?
"первый ГБ передается со скоростью около 100 МБ / с" - это правильно? я не думаю.