Re: Low file-system performance for 2.6.11 compared to 2.4.26

From: Lincoln Dale
Date: Thu Mar 31 2005 - 19:06:48 EST


At 02:34 AM 1/04/2005, linux-os wrote:
For those interested, some file-system tests and a test-tools
are attached.

in high-performance-I/O-testing i perform regularly, i notice no slowdown in 2.6 compared to 2.4.

looking at your test-tools, i would hardly call your workload anywhere near 'realistic' in terms of its I/O patterns.

a few suggestions / constructive comments:

(1) 100 processes each performing i/o in the pattern of write 8MB, fsync(), wait, read 8MB, wait, delete probably isn't realistic
(2) you don't mention whether you're performing testing on ext2 or ext3
(3) you also don't mention what i/o scheduled is being used
(4) your benchmark doesn't measure 'fairness' between processes
(5) your benchmark sleeps for a random amount of time at various parts

it is well known that in 2.4 kernels, processes can 'hog' the i/o channel - which may result in higher overall throughput but at the detriment of being 'fair' to the rest of the system. you should address point (4) above.

can you modify your program to present the time-taken-per-process?
if i'm a betting man, i'd say that 2.6 will be a lot more 'fair' compared to 2.4.

default settings for 2.6 likely also means that there is a lot less data outstanding in the buffer-cache.
2.6's fsync() behavior is also quite different to that of 2.4.
also note that if you're using a journalled filesystem, fsync() likely does different things ...

you don't seed rand, so the random numbers out of rand() aren't actually random.
it probably doesn't matter so much since we're only talking microseconds here (up to 0.511 msec) - but given 2.4 kernels will have HZ of 100 and 2.6 will have HZ of 1000, you're clearly going to get a different end result - perhaps with 2.6 resulting in a busy-wait from usleep().


cheers,

lincoln.
-
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/