в течение нескольких недель я больше не могу загружать файлы на свой сервер Samba. Я не изменил конфигурацию и не обновил Samba, чтобы это произошло. У меня была Samba 4.1.5, когда это произошло, поэтому я попытался обновить до 4.1.7, но проблема остается. Я на Mageia Cauldron, с Samba 4 вручную скомпилировал настроенный как PDC.

Я могу без проблем загружать файлы с общего ресурса Samba - от нескольких байтов до нескольких гигабайт в диапазоне от 8,8 до 11,2 МБ / с. Но я могу загружать только файлы размером менее ~ 4 МБ и медленнее, чем 100 КБ / с. Когда я копирую из GNU / Linux, я получаю ошибку тайм-аута, и когда я копирую из Windows, он говорит, что сетевое имя больше не доступно.

Есть идеи, как это решить? Вот мой smb.conf, если он полезен:

[global]
workgroup = DOMAIN.ORG
server string = Samba Server Version %v

realm = AD.DOMAIN.ORG

netbios name = DOMAIN
server role = active directory domain controller
server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbind, ntp_signd, kcc, dnsupdate
idmap_ldb:use rfc2307 = yes


encrypt passwords = yes
log level = 3
log file = /var/log/samba/samba.log
max log size = 50
template shell = /bin/bash

logon drive = P:
logon home = \\192.168.1.2\Profiles\%U
logon path = \\192.168.1.2\Profiles\%U

load printers = yes
printing = cups

[printers]
path = /var/spool/samba
browseable=yes
printable = yes
public = yes

[print$]
path = /srv/samba/Printer_drivers
comment = Printer Drivers
writeable = yes

[Data]
path = /mnt/data
read only = No

[profile]
path = /srv/samba/profile
read only = no
profile acls = yes
create mode = 0600
directory mode = 0700
browseable = no

[netlogon]
path = /var/lib/samba/sysvol/ad.domain.org/scripts
read only = No

[sysvol]
path = /var/lib/samba/sysvol
read only = No

[homes]
comment = Home Directories
browseable = no
writable = yes
force create mode = 0660
force directory mode = 0770

[Profiles]
path = /srv/samba/Profiles/
read only = no
msdfs root = yes

[IPC$]
path = %$TMPDIR
guest ok = yes
#hosts allow = 192.168.1.0/24 127.0.0.1 fe80::250:22ff:fe40:1048/64
#hosts deny = 0.0.0.0/0 ::/0

1 ответ1

0

В файле smb.conf есть опция, которая отключает задержку перед тайм-аутом для TCP-соединений (что может происходить из-за того, что соединение работает с большими файлами слишком долго и думает, что оно не отвечает, возможно, из-за ошибки в этой сборке), просто добавлять:

параметры сокета = TCP_NODELAY

К вашему файлу conf и тесту. Источник

Также попробуйте понизить ваш пакет до последней рабочей версии, если это возможно для вас.

Обновление относительно ваших последних комментариев:

Что касается вашей скорости, я предполагаю, что у вас есть 2 сетевых адаптера 100 Mbps на каждом конце, подключенном к концентратору 100 Mbps или коммутатору, так что если вы сделаете некоторую математику, мы получим следующее:

100 Mbps = 100 Mbits / 8 bytes/bit = 12.5 MB/s max.

И если предположить, что ваш коммутатор или сетевые адаптеры не являются полнодуплексными (например, сеть WiFi), вы должны получить скорость ~ 6,25 МБ / с для TCP-передач, но я думаю, что это не так, в любом случае, всегда предполагайте, что сбой, вызванный другим трафиком, проходящим через сеть, особенно если вы находитесь на концентраторе, где часто происходят коллизии.

Также обратите внимание, что 100 MB/s ≠ 100 MiB/s:

100 `MB/s` = 100,000,000 b = 100*10^6 b ← Base 10.

Куда:

100 `MiB/s` = 104,857,600 b = 100*2^20 b ← Base 2.

Итак, ваша скорость соединения составляет 12.5 MB/s и ваш инструмент измеряет ее в единицах MiB (что делают наиболее распространенные инструменты), у вас есть следующее:

12.5 MB/s = 12,500,000 b
12,500,000 b / 2^20 B = ~12 MiB/s

И если вы учитываете замедление трафика в реальной сети, это ваша реальная скорость.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .