[Samba] single stream performance issue, Win2K, WinXP, Samba 3.2.5-4lenny7 (Debian Lenny)
stan at hardwarefreak.com
Sun Jan 24 12:59:14 MST 2010
Michael Wood put forth on 1/24/2010 6:09 AM:
> 2010/1/24 Volker Lendecke <Volker.Lendecke at sernet.de>:
>> On Sat, Jan 23, 2010 at 02:11:04PM -0600, Stan Hoeppner wrote:
>>> The 11MB/s was a different test, which I clearly stated.
>>> It consisted of two concurrent single stream file copies
>>> _from_ the Samba server _to_ a Win2K workstation using
>>> standard Windows Explorer as the file copy program. This
>>> test saturated one leg of the 100FDX ethernet connection
>>> at ~11.5MB/s.
>> Just a quick hint: Single stream performance really heavily
>> depends on the concrete client behaviour. smbclient from 3.2
>> and higher should give you good performance. And watch out
>> which program on the Windows client you use to do the copy.
>> xcopy, robocopy and the Windows explorer on some OS version
>> give dramatically different results. The difference comes
>> from overlapping requests or their absence.
> Except that he said "I can copy files between the Win2K and WinXP
> machines at just over 10MB/s in a single stream and max out the 11MB/s
> with two streams." I am assuming he used the same client in that test
> as he did with the test against Samba. So from what he's said it
> seems that he gets more speed with a Windows server than with Samba
> for the same client.
This is correct. Except, just to be clear, the two Windows machines are both
_client_ versions of MS Windows, not Windows Server. I eliminated my only
remaining Windows server box a short wile ago, replacing it with the Samba
server on much newer faster hardware. So, the environment consists of two
Windows workstations and one Linux/Samba server (although it serves much more
than just Samba).
Almost all of my testing has been performed at the console of the Windows 2000
Professional workstation. The two remote test systems are Samba 3.2.5 on Debian
Lenny and a Windows XP Home machine. I'm sure when you said Windows "server"
you meant server in the SMB client/server relationship sense, but just in case I
thought I'd clarify exactly what systems are involved to prevent possible
confusion. So, ironically, these two Windows clients serve single stream SMB to
one another faster than either of them to/from Samba.
I'm glad more people are getting involved in this thread because it's making me
look at things I previously had not (though should have). I just checked and
found that the two Windows clients are talking to each other over TCP 445 which
is SMB over TCP/IP without NETBIOS. Until just a few minutes ago, my Windows
2000 Pro machine had NETBIOS over TCP/IP enabled, and was only talking to the
Samba server over TCP 139. Thinking this might make a slight difference, and to
make my testing as close to apples-apples as I can, I disabled NETBIOS over
TCP/IP, and now the Win2K workstation is connecting to Samba over only TCP 445.
However, I ran the file transfer tests again, and there was no change in single
stream performance--still 8MB/s up and down.
I hope that whatever the cause of this 3MB/s performance loss is that the
solution is user configurable, in the Windows registry or in smb.conf. I've
been trying to wean myself off Windows for years but so far only for server
duties. I can't stand the thought that two Windows workstations will be faster
xferring files between each other than to my sleek Debian Samba file server.
I've spent hundreds of hours tweaking the performance of my Debian server, and
it's fast as greased lightning for most everything except single stream Samba
performance. I really want to remedy this situation. ;)
More information about the samba