Низкая скорость отдачи Samba на сервере [РЕШЕНО]

Сервер ставил с образа: cds-9.9-i686.iso на 2 десктопа. (на обоих такая ерунда)

Суть проблемы: Скачиваю файлы с самба сервера (десктоп) на ноутбук со скоростью 11 мб/сек, заливка же на самба сервер идет со скоростью 4,5 мб/сек.

Проверял на двух десктопах на 2х разных сетевых картах, и 2х ноутбуках (на одном Windows7 на другом XP SP3)
Дело не в железе, т.к. на один десктоп установил windows server 2008 скорость на шары в ту и другую сторону одинаковая 11 мб/с.

В mc подсоединился к локальной шаре, тоже самое, скорость заливки чуть выше 5,6 мб/сек, скорость скачки 6,4 мб.

mii-tool:

eth0: negotiated 100baseTx-FD, link ok
eth1: negotiated 100baseTx-FD, link ok

Конфиг самбы:

; /etc/samba/smb.conf
[global]
        guest account = nobody
        smb passwd file = /etc/samba/smbpasswd
        display charset = utf8
;cp1251
        load printers = no
        name resolve order = lmhosts host wins bcast
        passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spas                                             sword:* %n\n .
        socket options = IPTOS_LOWDELAY TCP_NODELAY SO_SNDBUF=4096 SO_RCVBUF=409                                             6
        preserve case = yes
        obey pam restrictions = yes
        domain master = no
        encrypt passwords = true
        passdb backend = smbpasswd guest
        passwd program = /usr/bin/passwd %u
        dns proxy = no
        server string = %h server (kent vs denv)
        invalid users = root
        unix password sync = false
        dos charset = utf8
;koi8-r
        local master = yes
        workgroup = HOME
        os level = 65
        syslog only = no
        syslog = 0;
        security = share
        panic action = /usr/share/samba/panic-action %d
        short preserve case = yes
        unix charset = utf8
;koi8-r
        max log size = 1000

[500gb]
comment = 500gb
path = /mnt/500gb
browseable = yes
public = yes
writable = yes
create mask = 0777
directory mask = 0777
security mask = 0777
valid users = nobody

[300gb]
comment = 300gb
path = /mnt/300gb
browseable = yes
public = yes
writable = yes
create mask = 0777
directory mask = 0777
security mask = 0777
valid users = nobody

[200gb]
comment = 200gb
path = /mnt/200gb
browseable = yes
public = yes
writable = yes
create mask = 0777
directory mask = 0777
security mask = 0777
valid users = nobody

Оказалось все очень интересно :idea: Как всегда :wink:

Подправил самба конфиг и все нормально стало 11,5 мб/сек в обе стороны.

socket options = IPTOS_LOWDELAY TCP_NODELAY SO_SNDBUF=64000 SO_RCVBUF=64000 SO_KEEPALIVE

Осталось только разобраться почему у меня сетевуха в ноуте intel 82566mm не конненится на скорости 1 Gbit full duplex ни в linux ни в winxp ни в win7 с новыми дровами от интел. =)))

Только что потестировал с самбой. Менял строчку socket options.
По умолчанию настраивается утилитами calculate2:

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

Менял на Ваш вариант:

socket options = IPTOS_LOWDELAY TCP_NODELAY SO_SNDBUF=64000 SO_RCVBUF=64000 SO_KEEPALIVE

Вначале показалось что изменения ускорили запись - 13Мб/сек против 9.9Мб/сек. Повторил тест, с параметром по умолчанию показал 13.4Мб/сек на запись. Счёл за погрешность.
Чтение показывает абсолютно одинаковым, в районе 20Мб/сек в обоих случаях.
Думаю буферы здесь не причем.

На самом деле интересна другая проблема.
Около сотни фалов в home пользователя. Выполняю на сервере в директории /var/calculate/server-data/samba/home/alex:

time ls -la
real    0m0.010s
user    0m0.004s
sys     0m0.000s

все дальнейшие разы:

real    0m0.006s
user    0m0.004s
sys     0m0.004s

тоже, только только на клиенте, директория /home/alex/Home:

time ls -la
real    0m0.325s
user    0m0.002s
sys     0m0.008s

В ~50 раз дольше! С более увесистыми директориями локальный ls также отображает в пределах не более 0.1 сек, а вот через самбу доходит до 14 сек…