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

Случайная гигабитная пропускная способность с моим файловым сервером Samba

У меня есть персональный файловый сервер, построенный на платформе AMD X2, с гигабитным сетевым адаптером Intel CT, работающий под управлением debian 6.0.

Я построил raid5 (2To x 3), поделился samba 3.5.6

С моего настольного компьютера (windows7) при копировании больших файлов иногда скорость загрузки / выгрузки стабильна около 55/60 МБ / с, иногда она действительно нестабильна, падает до 1 или 2 МБ / с, с максимумом 20/30 МБ / с, действительно нестабильно.

Я тестировал также с использованием акций samba на рейде и на основном диске, результаты аналогичны.

Я запустил на сервере команду hdparm -tT:

/dev/sda:
  Timing cached reads:   4698 MB in  2.00 seconds = 2349.11 MB/sec
  Timing buffered disk reads: 374 MB in  3.00 seconds = 124.49 MB/sec

/dev/md0:
 Timing cached reads:   4814 MB in  2.00 seconds = 2407.76 MB/sec
 Timing buffered disk reads: 640 MB in  3.00 seconds = 213.02 MB/sec 

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

iperf.exe -c pacem -n 1073741824 -fm
------------------------------------------------------------
Client connecting to pacem, TCP port 5001
TCP window size: 0.06 MByte (default)
------------------------------------------------------------
[  3] local 10.0.0.145 port 50913 connected with 10.0.0.37 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-68.7 sec  1024 MBytes   125 Mbits/sec 

Как я могу эффективно найти причину проблемы?

Спасибо за прочтение!

Проблемы, которые вы описываете, скорее всего, вызваны тремя факторами:

  1. socket options в [global] раздел вашего файла smb.conf. Хорошая отправная точка для начала:

    socket options = IPTOS_THROUGHPUT TCP_NODELAY SO_KEEPALIVE
    

    Посмотрите, как это работает; Обычно этого достаточно, чтобы избавиться от проблем с производительностью Samba. Чтобы узнать о других вариантах, посетите страницу Samba.; особенно SO_SNDBUF и SO_RCVBUF. Неправильная установка этих значений отрицательно скажется на производительности; это может занять некоторое время методом проб и ошибок.

  2. Что еще хуже, размер файлов влияет на Samba. У маленьких файлов больше накладных расходов. И если вы настроите параметры сокета для массовой передачи, вы увидите, что скорость файлов с небольшой скоростью ухудшится. Точно так же настройка крошечных файлов ухудшает передачу больших файлов. В идеале вы поймете, что вы передаете чаще всего или что для вас больше всего отличает (медленная работа на 4-гигабайтном DVD ISO обычно более значима, чем медленная на 1-килобайтном файле).

  3. Настройки DNS и VFS. Если у вас неправильно настроено прямое и обратное сопоставление DNS, вы захотите отключить поиск DNS Samba (dns proxy = no и hostname lookups = no). Это наиболее очевидно, когда вы впервые подключаетесь к общему ресурсу Samba (если это занимает больше 5 секунд, это проблема).

    Существует множество VFS и связанных параметров, которые можно настроить в разделе Samba [global]. Если они ошибаются, Samba будет иметь дело с ошибками при открытии / сохранении каждого файла. Параметры, подходящие для вашего сервера, будут зависеть от его файловой системы, безопасности и некоторых функций, которые вы хотите включить. На этот вопрос нет быстрого ответа, но в целом он имеет наименьшее значение.