Is there an easy way to change the I/O priority of a whole group of processes the way renice -g
does? It seems like only changing the I/O priority of a single process is supported by ionice
. If this can't be done, can someone please point me to the the relevant API calls (I'm not at all familiar with the POSIX api) so that I can write a quick command line utility to implement this functionality myself?
Asked
Active
Viewed 1,133 times
2

dsimcha
- 681
- 1
- 7
- 12
2 Answers
3
You can make a script called gionice, like that:
#!/bin/sh
ps -s $1 -o pid | xargs ionice -c 2 -n 0 -p
Then, you can call it like that, for process group id 3266, for example:
./gionice 3266
"ps -s PID -o pid" prints line-by-line identifiers of processes whose group leader is PID. Then, for every line, xargs appends that line after "ionice -c 2 -n 0 -p " and calls the resulting command.
Hope that helps.

Michael Lazarev
- 31
- 1
1
Have you looked at cgroups and the blkio module?
http://www.kernel.org/doc/Documentation/cgroups/cgroups.txt
You can use it to limit IO with a lot more control then ionice alone. You can also use the cgrulesengd daemon to automatically add new processes to your existing group infrastructure.

n8whnp
- 1,326
- 7
- 9