Re: cfq performance gap

From: Avantika Mathur
Date: Fri Dec 08 2006 - 17:11:51 EST


On Fri, 2006-12-08 at 13:05 +0100, Jens Axboe wrote:
> On Thu, Dec 07 2006, Avantika Mathur wrote:
> > Hi Jens,
>
> (you probably noticed now, but the axboe@xxxxxxx email is no longer
> valid)

I saw that, thanks!
> > I've noticed a performance gap between the cfq scheduler and other io
> > schedulers when running the rawio benchmark.
> > Results from rawio on 2.6.19, cfq and noop schedulers:
> >
> > CFQ:
> >
> > procs device num read KB/sec I/O Ops/sec
> > ----- --------------- ---------- ------- --------------
> > 16 /dev/sda 16412 8338 2084
> > ----- --------------- ---------- ------- --------------
> > 16 16412 8338 2084
> >
> > Total run time 0.492072 seconds
> >
> >
> > NOOP:
> >
> > procs device num read KB/sec I/O Ops/sec
> > ----- --------------- ---------- ------- --------------
> > 16 /dev/sda 16399 29224 7306
> > ----- --------------- ---------- ------- --------------
> > 16 16399 29224 7306
> >
> > Total run time 0.140284 seconds
> >
> > The benchmark workload is 16 processes running 4k random reads.
> >
> > Is this performance gap a known issue?
>
> CFQ could be a little slower at this benchmark, but your results are
> much worse than I would expect. What is the queueing depth of sda? How
> are you invoking rawio?

I am running rawio with the following options:
rawread -p 16 -m 1 -d 1 -x -z -t 0 -s 4096

The queue depth on sda is 4.

>
> Your runtime is very low, how does it look if you allow the test to run
> for much longer? 30MiB/sec random read bandwidth seems very high, I'm
> wondering what exactly is being tested here.
>

rawio is actually performing sequential reads, but I don't believe it is
purely sequential with the multiple processes.
I am currently running the test with longer runtimes and will post
results once it is complete.
I've also attached the rawio source.

Thanks,
Avantika

Attachment: rawio-2.4.2.tar.gz
Description: application/compressed-tar