以非常低的优先级运行linux进程?

ura*_*ray 18 cpu process priority nice htop

我有一个不那么重要的常规进程,但会消耗这么多的 CPU 能力,我还有一个非常重要的进程,但它大部分时间都处于空闲状态,但是当它找到工作时,它确实需要很高的计算能力

我试图与运行nice -20 ./low_priority_processnice --20 ./high_priority_process,但仍然较低优先级占用CPU的显著量时高优先级的进程是需要的人,我怎么可以运行一个过程,真的会产生或使用时CPU供电另一个进程甚至自动挂起

pet*_*rph 15

看看cgroups,它应该提供您所需要的 - CPU 预留(以及更多)。我建议阅读使用 cgroups 控制应用程序的优先级

也就是说,将重要但经常空闲的进程与分配 95% 的 CPU 和您的其他应用程序放入另一个分配了 5% 的组 ​​- 您将在需要时获得(几乎)所有工作能力,同时不断在那些时候,耗电过程最多只能获得 5%。当计算激增消失时,所有 CPU 性能都将被抛到剩余的进程上。一个好处是,如果您为 之类的进程创建一个特殊的 cgroup(具有最低的性能要求)sshd,那么无论尝试获取所有 CPU 的尝试是什么,您都可以登录 - 一些 CPU 时间将为sshd.


Ken*_*arp 8

如果进程优先级(nice 值)低,那么它不会中断更高优先级的进程。您看到低优先级进程在高优先级进程运行时仍然消耗大量 CPU 的原因是因为高优先级进程并不那么忙。可能在等待IO。用于chrt -p -i 0 $PID以比nice 19 -p $PID(假设我们在这里谈论的是 Linux)更低的优先级运行进程。

chrt -p -i 0 $PID 将进程放入“真正的”空闲调度程序中。

http://linux.die.net/man/1/chrt

  • chrt -p -i 0 $PID (2认同)
  • 你的硬盘忙吗?参见“ionice”。 (2认同)