native libaio

Volker Lendecke Volker.Lendecke at SerNet.DE
Sun Jun 13 15:41:49 MDT 2010


On Sun, Jun 13, 2010 at 05:37:24PM +0200, Volker Lendecke wrote:
> In my wip branch on gitweb.samba.org I've got code to call
> libaio (using native linux aio) for read&x. I've got some
> numbers for reading 1GB (out of cache) with smbclient on TCP
> loopback on a 4-core system. User/sys times are smbd -d 0 -i
> times.
> 
> sync I/O:
> user    0m0.072s
> sys     0m0.716s
> 817284,4 MByte/s
> 
> libaio async I/O:
> user    0m0.124s
> sys     0m0.796s
> 742617,5 MByte/s
> 
> posix AIO:
> user    0m0.300s
> sys     0m1.600s
> 461724,3 MByte/s
> 
> This means the native linux aio is in fact a hell lot faster
> than the glibc implementation :-)

Crap. Bjoern just pointed out that all this might be a pure
fallacy. In http://axboe.livejournal.com/1718.html you can
read that libaio is only asynch if we use DIRECTIO. That
sucks. Severely. I've done some benchmarking with the pure
clone-based implementation in libaio, and to me it seems
that the context switches between the main and the worker
threads really kill the performance. Well, what can you do.

Volker


More information about the samba-technical mailing list