Инструменты пользователя

Инструменты сайта


doc:os:freebsd:samba:performance

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
doc:os:freebsd:samba:performance [d.m.Y H:i] – создано dbehterevdoc:os:freebsd:samba:performance [d.m.Y H:i] (текущий) – Статус обсуждения изменён dbehterev
Строка 1: Строка 1:
 +====== Ускоряем работу samba по сети ======
  
 +Рассмотрим, как можно увеличить производительность работы демона samba по **гигабитной** сети.
 +
 +Рассматриваемая среда:
 +  - ОС: 8.2-PRERELEASE FreeBSD amd64 SMP
 +  - HP microserver, http://arstechnica.com/civis/viewtopic.php?f=11&t=1126552
 +  - CPU: AMD Athlon(tm) II Neo N36L Dual-Core Processor
 +  - RAM: 1Гб 
 +  - NIC: HP NC107i PCIe Gigabit Server Adapter
 +
 +===== Порядок действий =====
 +
 +**1.** Собираем/пересобираем samba версии 3 (к примеру из порта /usr/ports/net/samba35) с поддержкой aio.
 +
 +**2.** В /boot/loader.conf прописываем:
 +<code>
 +aio_load="YES"
 +</code>
 +**3.** В /etc/sysctls.conf прописал ряд параметров, которые в моем случае позволили значительно улучшить быстродействие по сети:
 +<code>
 +kern.ipc.maxsockbuf=16777216
 +kern.ipc.maxsockets=204800
 +kern.ipc.nmbclusters=32768
 +kern.ipc.somaxconn=32768
 +kern.maxfiles=256000
 +kern.maxfilesperproc=32768
 +kern.maxvnodes=800000
 +net.inet.tcp.delayed_ack=0
 +net.inet.tcp.inflight.enable=0
 +net.inet.tcp.path_mtu_discovery=0
 +net.inet.tcp.recvbuf_auto=1
 +net.inet.tcp.recvbuf_inc=524288
 +net.inet.tcp.recvbuf_max=16777216
 +net.inet.tcp.recvspace=65536
 +net.inet.tcp.rfc1323=1
 +net.inet.tcp.sendbuf_auto=1
 +net.inet.tcp.sendbuf_inc=524288
 +net.inet.tcp.sendspace=131072
 +net.inet.udp.maxdgram=57344
 +net.inet.tcp.recvspace=131072
 +net.local.stream.recvspace=65536
 +net.local.stream.sendspace=65535
 +net.inet.tcp.sendbuf_max=16777216
 +net.inet.tcp.mssdflt=1460
 +</code>
 +**4.** В /usr/local/etc/smb.conf дописал:
 +<code>
 +socket options=SO_RCVBUF=131072 SO_SNDBUF=131072 TCP_NODELAY
 +#socket options = SO_RCVBUF=65536 SO_SNDBUF=65536
 +#socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE
 +#socket options=TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=8192 SO_SNDBUF=8192
 +min receivefile size=16384
 +use sendfile=true
 +##aio read size = 16384
 +##aio read size = 65536
 +aio write size = 16384
 +#aio write size = 65536
 +aio write behind = true
 +</code>
 +Закоментировал параметры, которые снижали производительность. Теперь странное: aio read size вызывало большую проблему: невозможно было скопировать любой файл с smb ресурса - просто ошибка копирования - недостаточно прав. 
 +
 +**5.** Перегружаемся. Копируем/читаем файлы с smb ресурса, параллельно смотрим загрузку жесткого диска gstat'ом. В моем случае производительность зависела от моделей гигабитных сетевых карт на клиентах. Самый успешный клиент имел скорость записи на smb ресурс порядка 55 Мбайт/сек, при этом скорость загрузки HDD доходила до 100% (на сервере smb стоит не самый производительный жесткий диск).
 +
 +**6.** Настройки smb.conf:
 +<code>
 +[global]
 +
 +smb ports = 445 139
 +
 +workgroup = WORKGROUP
 +netbios name = NAS
 +
 +security = share
 +hosts allow = 192.168.1.
 +
 +log file = /var/log/samba/log.%m
 +max log size = 5000
 +
 +local master = yes 
 +os level = 65
 +domain master = yes
 +preferred master = yes
 +wins support = yes
 +dns proxy = no
 +
 +dos charset = cp1251
 +unix charset = cp1251
 +#unix charset = UTF-8
 +display charset = cp1251
 +
 +store dos attributes = yes
 +
 +nt acl support = yes
 +inherit acls = yes
 +map acl inherit = yes
 +
 +# BDS for improve performance
 +socket options=SO_RCVBUF=131072 SO_SNDBUF=131072 TCP_NODELAY
 +#socket options = SO_RCVBUF=65536 SO_SNDBUF=65536
 +#socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE
 +#socket options=TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=8192 SO_SNDBUF=8192
 +min receivefile size=16384
 +use sendfile=true
 +##aio read size = 16384
 +##aio read size = 65536
 +aio write size = 16384
 +#aio write size = 65536
 +aio write behind = true
 +
 +#============================ Share Definitions ==============================
 +
 +[install]
 +path = /var/install
 +public = yes
 +writable = yes
 +printable = no
 +guest ok = yes
 +</code>
 +
 +TAG: {{tag> samba FreeBSD}} 
 +
 +~~DISCUSSION:closed~~