Re: A quick fio test (was Re: [patch 00/13] Syslets, "Threadlets", generic AIO support, v3)

Jens Axboe
2007-02-28T09:09:22Z

On Wed, Feb 28 2007, Ingo Molnar wrote:
>
> * Jens Axboe <jens.axboe@oracle.com> wrote:
>
> > Engine Depth Batch Bw (KiB/sec)
> > libaio 20000 8 21,125
> > syslet 20000 8 19,610
>
> i'd like to do something more about this to be more in line with libaio
> - if nothing else then for the bragging rights ;-) It seems to me that a
> drop of ~7% in throughput cannot be explained with any CPU overhead, it
> must be some sort of queueing + IO scheduling effect - right?

syslet shows a slightly higher overhead, but nothing that will account
for any bandwidth change in this test. The box is obviously mostly idle
when running this test, it's not very CPU consuming. The IO pattern
issued is not the same, since libaio would commit IO [0..7], then
[8..15] and so on, where syslet would expose [0,8,16,24,32,40,48,56] and
then [1,9,17,25,33,41,49,57] etc. If iodepth_batch is set to 1 you'd
get a closer match wrt io pattern, but at a higher cost (increased
system calls, and 8 times as many pending async threads). That gets it
to 20,253KiB/s here with ~1000 as many context switches.

So in short, it's harder to compare with real storage, as access
patterns don't translate very easily

--
Jens Axboe