Добрый деньНачальные данные:
Версия: Nas4Free 9.1.0.1 - Sandstorm (revision 847)
ОС платформы: FreeBSD 9.1-RELEASE-p5 (kern.osreldate: 901000)
Платформа: x64-embedded on Intel(R) Pentium(R) CPU G3420 @ 3.20GHz
RAM: 8Гб
HDD: 2xWD Black Enterprise edition 1.0TbСама ОС поставлена и загружается с флешки в 1Гб.
NAS - не в домене, и сам не является dns/dhcp сервером.
Два диска используют ZFS и объеденены в RAID1 в пул.
Создан датасет объемом 400Гб.
Созданы 10 юзеров и розданы права.
Проверена на одной из машин пропускная способность и отказоустойчивость сети.
Все машины пользователей - Windows XP sp3.
В датасете - около 150Гб doc/xls/pdf/jpg/dwg файлов.
Сеть: 100Мб/с.Проблема:
1. При проверке сети(файлы размером от 1Мб до 4Гб), выяснилось, что при записи в NAS больших файлов(1-4Гб) возникает "Ошибка отложенной записи"
Причем визуально наблюдая копирование из Windows XP видно, что процесс разгоняется в несколько раз больше, чем максимально возможные 100Мб/с, до 500Мб/с
(хотя график в NAS показывает максимальные 100Мб/с и не более) и далее зависает вплоть до временной потери сетевого соединения на несколько секунд, и далее "ошибка отложенной записи" и копирование продолжается(уже некорректного файла.)
такое происходит при выставлении SO_SNDBUF=64240 SO_RCVBUF=64240. Методом исключения выбраны значения SO_SNDBUF=8192 SO_RCVBUF=8192 - при них(больше этих значений идет та же ошибка) идет корректная запись и чтение файлов любых
объемов на скорости близкой к максимальной в сети 85-95Мб/с.
2. При следующей проверке выяснилось, что всего 3 машины из 10 - нормально(эталонно) открывают любые файлы с NAS. Остальные машины открывают любые файлы(вне зависимости от размера файла 20кб-10мб) с задержкой около 10-15с.Что было сделано:
1. была взята эталонная машина с чистой установкой, отключены файервол/антивирусы:
ping на NAS идет стабильный, машины новые и проверенные.
==глюк с открытием файлов повторился.
2.были изменены(тюнингованы) сетевые настройки Windows XP:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters -----> DWORD "TcpWindowSize" with value 65535 (decimal).
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters -----> DWORD "Tcp1323Opts" with value 3.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters -----> DWORD "EnablePMTUDiscovery" with value 1.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters -----> DWORD "EnablePMTUBHDetect" with value 1.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters -----> DWORD "TcpNumConnections" with value 10000 (decimal).
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Afd\Parameters -----> DWORD "DefaultReceiveWindow" with value 65535 (decimal).
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Afd\Parameters -----> DWORD "DefaultSendWindow" with value 65535 (decimal).
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\<Interface GUID> , где <Interface GUID> это GUID сетевой карты. Опознать нужную карту - по IP.
DWORD: TcpAckFrequency with value 1
TcpDelAckTicks with value 0
Увеличено кол-во полуоткрытых соединений до 10000.
Забит вручную в hosts NAS сервер.
==глюк с открытием файлов повторился.
3.были изменены(тюнингованы) настройки NAS:
- добавлен параметр "max mux = 1", для корректного открытия,сохранения dwg файлов.
- добавлен параметр "smb ports = 139",для выбора порта между 139 и 445.
- убран параметр "atime", для увеличения скорости работы.
==глюк с открытием файлов повторился.
Текущие конфы:***SMB.CONF:
[global]
encrypt passwords = yes
netbios name = nas
workgroup = sv
server string = NAS Server
security = user
max protocol = NT1
dns proxy = no
# Settings to enhance performance:
use sendfile = yes
strict locking = no
read raw = yes
write raw = yes
oplocks = yes
max xmit = 65535
deadtime = 15
getwd cache = yes
socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
# End of performance section
unix charset = UTF-8
store dos attributes = yes
local master = no
domain master = no
preferred master = no
os level = 0
time server = no
guest account = ftp
map to guest = Never
display charset = LOCALE
max log size = 100
syslog only = yes
syslog = 3
load printers = no
printing = bsd
printcap name = /dev/null
disable spoolss = yes
log level = 3
dos charset = CP1251
smb passwd file = /var/etc/private/smbpasswd
private dir = /var/etc/private
passdb backend = tdbsam
idmap config * : backend = tdb
idmap config * : range = 10000-39999
max mux = 1
smb ports = 139
[work]
comment = Total work for all
path = /mnt/Data/dataset1/
writeable = yes
printable = no
veto files = /.snap/.sujournal/
hide dot files = yes
guest ok = yes
inherit permissions = yes
vfs objects = shadow_copy2 zfsacl
shadow:format = auto-%Y%m%d-%H%M%S
shadow:snapdir = .zfs/snapshot
shadow:sort = desc
shadow:localtime = yes
veto files = /.zfs/**SYSCTL.CONF:
hw.acpi.power_button_state NONE
hw.intr_storm_threshold 9000
kern.coredump 0
kern.ipc.maxsockbuf 16777216
kern.ipc.nmbclusters 262144
kern.ipc.nmbjumbo9 131072
kern.ipc.nmbjumbo16 65536
kern.ipc.nmbjumbop 262144
kern.ipc.somaxconn 8192
kern.maxfiles 65536
kern.maxfilesperproc 50000
net.inet.icmp.icmplim 300
net.inet.icmp.icmplim_output 1
net.inet.tcp.delayed_ack 0
net.inet.tcp.path_mtu_discovery 0
net.inet.tcp.recvbuf_auto 1
net.inet.tcp.recvbuf_inc 262144
net.inet.tcp.recvbuf_max 4194304
net.inet.tcp.recvspace 262144
net.inet.tcp.rfc1323 1
net.inet.tcp.sendbuf_auto 1
net.inet.tcp.sendbuf_inc 262144
net.inet.tcp.sendbuf_max 4194304
net.inet.tcp.sendspace 262144
net.inet.udp.maxdgram 57344
net.inet.udp.recvspace 65536
net.local.stream.recvspace 65536
net.local.stream.sendspace 65536Заранее спасибо за ответ.
> Заранее спасибо за ответ.Linux + Hardware RAID5 + XFS.
> net.inet.tcp.path_mtu_discovery 0
Сеть видимо очень хорошая?
>> Заранее спасибо за ответ.
> Linux + Hardware RAID5 + XFS.
>> net.inet.tcp.path_mtu_discovery 0
> Сеть видимо очень хорошая?Сеть 100Мб\с.
Вы можете пояснить почему нужно указывать net.inet.tcp.path_mtu_discovery 1
в данном виде сети?
Проблема решена путем сброса всех настроек по дефолту.
> Проблема решена путем сброса всех настроек по дефолту.Это не решение, это слив. :D