Советы по отладке производительности Samba?


8

Samba дает мне 24 МБ / с для чтения и 44 МБ / с для записи, тогда как ftp дает 97 и 112 МБ / с при тех же обстоятельствах.

В документации сказано, что

Как правило, вы должны обнаружить, что Samba работает аналогично ftp на скорости прямой передачи.

В моем случае это явно не так.

Где я могу найти советы по отладке производительности Samba?

Или, альтернативно, советы по замене Samba чем-то другим? (К сожалению, я не могу использовать ftp, так как мне нужно что-то, что можно использовать с rsync / rsnapshot.)

Больше деталей:

  • Оба компьютера работают под управлением Ubuntu 10.10 (используя Samba, потому что у меня также есть Mac)
  • Общий ресурс Samba находится в локальной домашней сети, смонтированной как

    $ mount
    ...
    //server.local/share/ on /mnt/share type cifs (rw,mand)
    
  • Производительность Samba была проверена путем копирования ( cp) одного файла размером ~ 4 ГБ в общий ресурс и из него, который использовался timeдля определения времени и расчета скорости передачи вручную.

  • производительность ftp - это числа от клиента ftp для получения / сдачи одного и того же файла.
  • iperf дает скорость сети ~ 900 Мбит / с
  • bonnie++ дает скорости диска> 200 МБ / с с обеих сторон для чтения блоков и записи блоков
  • Попытка изменить параметры, предложенные в настройке производительности HOWTO (чтение / запись в сыром виде, размер чтения, параметры сокетов), большинство из них мало что изменило. (Тот, который имел значение, вызвал снижение скорости записи на 50%.)

Обновление: согласно списку рассылки Samba за 2009 год, проблемы с производительностью связаны с smbfs / cifs, а не с сервером Samba.
jg-faustus

Ответы:


3

На самом деле FTP имеет достаточно эффективную скорость передачи данных, как только он начинает работать. Издержки, которые замедляют процесс, связаны с загрузкой файлов в первую очередь. Это не значит, что здесь нет проблем с самбой. Это должно выполняться почти одинаково.

Честно говоря, я не имею ни малейшего понятия, где вы должны начать пытаться это исправить.

В идеале вы могли бы добавить туда другой компьютер с эталонной установкой Samba (например, Windows) и протестировать его как клиент и сервер на компьютерах с Ubuntu. Тогда вы будете знать, на какой машине возникла проблема, если бы проблема была только в одном направлении, и тогда вы могли бы сообщать об ошибках на основании этого и / или находить временное решение.

Некоторое время назад я увидел кое-что о сбое определенного сетевого оборудования под Samba. Это были как коммутаторы, так и сетевые адаптеры, но я ничего не могу с этим поделать. Вероятно, это был такой крайний случай, который не стоит рассматривать.

Как насчет того, чтобы мы обошли Самбу? FTP может не работать, но как насчет NFS ? Вероятно, он имеет самые высокие скорости передачи из всех (по моему опыту) и должен нормально обрабатывать rsync.

Вы также можете посмотреть на FUSE-монтирование FTP-сервера, чтобы rsync мог запугать его.


Спасибо за совет и обратную связь - я понятия не имел, что возможно смонтировать cifs FTP? Я также посмотрю в NFS. Если плохая производительность Samba является чем-то нетривиальным и не связанным с Ubuntu, возможно, он входит в список рассылки Samba или что-то подобное, а не здесь?
jg-faustus

Ваш, вероятно, лучший ответ, который я получу :) Еще раз спасибо.
jg-faustus

1
вы можете смонтировать ресурс ftp: curlftpfs [user @] host: [dir] точка монтирования [options]
jet

1

Какую производительность вы получаете от запуска rsync через ssh? Может быть, вы могли бы выполнить rsync с помощью ssh, а затем использовать samba для случаев, когда вам нужно передавать вещи между вашими mac?


rsync через ssh дает 60 МБ / с, примерно на полпути между Samba и FTP. Но только что увидел совет в другом месте, что rsync в режиме демона (если одна машина будет сервером rsync) может быть наравне с FTP, я попробую это позже.
jg-faustus

1

вы можете попробовать это в smb.conf

socket options = SO_KEEPALIVE SO_REUSEADDR \
   SO_BROADCAST TCP_NODELAY IPTOS_LOWDELAY \
   IPTOS_THROUGHPUT SO_SNDBUF=8192 SO_RCVBUF=8192

oplocks = yes

write raw = yes
read raw = yes

Я попробовал некоторые из них. TCP_NODELAY: крошечное улучшение. писать сырой и читать сырой: без заметной разницы. SO_SNDBUF и SO_RCVBUF: Снижение производительности записи на 50%, дальнейшее прекращение. Я проверю все остальное, когда у меня будет шанс.
jg-faustus
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.