Страница 1 из 1

Samba - тормоза

Добавлено: 2009-03-08 1:43:05
HEDG_SS
Файловый сервер:
FreeBSD 7.0-RELEASE #0
samba-3.0.31_1,1

Из под Windows монтируются сетевые диски командами типа:

Код: Выделить всё

net use W: \\ftp\public
При большом количестве папок (порядка 3000) Windows просто "подвешивает" окно минуты на 4, после чего выдет список всех папок.
При этих же настройках захожу через Total Comander и получаю список папок буквально через 2 сек.
Проверял с 4 разных компов с Windows XP.

Самое интересное, что в сети ничего не менялось, причем сервер без особых изменений жил уже около года....
Вот конфиг самбы

Код: Выделить всё

[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 = /.*/

В логах нашел только это

Код: Выделить всё

[2009/03/08 00:30:32, 0] nmbd/nmbd_winsserver.c:initialise_wins(643)
  initialise_wins: Failed to parse time to live when parsing line "????''"'?--??#20" 1236738307 172.17.159.12 64R
[2009/03/08 00:30:32, 0] nmbd/nmbd_winsserver.c:initialise_wins(643)

[2009/03/08 00:04:38, 1] smbd/service.c:make_connection_snum(1033)
  sshpk (172.17.133.15) connect to service cinema initially as user kino (uid=1028, gid=1028) (pid 47750)
[2009/03/08 00:04:38, 1] smbd/service.c:make_connection_snum(1033)
  sshpk (172.17.133.15) connect to service public initially as user kino (uid=1028, gid=65534) (pid 47750)
[2009/03/08 00:04:38, 1] smbd/service.c:make_connection_snum(1033)
  sshpk (172.17.133.15) connect to service home initially as user nobody (uid=65534, gid=1022) (pid 47750)
[2009/03/08 00:04:39, 1] smbd/service.c:make_connection_snum(1033)
  sshpk (172.17.133.15) connect to service usr initially as user kino (uid=1028, gid=1028) (pid 47750)
[2009/03/08 00:28:47, 1] smbd/service.c:close_cnum(1230)
  sshpk (172.17.133.15) closed connection to service usr
[2009/03/08 00:28:47, 1] smbd/service.c:close_cnum(1230)
  sshpk (172.17.133.15) closed connection to service home
[2009/03/08 00:28:47, 1] smbd/service.c:close_cnum(1230)
  sshpk (172.17.133.15) closed connection to service public
[2009/03/08 00:28:47, 1] smbd/service.c:close_cnum(1230)
  sshpk (172.17.133.15) closed connection to service cinema
[2009/03/08 00:30:42, 1] smbd/service.c:make_connection_snum(1033)
  sshpk (172.17.133.15) connect to service public initially as user kino (uid=1028, gid=65534) (pid 53536)
[2009/03/08 00:30:43, 1] smbd/service.c:make_connection_snum(1033)
  sshpk (172.17.133.15) connect to service cinema initially as user kino (uid=1028, gid=1028) (pid 53536)

Хоть пните в нужном наравлении... Что может давать такой эффект ?

Re: Samba - тормоза

Добавлено: 2009-03-08 6:48:15
zg
HEDG_SS писал(а):При большом количестве папок (порядка 3000) Windows просто "подвешивает" окно минуты на 4, после чего выдет список всех папок.
для винды это нормально
HEDG_SS писал(а):При этих же настройках захожу через Total Comander и получаю список папок буквально через 2 сек.
а самба то тут при чём, раз из тотала всё пашет? от смены клиента сервер не меняется.

Re: Samba - тормоза

Добавлено: 2009-03-08 18:34:52
HEDG_SS
Дело в ом что раньше все без проблем работало...
Хотелось бы знать почему вознике разница тотала с виндой.... В чем разница и как это можно поправить используя настройки самбы

Re: Samba - тормоза

Добавлено: 2009-03-08 19:53:51
zg
HEDG_SS писал(а):В чем разница и как это можно поправить используя настройки самбы
а настройки менялись?

Re: Samba - тормоза

Добавлено: 2009-03-09 12:13:39
HEDG_SS
Да в том и загвоздка, что вроде в сети не было изменений. Пытался подключить квоты, но не добился нужного эффкта и убрал их, т.е. конфиг сейчас полностью старый.

Re: Samba - тормоза

Добавлено: 2009-03-09 19:52:04
zg
HEDG_SS писал(а):т.е. конфиг сейчас полностью старый.
венда :pardon: чё тут поделаешь, в ней собака зарылась -)))

Re: Samba - тормоза

Добавлено: 2009-03-10 11:12:18
HEDG_SS
Да если б винда.. Пробовал на 5 разных компах лично + народ отзванивался, клиническая картина не изменилась :( .

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

Даже не знаю уже куда и смотреть :cry: :st:

Re: Samba - тормоза

Добавлено: 2009-03-10 14:42:22
zg
дай вывод

Код: Выделить всё

find /path/to/shares -iname 'Desktop.ini' | wc -l

Re: Samba - тормоза

Добавлено: 2009-03-10 15:10:56
HEDG_SS
В этой шаре нет ни одного файла Desktop.ini, команда ничего не выдала

Re: Samba - тормоза

Добавлено: 2009-03-10 15:31:38
zg
HEDG_SS писал(а):команда ничего не выдала
гм.. странно, а должна была выдать, даже если ничего не было найдено

Код: Выделить всё

zg# false  | wc -l
       0
zg#

Re: Samba - тормоза

Добавлено: 2009-03-10 15:39:02
HEDG_SS
Прошу прощения, я сделал просто find, который мне ничего не выдал :oops:

Код: Выделить всё

# find /ftp/kino/ -iname 'Desktop.ini' | wc -l
       0

Re: Samba - тормоза

Добавлено: 2009-03-10 17:09:02
zg
HEDG_SS писал(а):Скрипт создает симлинки в одной папке, которая потом и расшаривается по самбе
а если монтировать просто одну папку, проблема сохраняется?

Re: Samba - тормоза

Добавлено: 2009-03-10 17:58:40
HEDG_SS
а если монтировать просто одну папку, проблема сохраняется?
Если я правильно понял имеется ввиду, что будет если расшарить жесткий диск без симлинков (одновременно уменьшая объем содержимого в папке) ?
Если да..
Монтировал папку содержащие 850 файлов и папок. открываются нормально.
Монтировал папку с 420 симлинками открывается секунд 15.
Создается ощущение, что что все задумывается именно из-за обработки симлинков... Странно, потому что схема с симлинками существует уже года 3, а в колличестве 2000+ уже более года. Походу я всеже что-то поменял :( , вспомнить бы что и где :oops: ... Пошел гуглить про симлинки в самбе..

Re: Samba - тормоза

Добавлено: 2009-03-10 18:26:08
zg
HEDG_SS писал(а):что все задумывается именно из-за обработки симлинков
вероятно сами симлинки не причём, возможно проблема в нфс

Re: Samba - тормоза

Добавлено: 2009-03-10 23:39:16
Alex Keda
симлинки из самбы видяться как конечный объект...
файл или папка...
=========
странно вообще...

Re: Samba - тормоза

Добавлено: 2009-03-11 17:07:42
HEDG_SS
Гуглил, похоже это действительно непраильньный вывод
замечена был следующий момент, что при открытии папки с "кучей" подпапок, в каждой из которых фильм, windows "подвешивает" окно. Если открывается аналогичная папка тоже с "кучей" музыки в подпапках, подвисания не происходит (оно очень кратковременное)

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

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

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

Re: Samba - тормоза

Добавлено: 2009-03-11 18:12:33
zg
99%, что данная проблема, если таковая имеется, описана на на сайте майкрософта. Правда поиск там хуже некуда, зато статьи выложены весьма познавательные.

Re: Samba - тормоза

Добавлено: 2009-03-13 11:00:11
HEDG_SS
Искал на русском на сайте мелкософта, пока ничего не нашел ( . Буду искать дальше, тоже думаю что должно что-то быть по этой теме

Re: Samba - тормоза

Добавлено: 2009-03-13 12:09:05
Kos
в этом топике написано, что мс рекомендует не больше 2000 файлов для нормального просмотра... может дело не в измененности конфигов, а в превышении "критичного" количества файлов

http://www.eggheadcafe.com/conversation ... d=30094940

Re: Samba - тормоза

Добавлено: 2009-03-14 13:29:35
HEDG_SS
Очень похоже, что так оно и есть :( . Хотелось бы найти способ увеличить этот порог. На мой взгляд проблема возникает потому что Windows не делает обычный листинг директории, а пытается получить какие то дополнительные данные о каждой папке и файлах в ней т.е. выполняет ограниченную по глубине рекурсию. А тотал делае самый простой листинг и отрабатывает на порядки быстрее. Похоже когда превышается определенный порог папок для Виндовс этот порог становится "убийственным".