Messages in this thread | | | Date | Wed, 30 Mar 2011 02:16:24 +0000 | Subject | Re: ioprio_set: IDLE_CLASS doesn't work as its name suggests | From | "" <> |
| |
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@gmail.com <fykcee1@gmail.com> > > 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@2.7GHz), 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
| |