cpulimit,但对于负载?暂停命令直到负载平均值低于某个数字?

cpulimit,但对于负载?暂停命令直到负载平均值低于某个数字?

Linux 上的程序cpulimit很棒。您可以告诉它限制某个进程,使其使用的 CPU 不超过 X%。例如,我知道有人的笔记本电脑如果 CPU 长时间运行过热就会过热。在进行某些视频编码时,他们使用 cpulimit 来防止 CPU 被完全使用,从而防止过热。您不能用它nice来阻止这种情况。

有没有类似的东西加载

理想情况下,我希望能够做到loadlimit 4 my-command-here这一点,它会启动my-command-here并每隔 X 秒loadlimit检查机器的(1 分钟)负载,如果负载超过 4,my-command-here则会暂停。当负载低于 4 时,命令将暂停。这正是cpulimitBTW 所做的。

有这样的工具吗?

答案1

根据您在评论中描述的内容,似乎可以通过 解决您的实际问题ionice

ionice -c 3 -p <pid>

-p <pid>您要重新安排的进程的 pid 在哪里,并将-c 3其放入idle类中,以便只有在没有其他人需要时它才能获得磁盘时间。在繁忙的系统上,这会使相关进程变慢,因此您可以尝试在更高级别中使用不同的优先级值,例如

ionice -c 2 -n 6 -p <pid> 

阅读man ionice更多详细信息。

您提出的问题loadlimit在于,高负载可能由非常不同的事情引起,而减慢一个过程并不一定会影响负载。

相关内容