[Samba] single stream performance issue, Win2K, WinXP, Samba 3.2.5-4lenny7 (Debian Lenny)
stan at hardwarefreak.com
Thu Jan 21 19:58:05 MST 2010
Igor put forth on 1/21/2010 6:04 PM:
> Hello Stan,
> I don't find it strange at all. Your computer is acting as a traffic
> proxy between two samba servers. If you have 100Mb network interface
> your bandwidth should split exactly in two.
Which should be 5.5MB/s instead of 4MB/s for each stream. I included this
example for comparison, as an additional data point. It is not the thrust of my
post, merely supporting data, as this should in theory be _two_ streams.
> FTP is a different protocol. You might find the answer if you look at
> the percentage the carrying protocol like SAMBA consumes out of the
> traffic to support protocol integrity. You may find out that the rest 2Mb
> (you should actually have no more than 10Mb/s at 100Mb interface) are
> used by the carrying protocol itself. That somehow "though the protocol
> itself allows" but "for the sake of connectivity" the maximum size of
> the packet is set to 64К. Which is not surprising as far as Microsoft goes.
I don't think you read my post thoroughly, or possibly I didn't state my case
thoroughly or eloquently. _Two_ concurrent Windows file copy streams to/from
the Samba share peak iftop at 92Mb/s. A single FTP get/put to the same share
filesystem peaks iftop at 92Mb/s. A _single_ Windows file copy peaks iftop at
65Mb/s. I've performed these tests over 10 times with the same results.
Why will _one_ Windows file copy stream to/from the Samba share not peak the
interface? Why do _two_ concurrent streams peak the interface but not _one_?
> I'm sure people around here might provide you with some data
> about SAMBA efficiency, but just remembering what a big difference
> 1000Mb Ethernet produces over 100Mb as far as SAMBA is concerned -
> well my best guess it's not more that 80% of all traffic. 20% goes
> for protocol support.
Protocol efficiency doesn't even come into play here AFAICT. A single stream
should easily max a 100Mbit pipe. I'm only able to max the pipe using two or
more concurrent streams from the same host. One stream won't do it. I don't
know if the problem is with Windows or with Samba, but I'd sure like to find out
and fix it. My testing has eliminated both operating systems, their storage,
and the raw network performance as degrading factors. The only thing left if
the SMB/CFS engines on both systems, which seem to have no trouble at all
clogging the pipe with multiple streams, but run along lazily at 65% of peak
when only one stream is present.
More information about the samba