为多线程应用程序设置 ionice

为多线程应用程序设置 ionice

我有一个程序可以生成多个线程,所有线程都执行相当密集的 IO,在后台运行。我想将调度类设置为idle这样,这样它就不会阻塞系统;然而,ionice -c3 -p <PID>,其中<PID>是进程 ID,并没有达到预期的效果。尽管进程的调度类<PID>已更改,但当我启动 时iotop,它生成的所有线程仍然具有默认优先级(尽力而为级别 4)。

如何更改程序及其在 Linux 上生成的所有线程或进程的 IO 优先级?

答案1

ionice可以将进程组 ID 作为参数(-P开关),这显然会影响给定进程组中的所有进程(和线程)。一旦可以通过查看/proc/<PID>/stat(或使用)的第5个字段找到进程组ID ps。这个设置比我真正想要的要粗糙一些,但效果很好。

相关内容