Re: [PATCH 0/8][RFC] IO latency/throughput fixes

From: Linus Torvalds
Date: Mon Apr 06 2009 - 16:13:47 EST




On Mon, 6 Apr 2009, Linus Torvalds wrote:
>
> Yes. I want to go back and see how much this all helps for the
> data=ordered case (if at all), but I think we should at least consider
> trying 'data=writeback' as a default.

Hmm.

So I'm back to "data=ordered", and quite frankly, so far it's a horrible
experience.

The difference is rather startlingly huge, which it was _not_ before.

Sure, data=writeback was better before too, but in the end, the difference
between the occasional 5+ second pause and the occasional 10+ second pause
wasn't really all that interesting. They were both unusuable, and both
made me kill the background writer almost immediately.

This time I really forced myself to keep it around, just to get the whole
horridness of the experience.

Here's wahat I just got from data=writeback and all the latest patches
(which includes one extra experimental one from Jens to further improve on
things):

fsync(6) = 0 <0.839397>
fsync(6) = 0 <0.879706>
fsync(6) = 0 <0.240856>
fsync(6) = 0 <0.006497>
fsync(6) = 0 <0.207197>
fsync(4) = 0 <0.318396>
fsync(4) = 0 <0.044499>
fsync(4) = 0 <0.088381>
fsync(6) = 0 <0.001057>
fsync(9) = 0 <0.245389>
fsync(7) = 0 <0.042728>
fsync(7) = 0 <1.148262>
fsync(6) = 0 <0.200707>
fsync(6) = 0 <0.045259>
fsync(6) = 0 <0.111846>

that's all quite usable. Stuttering, yes, but never anything feeling rally
bad, or like something died.

This is with data=ordered on the same kernel:

fsync(5) = 0 <0.000949>
fsync(8) = 0 <19.674681>
fsync(8) = 0 <1.169357>
fsync(8) = 0 <17.994631>
fsync(8) = 0 <5.711143>
fsync(8) = 0 <4.759515>
fsync(4) = 0 <17.283171>
fsync(4) = 0 <4.371930>
fsync(4) = 0 <0.008327>
fsync(8) = 0 <0.000636>
fsync(11) = 0 <9.802027>
fsync(9) = 0 <14.109262>
fsync(9) = 0 <4.081919>
fsync(8) = 0 <0.000490>
fsync(8) = 0 <0.001588>
fsync(11) = 0 <18.822826>
fsync(9) = 0 <3.917717>
fsync(9) = 0 <0.001035>
fsync(8) = 0 <0.000138>
fsync(9) = 0 <17.466156>

where basically each 'sync' on the big file triggers that 15-20s total
failure. I do wonder if it's actually gotten _worse_ for the data=ordered
case, but at the same time it does make a pretty compelling argument for
switching the defaults around.

Linus
--
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/