I looked into ionice && CFQ some time ago. The use of ionice didn't much help with the updatedb-run-and-system-gets-really-slow-to-interact-with problem.
To be really sure, if the 'ionice' command is the problem, I wrote a kprobe-module to check if the ionice value is present in the scheduler after a command is called by 'ionice' - and it was.
Btw, if you start a command via 'nice', then the ionice-value of the called process is changed as well. Thus, calling a process with a very nice nice-value has the same effect as calling it with ionice.
Using 'nice' for an already running command doesn't change the ionice-value in the scheduler.
And btw, CFQ considers only file-reads.
To sum it up: it looks like ionice is doing its job well - but the scheduler/kernel doesn't
Hi,
I looked into ionice && CFQ some time ago. The use of ionice didn't much help with the updatedb- run-and- system- gets-really- slow-to- interact- with problem.
To be really sure, if the 'ionice' command is the problem, I wrote a kprobe-module to check if the ionice value is present in the scheduler after a command is called by 'ionice' - and it was.
Btw, if you start a command via 'nice', then the ionice-value of the called process is changed as well. Thus, calling a process with a very nice nice-value has the same effect as calling it with ionice.
Using 'nice' for an already running command doesn't change the ionice-value in the scheduler.
And btw, CFQ considers only file-reads.
To sum it up: it looks like ionice is doing its job well - but the scheduler/kernel doesn't
Best regards
Georg