Status and demo of SMB3 Multi-Channel in Samba

Jeremy Allison jra at
Wed Oct 29 19:26:10 MDT 2014

On Wed, Oct 29, 2014 at 06:20:12PM -0700, Linda A. Walsh wrote:
> Michael Adam wrote:
> >Hi,
> >
> >we are working on implementing SMB3 Multi-Channel in Samba.
> >The wiki page
> >contains details about our plans for the various items
> >of SMB3, and multi-channel in particular. I have
> >created a screencast of a demo.  It can be downloaded here:
> >
> ---
> Right now, it appears all of the multi-channel data connections are handled
> by 1 smb process.  Note, I try to use b=bits, B=bytes,
> [m,g]=1000-based & [M,G]=1024 based units.
> Initially, I tried using 2-bonded 10gb[s connections for xfer.  Note:
> 10gbps only has 80% efficiency, so max theoretical rate would
> be would be 16gbps or 2000mBps; the 20% perf hit doesn't apply
> to most 1Gb adapters.
> For a remote target, I used "nul" and "zero" in a remote
> directory that were connected to the actual /dev/nul and /dev/zero
> devices on the target system (via "dd").  The local client was
> running 'dd' using "cygwin's" version's of each -- so on both
> sides was focusing on "smb-throughput" separate from
> any fs-io.
> I couldn't reliably get >500  (1/4th capacity), so dropped to using
> 1 connection.  Still get 300-600mBps with the limiting factor
> depending on the dd 'block size' the CPU on either the client
> OR the server.  I.e. larger BS, put more load on the remote server,
> and smaller BS, put more cpu load on the local client.
> Because of SMB's 1 connection/user, in both cases, the sending and
> receiving processes only used 1 core (out of 6 on client and 12 on
> server).

Did you set the "aio read size" or "aio write size" parameters
in your smb.conf ?

That allows smbd to use a thread per outstanding read or write
request which should use multiple cores, depending on how hard
the client is driving the server.


More information about the samba-technical mailing list