Re: ioprio_set: IDLE_CLASS doesn't work as its name suggests

From: fykcee1@xxxxxxxxx
Date: Tue Mar 29 2011 - 22:16:30 EST


I/O activity of IOPRIO_CLASS_IDLE processes can reduce other's I/O
performance by nearly half, according to
http://dev.lemote.com/files/upload/people/~chenj/effect_of_IO_IDLE.png.

It seems "IDLE" in "IOPRIO_CLASS_IDLE" is not analogized to "IDLE" in
"SCHED_IDLE", is it the normal behavior?

2011/3/26 fykcee1@xxxxxxxxx <fykcee1@xxxxxxxxx>
>
> Hi all,
>
> I've tried to make a fast boot according to "Booting Linux in five
> seconds"[1]. One method of boot fast is using readahead -- a process
> "replay" read actions in IDLE IO class via readahead syscall. Sadly
> observed negative results -- according to bootchat diagram, readahead
> process actually uses more IO bandwidth that slows down all IO
> operations of other ones.
>
> Then I did some tests -- two I/O hog processes, the IDLE IO class one
> largely degrades I/O performance of the other one.
>
> The tests were performed on a machine with dual-core cpu (intel
> E5400@xxxxxx), G33 and ICH7, 2G mem, running Ubuntu 10.04. The kernel
> version was 2.6.35-25-generic with CFQ as default I/O scheduler.
> We ran test programs which time "find $2 -type f -exec cat {} \;" on
> ~1.9G directory with Normal and IDLE IO class. Before each test, we
> reboot the system. Here are the results:
>
> 1. Only ran one instance of the test program in Normal IO class:
> Job finished in 4m2.365s
>
> 2. Ran two instances of the test program, one Normal IO class, the
> other Idle IO class:
> [Normal]: 7m0.999s
> [Idle]: 7m43.180s
>
> 3. Ran two instances of the test program, both Normal IO class:
> [Normal1]: 8m39.366s
> [Normal2]: 8m39.377s
>
> BTW, for those interested in the detail, try the attachment:
> 1. mkdir ioprio_test
> 2. cp ioprio_test.c run_test.sh ioprio_test
> 3. tar xf <system_image.tar.gz> -C ioprio_test/tdir1
> 4. tar xf <system_image.tar.gz> -C ioprio_test/tdir2
> 5. reboot; cd ioprio_test && ./run_test.sh 1 => result stored in F.txt
> 6. reboot; cd ioprio_test && ./run_test.sh 2 => result stored in
> F[B0].txt B0[F].txt
> 7. reboot; cd ioprio_test && ./run_test.sh 3 => result stored in
> F[B1].txt B1[F].txt
>
>
>
> Regards,
> cee1
> -------
> [1] http://lwn.net/Articles/299483/



--
Regards,
- cee1
--
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/