Документация по ОС FreeBSD Суббота, 20.04.2024, 03:14
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Apache [58]
DNS [25]
FTP [27]
Mail [74]
Samba [24]
Squid [46]
SSH [23]
VPN [35]
РРР [20]
Net [173]

Главная » Статьи » Сеть » Samba

Оптимизация работы Samba-сервера [2010]
Вообще говоря, я давно был не слишком доволен работой своего самба-сервера в плане низкой скорости скачивания данных с него, но руки не доходили разобраться что и как. А тут в рассылке stable@ как раз наткнулся на эту тему со ссылкой на официальный форум, попробовал рецепт, который там вычитал и был изрядно удивлен и обрадован. Собственно, оригинал здесь, а кому лень читать английский текст, могут продолжать читать дальше.
Для достижения нирваны нам нужно подгрузить модуль aio (асинхронного I/O), вставив в /etc/loader.conf следующее:

aio_load="YES"

Кроме того, нам нужно собрать (пересобрать) Samba с поддержкой aio (если самба уже стояла, не забываем забэкапить ее конфигурационный файл: /usr/local/etc/smb.conf. Кромe этого саму самбу придется снести):

#cd /usr/ports/net/samba33 & make config



#make install & clean

После чего необходимо внести некоторые изменения в /usr/local/etc/smb.conf, добавив в секцию [global] следующие строки:

socket options=SO_RCVBUF=131072 SO_SNDBUF=131072 TCP_NODELAY
min receivefile size=16384
use sendfile=true
aio read size = 16384
aio write size = 16384
aio write behind = true
dns proxy = no

Кроме того, советуют в /etc/sysctl.conf вставить следующие строки:

kern.ipc.maxsockbuf=16777216
kern.ipc.nmbclusters=32768
kern.ipc.somaxconn=32768
kern.maxfiles=65536
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=65536
net.inet.udp.maxdgram=57344
net.inet.udp.recvspace=65536
net.local.stream.recvspace=65536
net.inet.tcp.sendbuf_max=16777216
net.inet.tcp.mssdflt=1460

Вот собственно и все. После этого перезагружаемся, либо делаем:

#kldload aio
#/usr/local/etc/rc.d/samba restart

и с помощью sysctl меняем переменные (#sysctl команда_из_последнего_списка).
После чего запускаем копирование с samba-сервера и радуемся жизни.


Источник: http://bsd.mlcom.ru/?p=684
Категория: Samba | Добавил: oleg (26.04.2010) | Автор: skiangel
Просмотров: 1665 | Рейтинг: 4.5/2 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024