有没有办法让程序不占用超过50%的CPU?

有没有办法让程序不占用超过50%的CPU?

目前我有一个程序占用了太多的 CPU。

我怎样才能限制它占用的 CPU 数量?

操作系统是Linux,Fedora

我无法修改该程序的源代码。

我需要的是猛击命令。

答案1

您可以尝试使用 nice 降低优先级来限制您的程序。这无需编程。

答案2

以“50%”的 CPU 运行并没有多大意义。您希望程序在可用时尽可能地使用所有资源。如果 CPU 没有执行任何其他操作,该程序不妨充分利用它。如果您希望程序实际上什么都不做,您必须修改源代码并在可能的情况下设置暂停/睡眠。

你想要的是让其他所有东西都具有更高的优先级。请参阅 nice 命令的手册页,以 nice 19 运行它

限制资源的另一种可能更有效的方法是安装 schedutils 包,并使用 SCHED_BATCH 进程调度程序运行该程序。

答案3

设置极限和公司...

#include <sys/resource.h>
#include <sys/time.h>
#include <unistd.h>

int main ()
{
 struct rlimit rl;

 /* Obtain the current limits. */
 getrlimit (RLIMIT_CPU, &rl);
 /* Set a CPU limit of 1 second. */
 rl.rlim_cur = 1;
 setrlimit (RLIMIT_CPU, &rl);
 /* Do busy work. */
 while (1);

 return 0;
}

从这里

答案4

如果您不想修改程序,可以考虑的另一个选择是虚拟化。

相关内容