Hello!
Hardver: Windows XP Compaq Proliant DL360, Linux Compaq Proliant DL380.
2 pieces of processors Intel Xeon 3,2GHz, 2GB RAM, 6 gigabit interface
(2 tg3, 4 e1000), Debian Woody, 2.4.31 vanilla kernel. 6 U320 SCSI
15krpm HDD, 2 HDD RAID1 system, 4 HDD RAID1+0 data. Every network cards
connect at speed of 1000MB full duplex, with XP crosscable (but we've
tried with gigabit switch, too, we have tried both types of cards). In
the XP's (there are more of them) there are 2 pieces of interface at
gigabit speed, one of them is connected to the network of PDC, the other
is connected to the cards of the above mentioned computer with
crosscable. There is also a Windows NT 4.0 SP6 server with gigabit
card, too.
Surroundings: Windows domain, samba PDC (2.2.8a) that gets users from
LDAP. The Linux computer belongs to the domain, the LDAP-server is set
to it in libnss-ldap.conf file (the "getent passwd" sees the users and
groups), and the samba is able to authentify the users with the help of
the options "security = server, password server = IP.address",
there's
no problem with this. DL380 the samba's version is: 2.2.3a-15. Its
speed is convencing, the program mentioned below communicates with the
server at a speed of 140-150000kbit/s (measuring with iptraf, Incoming
~90000, Outgoing ~50000), by the netwatch of Windows the utilization of
the network sometimes reaches the 19%. When I make run the program
below onto files on an XP, then by the network of Windows the
utilization of the net is never higher than 15%. The utilization of the
processor on the XP is above 50% while the program is running.
There's a program that - when running on the XP - reads from mapped
network drive and writes back there. It reads certain data and
generates different files from the data. These files are relatively big
size (both the read and written ones), now the biggest is the size of
400MB. However undefinable times we get the next error message in
Windows: "Delayed Write Failed".
This time a note gets also into the diary of the events, its the status
code is: c000020c (see later why it's important). Searching in the
Microsoft's Knowledge Base we've found these messages that are like the
error message above:
http://support.microsoft.com/default.aspx?scid=kb;en;321733
- here the error message is the same but the status code is not. It
seems that the SP2 solves this problem on XP, we've looked through the
mentioned things and everything is OK, they are set up so that they
should work.
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q293842
- the error message is similar, the status code is the same, too but by
Microsoft this error doesn't happen on XP.
http://www.tangent-systems.com/support/delayedwrite.html - this is a
good summary of the problem above. It analyses what kind of settings
are needed for servers and clients in order to avoid this error (that is
depending on the combination of the server and the client to switch on
or to switch off the SMB signing).
On the basis of the last link we have checked the settings of the
Windows NT server (on that making the program run the error message
doesn't happen) and they suit the requirements written in the article.
The 2.2.3a-15 samba Windows NT behaves as a server on the network, that
is SMB signing should be switched off in it, too... however this version
doesn't know such an option! (I can't understand, if it doesn't know
the
option of SMB signing how it can use? Otherwise, if this samba can't
use it, it can't be switched off because it is not switched on...)
Anyway, we've also tried 2.2.8, 2.2.9 versions, but there was no result
beside the drastic slowing down, the error message arises again on XP.
(Drastic slowing down means: the speed doesn't exceed 20000kbit/s in
contradiction to the previous 150000kbit/s, Incoming ~10700, Outgoing
~8500).
We have ported 3.0.14a and 3.0.20pre1-1 versions aswell, they have SMB
signing option (client signing = diabled, server signing = disabled),
and it solves the question of error. Using these versions the error
message doesn't arise on XP. But the speed is awful! We aren't able to
reach 30000kbit/s :( If debug level = 3, even 20000kbit/scan't be
exceeded! On XP the utilization of the processor doesn't go over 27%!
By the Windows netwatch the utilization of the network never exceeds 2%!
The utmost packet size (with iptraf) 76-150 byte.
It's interesting that in case of simple copy (that is I copy from samba
to XP starting copy from XP with Explorer) by the Windows netwatch speed
is fixed 11%, by iptraf it is roughly fixed 117000kbit/s (with version
2.2.3a-15). And neither copies always run without errors! Sometimes an
error message arrives: "Network name can't be reached" (or
something
like that - it can't be totally reproducted the copy is sometimes
successful, sometimes not).
Here is the 2.2.3a-15 samba version's smb.conf file (as it can be seen,
we haven't tuned too much on it, it's almost the default config):
[global]
workgroup = DOMAIN
server string = %h server
load printers = no
invalid users = root
log file = /var/log/samba/log.%m
debug level = 3
max log size = 100000
syslog = 0
security = server
password server = 192.168.18.47
encrypt passwords = true
socket options = TCP_NODELAY SO_SNDBUF=8760
local master = no
os level = 20
domain master = no
preferred master = no
wins server = 192.168.18.47
dns proxy = no
name resolve order = lmhosts wins host bcast
coding system = ISO8859-2
client code page = 852
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\sUNIX\spassword:* %n\n
*Retype\snew\sUNIX\spassword:* %n\n .
obey pam restrictions = yes
[share]
comment = Share
path = /samba
browseable = no
writeable = no
create mask = 0660
directory mask = 0770
share modes = no
write list = @irhat
force group = irhat
preexec = logger "Logging %u user, %S share, %M machine"
And here is the 3.0.20pre1-1 samba version's smb.conf file (this is the
version tuned by us, but we've tried with the 2.2.3a-15 version's config
file, too - taking off or rewritten the invalid options because of the
chenga of versions):
[global]
panic action = /usr/share/samba/panic-action %d
workgroup = DOMAIN
server string = %h server
load printers = no
invalid users = root
log file = /var/log/samba/log.%m
max log size = 100000
syslog = 0
security = server
password server = 192.168.18.47
encrypt passwords = true
passdb backend = tdbsam guest
socket options = TCP_NODELAY SO_KEEPALIVE IPTOS_LOWDELAY SO_RCVBUF=131072
SO_SNDBUF=131072
local master = no
os level = 20
domain master = no
preferred master = no
wins server = 192.168.18.47
dns proxy = no
name resolve order = wins host lmhosts bcast
preserve case = no
short preserve case = no
default case = lower
case sensitive = no
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\sUNIX\spassword:* %n\n
*Retype\snew\sUNIX\spassword:* %n\n .
obey pam restrictions = yes
dos charset = CP852
unix charset = ISO8859-2
deadtime = 0
keepalive = 300
max open files = 10000
max xmit = 8192
block size = 4096
client signing = disabled
server signing = disabled
use spnego = yes
client use spnego = yes
change notify timeout = 300
mangle prefix = 4
stat cache = 0
lm announce = no
lm interval = 0
wins proxy = no
use sendfile = yes
map archive = no
kernel oplocks = no
[share]
comment = Share
path = /samba
browseable = no
writeable = no
create mask = 0660
directory mask = 0770
share modes = no
write list = @irhat
force group = irhat
preexec = logger "Logging %u user, %S share, %M machine"
oplocks = no
level2 oplocks = no
nt acl support = no
csc policy = disable
set directory = no
wide links = no
follow symlinks = no
We've tried tuning tcp part with the next things:
echo 400000 400000 400000 > /proc/sys/net/ipv4/tcp_mem
echo 400000 400000 400000 > /proc/sys/net/ipv4/tcp_rmem
echo 400000 400000 400000 > /proc/sys/net/ipv4/tcp_wmem
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
echo 0 > /proc/sys/net/ipv4/tcp_sack
echo 8192 > /proc/sys/net/ipv4/tcp_max_syn_backlog
echo 500000 > /proc/sys/net/ipv4/tcp_max_tw_buckets
echo 0 > /proc/sys/net/ipv4/tcp_timestamps
Linux-Linux ftp 251000kbit/s
Linux-XP ftp 40000kbit/s
Linux-Linux smbclient 236000kbit/s (3.0.20pre1-1)
Linux-XP Explorer 22000kbit/s (3.0.20pre1-1)
Linux-XP ftp 40000kbit/s
Linux-XP winscp 35000kbit/s
Linux-XP winscp(sftp mode) 20000kbit/s
Linux-XP ping -f 55000kbit/s
Linux-Linux ping -f 56000kbit/s
Linux-XP ping -f -s 6500 915000kbit/s
Linux-Linux ping -f -s 6500 933000kbit/s
Has anybody got ideas?
--
Bye
Zsiga
Sorry, for my poor English!