我有一个程序可以生成多个线程,所有线程都执行相当密集的 IO,在后台运行。我想将调度类设置为idle
这样,这样它就不会阻塞系统;然而,ionice -c3 -p <PID>
,其中<PID>
是进程 ID,并没有达到预期的效果。尽管进程的调度类<PID>
已更改,但当我启动 时iotop
,它生成的所有线程仍然具有默认优先级(尽力而为级别 4)。
如何更改程序及其在 Linux 上生成的所有线程或进程的 IO 优先级?
答案1
ionice
可以将进程组 ID 作为参数(-P
开关),这显然会影响给定进程组中的所有进程(和线程)。一旦可以通过查看/proc/<PID>/stat
(或使用)的第5个字段找到进程组ID ps
。这个设置比我真正想要的要粗糙一些,但效果很好。