Re: fio posixaio performance problem

From: Vivek Goyal
Date: Thu Aug 04 2011 - 10:12:25 EST


On Thu, Aug 04, 2011 at 03:44:55PM +0800, Gui Jianfeng wrote:

[..]
> > oh, not related per your blktrace. so we have two problems here:
> > 1. fio doesn't dispatch request in 8ms.
> > 2. no close request preempt.
>
> Yes, these're actual factors why performance is so bad.
>
> > both looks quite wield. can you post a longer blktrace output, like
> > for one second? the piece is too short.
>
> Attached.

Gui, few observations from you log file.

- preemption happened 1631 times and did not happen 527 times and idle
timer fired.

- In some cases where preemption did not happen, next request seems to
be too far away (more than CFQQ_CLOSE_THR=8K sectors).

- I noticed couple of cases where next request was with-in 8K distanace
still preemption did not happen. This makes me curious. Can you please
put some trace messages in should_preempt() and rq_close() call and see
what's going on?

For example, following trace shows that next request is 5176 sector behind
the previous one completed. I am wondering why did preemption not take
place.

8,0 0 606 2.751892651 16420 D W 512146800 + 8 [fio]
8,0 2 579 2.752127950 0 C W 512146800 + 8 [0]

8,0 0 609 2.752235995 16421 Q WS 512141624 + 8 [fio]
8,0 0 610 2.752238859 16421 G WS 512141624 + 8 [fio]
8,0 0 612 2.752243818 16421 I W 512141624 + 8 [fio]
8,0 0 0 2.752246262 0 m N cfq16421S / insert_request
8,0 0 0 2.752247729 0 m N cfq16421S / add_to_rr
8,0 2 0 2.759710295 0 m N cfq idle timer fired

Putting some extra trace messages in CFQ might help here. BTW, which
kernel version are you using? 3.0?

Thanks
Vivek
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/