URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 84415
[ Назад ]

Исходное сообщение
"Тормоза в Samba"

Отправлено HEDG_SS , 10-Мрт-09 14:28 
Проблема: При большом количестве папок (порядка 3000+) Windows просто "подвешивает" окно минуты на 4, после чего выдет список всех папок.
При этих же настройках захожу через Total Comander и получаю список папок буквально через 5-6 сек.
Проверял с 5 разных компов с Windows XP.

Настройки и ПО:
FreeBSD 7.0-RELEASE #0
samba-3.0.31_1,1

есть несколько компов-файлохранилищ, с них по nfs используя tcp монтируются жесткие на один комп. Скрипт создает симлинки в одной папке, которая потом и расшаривается по самбе. Всего симлинков получается 3000+ . Эта шара монтируется командами типа "net use W: \\ftp\public"

Самое интересное, что в сети ничего не менялось, причем сервер без особых изменений жил уже около года....
конфиг smb.conf
[global]
        dos charset = 866
        unix charset = cp1251
        display charset = cp1251
        workgroup = GROUP
        netbios name = FTP
        server string = Share Server
        interfaces = net0, net1
        map to guest = Bad Password
        null passwords = Yes
        syslog = 0
        log file = /var/log/samba/%I.log
        max log size = 100
        read raw = No
        max xmit = 65535
        name resolve order = wins lmhosts host bcast
        time server = Yes
        deadtime = 15
        socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 SO_KEEPALIVE SO_REUSEADDR SO_BROADCAST IPTOS_LOWDELAY IPTOS_THROUGHPUT
        load printers = No
        os level = 65
        preferred master = No
        local master = No
        domain master = No
        dns proxy = No
        wins support = Yes
        lock directory = /var/run/samba
        hosts allow = 127., 172.,
        preexec = "/ftp/bin/mkln %I"

[public]
        comment = Public stuff
        path = /ftp/pub
        force group = nobody
        guest ok = Yes
        delete veto files = Yes
        veto files = /.*/

[private]
        comment = Private Movie stuff
        path = /ftp/private
        valid users = private
        force group = nobody
        delete veto files = Yes
        veto files = /.*/

[cinema]
        comment = Movie Club
        path = /ftp/kino
        valid users = kino
        create mask = 0664
        directory mask = 0775
        guest ok = Yes
        delete veto files = Yes
        veto files = /.*/

[usr]
        comment = Users Staff
        path = /ftp/usr/
        create mask = 0664
        directory mask = 0775
        guest ok = Yes
        delete veto files = Yes
        veto files = /.*/

[home]
        comment = Home dir
        path = /ftp/home/%I
        force user = nobody
        force group = Administrator
        read only = No
        create mask = 0664
        directory mask = 0775
        guest ok = Yes
        delete veto files = Yes
        veto files = /.*/

Даже не знаю уже куда и смотреть ( . Может кто-то сталкивался уже с чем-то подобным? В чем разница между Windows и Total Comander при выполнении листинга директории?


Содержание

Сообщения в этом обсуждении
"Тормоза в Samba"
Отправлено Kos , 10-Мрт-09 15:26 
>[оверквотинг удален]
>        guest ok = Yes
>
>        delete veto files =
>Yes
>        veto files = /.*/
>
>
>Даже не знаю уже куда и смотреть ( . Может кто-то сталкивался
>уже с чем-то подобным? В чем разница между Windows и Total
>Comander при выполнении листинга директории?

может нет связи с некоторыми сетевыми ресурсами? в винде эксплорер начинает сильно тупить если, например, в проводнике есть ссылка на ресурс, который в этот момент недоступен.
при этом фар ну или тот-же тотал коммандер нормально открываются


"Тормоза в Samba"
Отправлено mikra , 10-Мрт-09 16:53 
>В чем разница между Windows и Total
>Comander при выполнении листинга директории?

Проводник заходит в каждую папку чтобы запомнить структуру и сразу отобразить дерево папок текущего уровня и следующего.
Если показ дерева папок в проводнике отключен, то заход вглубь папок не отключается. Это не баг, это фича, и сервер тут не при чем.


"Тормоза в Samba"
Отправлено Pahanivo , 10-Мрт-09 18:00 
>>В чем разница между Windows и Total
>>Comander при выполнении листинга директории?
>
>Проводник заходит в каждую папку чтобы запомнить структуру и сразу отобразить дерево
>папок текущего уровня и следующего.
>Если показ дерева папок в проводнике отключен, то заход вглубь папок не
>отключается. Это не баг, это фича, и сервер тут не при
>чем.

ага )) проводник виндовс сам себе ДДоС ))


"Тормоза в Samba"
Отправлено HEDG_SS , 11-Мрт-09 16:31 
замечена был следующий момент, что при открытии папки с "кучей" подпапок, в каждой из которых фильм,  windows "подвешивает" окно. Если открывается аналогичная папка тоже с "кучей" музыки в подпапках, подвисания не происходит (оно очень кратковременное)

Было высказано предположение, что Windows пытается прочитать данные по фильмам в каждой из подпапок (пару кадров для отображения, а может еще какие-то данные), поэтому это и происходит так долго...

Еще один момент. Просмотрел по trafshow активность на серваке, при открытии одной и той же папки с кол-вом подпапок с фильмами  3000+. Увидел следующую картину:
Идет обычное соединение на порт 139, но с разной скоростью: Просто из под винды я получаю 5-20Кб , а при заходе через тотал - 100-400Кб.

Народ, у кого какие мысли, как это побороть ?


"Тормоза в Samba"
Отправлено Pahanivo , 12-Мрт-09 09:07 
>[оверквотинг удален]
>поэтому это и происходит так долго...
>
>Еще один момент. Просмотрел по trafshow активность на серваке, при открытии одной
>и той же папки с кол-вом подпапок с фильмами  3000+.
>Увидел следующую картину:
>Идет обычное соединение на порт 139, но с разной скоростью: Просто из
>под винды я получаю 5-20Кб , а при заходе через тотал
>- 100-400Кб.
>
>Народ, у кого какие мысли, как это побороть ?

ну например может и антивирб притормаживать


"Тормоза в Samba"
Отправлено HEDG_SS , 12-Мрт-09 11:19 
Не это точно не антивирь. Пробовал с разных компов, а симптомы через чур одинаковые. Пробовал и отключать, никаких изменений.

"Тормоза в Samba"
Отправлено HEDG_SS , 14-Мрт-09 14:19 
Народ неужели НИКТО не работал с большим колличеством папок с мультимедией???
Подскажите, как это побороть

"Тормоза в Samba"
Отправлено mikra , 16-Мрт-09 13:15 
>Народ неужели НИКТО не работал с большим колличеством папок с мультимедией???
>Подскажите, как это побороть

Ну обозначили же причину. Решение - не пользоваться виндовым проводником, а взять что-то аналогичное, либо вообще сделать другой интерфейс с юзером типа веба. Есть конечно еще шанс на то, что каким-ньть твикером можно проводник подпилить чтобы работал он как надо, а не как обычно...


"Тормоза в Samba"
Отправлено HEDG_SS , 17-Мрт-09 13:49 
>Решение - не пользоваться виндовым проводником, а взять что-то аналогичное,

Данное решение не подходит, потому что пользователей 2000+ . Большинство из них боятся таких вещей.
Вариант с  правкой реестра подойдет, только я пока не могу найти что поменять :(
Кто знает, подскажите пожалуйста!


"Тормоза в Samba"
Отправлено Юрий , 04-Окт-11 15:55 
значит у меня такая же проблема была. Но копать надо было на роутере.
Схема. Одноранговая сеть. Роутер 192.168.0.1 документы 192.168.0.5. Пользователи 192.168.0.100-200. При подключениях к серверу 0.5 висяки последнюю неделю. Отлипает через пару минут все гуд. Напрямую через эксплорер открылось быстренько. Вспомнил что на роутере неделю назад поставил жесткий дроп.

#CLEANING TABLE
$iptables -F
$iptables -t nat -F
$iptables -t mangle -F
$iptables -X
$iptables -t nat -X
$iptables -t mangle -X

#SET Default-Policies
$iptables -P INPUT DROP
$iptables -P OUTPUT DROP
$iptables -P FORWARD DROP

#CLEANING TABLE
$iptables -F
$iptables -t nat -F
$iptables -t mangle -F
$iptables -X
$iptables -t nat -X
$iptables -t mangle -X

#SET Default-Policies
$iptables -P INPUT DROP
$iptables -P OUTPUT DROP
$iptables -P FORWARD DROP

ну и дальше правила разрешения. Включил логирование и что обнаружил что при подключениях к сетевой папке с 192.168.0.109 на сервер самбы 192.168.0.5 сам ип 109 бросает броадкаст
Jan  4 14:27:15 kybergames kernel: INPUT LOGIN=eth1 OUT= MAC=ff:ff:ff:ff:ff:ff:00:11:d8:1d:96:3c:08:00 SRC=192.168.0.109 DST=192.168.0.255 LEN=78 TOS=0x00 PREC=0x00 TTL=128 ID=23335 PROTO=UDP SPT=137 DPT=137 LEN=58

смотрим /etc/services и обнаруживаем

netbios-ns      137/tcp                         # NETBIOS Name Service
netbios-ns      137/udp
netbios-dgm     138/tcp                         # NETBIOS Datagram Service
netbios-dgm     138/udp
netbios-ssn     139/tcp                         # NETBIOS session service
netbios-ssn     139/udp

Дописываю правила разрешения
LOCAL0=192.168.0.0/24

    
                echo "NETBIOS-NS        137"
                        $iptables -A INPUT -s $LOCAL0 -p tcp --dport 137 -d $LOCAL0 -j ACCEPT
                        $iptables -A INPUT -s $LOCAL0 -p tcp --sport 137 -d $LOCAL0 -j ACCEPT
                        $iptables -A INPUT -s $LOCAL0 -p udp --dport 137 -d $LOCAL0 -j ACCEPT
                        $iptables -A INPUT -s $LOCAL0 -p udp --sport 137 -d $LOCAL0 -j ACCEPT
                echo "NETBIOS-DS        138"
                        $iptables -A INPUT -s $LOCAL0 -p tcp --dport 138 -d $LOCAL0 -j ACCEPT
                        $iptables -A INPUT -s $LOCAL0 -p tcp --sport 138 -d $LOCAL0 -j ACCEPT
                        $iptables -A INPUT -s $LOCAL0 -p udp --dport 138 -d $LOCAL0 -j ACCEPT
                        $iptables -A INPUT -s $LOCAL0 -p udp --sport 138 -d $LOCAL0 -j ACCEPT
                echo "NETBIOS-SS        139"
                        $iptables -A INPUT -s $LOCAL0 -p tcp --dport 139 -d $LOCAL0 -j ACCEPT
                        $iptables -A INPUT -s $LOCAL0 -p tcp --sport 139 -d $LOCAL0 -j ACCEPT
                        $iptables -A INPUT -s $LOCAL0 -p udp --dport 139 -d $LOCAL0 -j ACCEPT
                        $iptables -A INPUT -s $LOCAL0 -p udp --sport 139 -d $LOCAL0 -j ACCEPT

Перегружаю таблицы. Смотрю попадают ли в цепочки iptables -L INPUT -vn|less

0     0 ACCEPT     tcp  --  *      *       192.168.0.0/24       192.168.0.0/24      tcp spt:137
  803 62688 ACCEPT     udp  --  *      *       192.168.0.0/24       192.168.0.0/24      udp dpt:137
    0     0 ACCEPT     udp  --  *      *       192.168.0.0/24       192.168.0.0/24      udp spt:137
    0     0 ACCEPT     tcp  --  *      *       192.168.0.0/24       192.168.0.0/24      tcp dpt:138
    0     0 ACCEPT     tcp  --  *      *       192.168.0.0/24       192.168.0.0/24      tcp spt:138
  200 43076 ACCEPT     udp  --  *      *       192.168.0.0/24       192.168.0.0/24      udp dpt:138
    0     0 ACCEPT     udp  --  *      *       192.168.0.0/24       192.168.0.0/24      udp spt:138
    0     0 ACCEPT     tcp  --  *      *       192.168.0.0/24       192.168.0.0/24      tcp dpt:139
    0     0 ACCEPT     tcp  --  *      *       192.168.0.0/24       192.168.0.0/24      tcp spt:139
    0     0 ACCEPT     udp  --  *      *       192.168.0.0/24       192.168.0.0/24      udp dpt:139
    0     0 ACCEPT     udp  --  *      *       192.168.0.0/24       192.168.0.0/24      udp spt:139

Обнаруживаю что ходят родные UDP пакеты с локалки в локалку спрашивая чего-то у шлюза и задержки на открытия папки исчезли.
Отлипло благодаря такому решению. У каждого из Вас дорогие соконсольники может быть иная топология посему накладывайте у себя.
Так же роутер может быть не на линухе ну тогда колупайте роутер тот который у вас всё дропит. дайте ему жрать со 137,138,139 и будет счастье.
Всё ведет к тому что слабо знаем теорию микромягких )) если есть решение еще проще - буду оч рад узнать на suijuris@yandex.ru
Всем данке. дойчьлянд юбераллес.