ionice without effect
System is Ubuntu 10 LTS 64bit (2.6.35.31), I'm running on xen 4.0, no services active, cron stopped, scheduler is cfq for the disk /usr is mounted from:
time find /usr -exec stat {} \; > /dev/null 2>&1
&
giving
real 0m35.760s
user 0m0.270s
sys 0m3.910s
and
time ionice -c3 find /usr -exec stat {} \; > /dev/null 2>&1
&
giving
real 0m36.110s
user 0m0.310s
sys 0m4.100s
which is exactly as expected, now I run both at the same time:
time find /usr -exec stat {} \; > /dev/null 2>&1
&
time ionice -c3 find /usr -exec stat {} \; > /dev/null 2>&1
&
where to my believe the ioniced version should be much slower while the straight version should be as fast as if running alone. but:
straight:
real 1m10.430s
user 0m0.320s
sys 0m3.940s
ioniced:
real 1m10.230s
user 0m0.250s
sys 0m4.020s
which implies that ionice did not work at all. Any hints?
This almost certainly isn't working because you're not using the CFQ kernel scheduler.
Look at /sys/block/xvdh/queue/scheduler
to see which you are using. The one in [] brackets is the active one.
It seems to be deadline
on most systems now, for which ionice doesn't work. (This all as far as I can tell, it's terribly badly documented).
Since both processes are asking for the same files, whichever one gets there second will get them from the filesystem cache. Since it isn't actually moving spindles, it isn't affected by ionice
.