Почему доступ к Samba из Windows такой медленный?
Я настроил файловый сервер, используя Ubuntu 12.04 Server. Цель состоит в том, чтобы обслужить несколько сетевых дисков пользователям Windows, которые до этого обслуживались многочисленными дисками NAS.
У меня Samba настроена с одной определенной до сих пор акцией. Я могу подключиться к нему отлично с моих тестовых машин Windows 7 и Windows XP.
Когда я делаю список каталогов на общем ресурсе из Windows, это может занять до двух минут, чтобы получить все перечисленные файлы - это заняло бы около 1,5 секунд, когда я использовал Buffalo NAS. Иногда это происходит без ответа вообще.
Я использовал файл smb.conf по умолчанию и просто добавил следующее для общего ресурса, который я настроил до сих пор:
[engineering]
comment = Ubuntu File Server Share
path = /networkdriveshares/engineering
browsable = yes
guest ok = yes
read only = no
create mask = 0755
Я попытался изменить настройку рабочей группы на имя активного домена, которое использует наш компьютер с Windows, но не заметил никакой разницы.
Единственное другое изменение, которое я сделал в smb.conf по умолчанию, было добавление в рекомендуемые параметры сокета:
SO_RCVBUF=8192 SO_SNDBUF=8192
socket options = TCP_NODELAY
Много информации о медленных акциях Samba в Интернете, но я перепробовал все решения, которые нашел, и ни одно из них не помогло. Если решения не существует, есть ли лучший способ настроить файловый сервер для использования клиентами Windows?
1 ответ
Попробуйте настроить свой сервер без настройки SO_RCVBUF
а также SO_SNDBUF
, То есть:
socket options = TCP_NODELAY
и ничего больше. Или закомментируйте socket options
целиком и использовать Samba по умолчанию.
У меня была похожая проблема с Ubuntu 12.04 и клиентом Mac на гигабитном Ethernet. Чтение файла выполнялось со скоростью около 100 Кбайт / с или в 300 раз медленнее. В Ubuntu 11.10 я устанавливал оба буфера на 8192, как вы пытались. Но когда я обновился до 12.04, я обнаружил, что мне пришлось удалить этот параметр, чтобы вернуть производительность туда, где она должна быть (около 30 Мбайт / с, скорость диска).
Другое решение, которое я видел, предлагает установить max protocol = NT1
, Я попробовал это сначала, и это не помогло мне.