有没有一种简单的方法来改变整个进程的I / O优先级 – renice -g的方式? 看来只有改变一个进程的I / O优先级是由ionice支持的。 如果这不能完成,有人可以请我指向相关的API调用(我不熟悉POSIX API),以便我可以编写一个快速的命令行工具来实现这个function?
你可以创build一个名为gionice的脚本,就像这样:
#!/bin/sh ps -s $1 -o pid | xargs ionice -c 2 -n 0 -p
然后,可以像这样调用它,例如:进程组ID为3266。
./gionice 3266
“ps -s PID -o pid”打印组长为PID的进程的逐行标识符。 然后,对于每行,xargs在“ionice -c 2 -n 0 -p”之后附加该行并调用结果命令。
希望有所帮助。
你看过cgroups和blkio模块吗?
http://www.kernel.org/doc/Documentation/cgroups/cgroups.txt
你可以使用它来限制IO,只有ionice可以控制很多。 您还可以使用cgrulesengd守护进程自动将新进程添加到现有的组基础结构。