SMB2 performance is worse than SMB1 while iometer 512byte transfer

Jones jones.kstw at
Thu Sep 12 15:37:47 CEST 2013

Hi Volker,

Thanks for kindly feedback soon!

> Yep, that's good.

Thanks for the review. I would like to keep it.

> That's not necessarily a good idea. We pretty much depend on
> this to work.

Thanks for the review.
But I still do not get it why the allocate/free APIs would be put inside
the loop,
it seems that every loop is involved memory allocation/reclaim,
should this behavior be considered as overhead? Or this is just my paranoid.

> You got it pretty much right. SMB2 is much more
> asynchronous. I would like to ask you to work with 4.0 or
> even better with Samba master. 3.6 is pretty much dead with
> regards to performance improvements. I have a Raspberry Pi
> on my desktop now, I just need to take the time to tune SMB2
> read/write for this platform. I think that will show the
> bottlenecks in user space pretty spectacularly.

I would like to test with latest samba version,
for example samba-4.0.9, samba-4.1.0rc3, and git from samba-master.
Raspberry Pi sounds COOL!
I've found it on internet shop and plan to order one.

> 3.6 and 4.0 differ in SMB2 packet handling, so this might
> have some influence.

Nice to know that, I would check again.

> Are you in the position to consider a move to Samba 4.1
> (about to be released soon), or do you have to tune 3.6?

Im not sure I could wait for Samba 4.1 (plan to be released on Sep/27),
but I would like to test Samba-4.1.0rc3 to see if anything improved.
Hence, I have to tune 3.6 at this moment.

> BTW, I am actively working on SMB2 leases at this very
> moment. This will lift the need for small-block transfers
> significantly. Unfortunately, in the initial run this will
> be a 4.2 only thing, 4.1 is already closed for that kind of
> significant architecture change. But it will be interesting
> for you.

Great work! Very interesting!

Per my understanding,
microsoft claim that lease is supported since SMB 2.1 or later,
and samba-3.6 max protocol is SMB2.0.
If I really want to tune the performance for small-block transfers,
work with samba-3.6 is a good choice?

And another thought grows up in my mind these days,
is SMB2 in samba not  designed for or suitable for small-block transfers,
so Im too hair-splitting to tune the SMB2 for small-block transfers?

Anyway, I would like to feedback the test result ASAP,
and found this document I would like to read

any suggestion is appreciated,

My test environment:
CPU: Intel(R) Celeron(R) CPU G540 @ 2.50GHz


More information about the samba-technical mailing list