[Samba] Samba ignoring socket options?
mikesm559 at yahoo.com
Thu Aug 28 19:53:00 GMT 2008
Hi everyone. I am running Samba 3.2.0-22.1 (as packaged by OpenSUSE in
11.0) on a storage server connected to multiple windows based clients
over a gigabit ethernet link. The server is a quad core Intel CPU and
is equipped with an Intel e1000 based gigabit ethernet controller and plugged into a common gigabit ethernet switch with the windows clients.
I am seeing performance issues on transfers over the gigabit ethernet network,
and was trying to play with the socket options settings in the smb.conf
file to improve transfers rates, but no matter what I set the SO_RCVBUF
and SO_SNDBUF values too, the transfer rates are unchanged, even if I
set the buffer sizes down to 512, which should have the effect of at
least slowing things down dramatically, leading me to question if Samba
is actually using these settings at all. TCP_NODELAY is set, but it
doesn't seem to matter much if I include it or not on the socket
options line, and the line is definitely not commented out, as if I
misspell something on that line, samba terminates with an error when I
try and restart the daemon.
Samba is getting roughly 30 MB/s tranfer rates from the linux server to a windows vista and a windows XP client,
and the disks on both windows machines are RAID0 (4 and 2 disk RAID0
sets respectively), so I don't think I am running into filesystem
performance issues on the target. Moving from the windows systems to Samba, I see about 45 MB/sec transfers rates.
raid array on the samba server consist of 2 6 disk raid5 sets with fast
disks on them, running lvm and XFS for a filesysteem. I can do a dd of
a multigigabyte file to /dev/null and get roughly 500-600 MB/'s
transfer rates through the filesystem, so I don't think the raid array
and file system is a bottleneck.
I have run netperf tests
between the server and the clients to see if I had some network
plumbing problems. With default socket settings for netperf (8182
buffer size), I get about 300 mbps transfer rates between the clients
and the server (which matches approximately the 30 MB/s transfer
rates). With 65536 byte buffers, that number goes to 970 or so Mbps,
so I think the interface cards, TCP stack, switches are all ok.
If I do an FTP from the server to a client, I get 45-50 MB/s transfer rates, so I think the problem is somewhere in Samba.
if I change the SO_SNDBUF and SO_RCVBUF values, either up or down, or
keep them unset, I get almost no variance in transfer rates. Vista is
set to use autotuning in it's TCP configuration, and window scaling and
RFC 1323 options are enabled, but I see the same exact performance on
XP as well, so I don't think it's a client issue. I get somewhat
faster copying from a windows 2003 server on the same LAN to the same
clients, even though it is not equipped with a raid array and is just
reading from one disk with an unoptimized NTFS filesystem.
Is there a bug here or am I missing something in the configuration?
More information about the samba