AIO on Samba 3.6 doesn't result in parallel IO being issued to the underlying file system

Kevin Osborn kosborn at
Fri Feb 6 09:11:39 MST 2015

We are using Samba 3.6.24 on top of a custom VFS file system and we are trying to improve read and write throughput. We compiled Samba with aio enabled and I have verified from the debug output that aio calls are being made. I have also verified from a network trace that the client is sending parallel IO requests to Samba. But I still see the IO requests being serialized as they come into our VFS layer. I never see simultaneous IO requests pending come into the VFS layer.

While researching this problem I saw a presentation on line by Jeremy: "JeremyAllison_The_Evolution_of_Samba-ion.pdf" and it had  a rather depressing comment: "glibc forces multiple outstanding I/O requests on the same file descriptor to be synchronous." Perhaps this is just denial on my part, but it was a little hard to discern which version of Samba corresponded with each stage of the evolution in the presentation. The presentation didn't mention the version of glibc at fault.

So my question is this: Is it possible for us to get AIO requests on Samba 3.6.24? I am hoping that I have overlooked a setting somewhere. If there is no immediate solution for Samba 3.6, will upgrading to Samba 4.0 or 4.1 resolve the issue? (We plan to upgrade eventually but it is a bigger task than our schedule can bear at the moment.)

Our system specifics are:
SLES 11 sp1
Glibc 2.11.1
Samba 3.6.24, max protocol is set to SMB2

Thanks as always for your help,

Kevin Osborn

More information about the samba-technical mailing list