[Samba] Samba SMB throughput

Stan Hoeppner stan at hardwarefreak.com
Mon Mar 29 19:59:06 MDT 2010

Mahmud Siddiqi put forth on 3/29/2010 5:40 PM:
> Hello everyone,
> Quoting from Samba Team Blog #2 (25 Sept 2009):
> "Volker showed how to get more than 700MB/sec from Samba using
> smbclient and a modern Samba server, which shows what you can
> really do when you understand the protocol thoroughly and don't feel
> you have to invent a new one (SMB2 :-)."
> Would it be possible to get a complete accounting of how this was achieved?

First off, that's a misprint, unless this test was done with 10GbE ethernet,
which I highly doubt.  The test was likely done with 1 GbE.  Thus it should
read 700 Mb/s in that quote.  Big B is Bytes, small b is bits.

Streaming 700 Mb/s, or 700/8 = 87.5 MB/s, with decent GbE cards with TCP
offload, such as the Intel GbE NICs, a decent managed GbE switch, along with
enough RAM and a relatively fast disk, low end striped array, or SSD, should
be fairly easily achievable by most anyone.  It may or may not require jumbo
frames.  I've not tried this myself.  If it does require jumbo frames, then
the setup wouldn't be all that useful to most people as there is no IEEE
802.x standard for jumbo frames, and networking gear that fully supports
jumbo frames tends to be relatively expensive.

The tweaks in smbd and smbclient to make best use of the available network
bandwidth are relatively trivial.  What really counts in this scenario is
having decent quality GbE hardware, quality cabling, and enough horsepower
in the host on each end to push and digest the TCP stream.  Modern Linux
kernels auto tune the TCP stack so there's little to do there as well.  Once
you've got the decent hardware, tuning out the minor software bottlenecks is
relatively straightforward.  Achieving these results in a mixed Linux,
Windows, *BSD, Mac OS network is probably much trickier.  Linux-Linux should
be relatively easy.


More information about the samba mailing list