我正在编写一个 C 代码(在 Linux 上),它在运行时需要消耗一定数量的 CPU。我正在进行一项实验,在达到某个 CPU 阈值时触发某些操作。因此,一旦利用率达到某个阈值,我需要将其保持在该状态 30 秒,直到我完成我的实验。我正在使用 top 命令监控 CPU 利用率。
所以我的问题是 - 1. 如何将 CPU 利用率提高到给定值(如果可能,以确定的方式)?2. 一旦我达到阈值,有没有办法在预定义的时间内将其保持在该水平?
top 命令的示例输出(第 9 列是“top”进程使用的 CPU) - 19304 abcde 16 0 5448 1212 808 R 0.2 0.0 0:00.06 top
与上面类似,我将查看顶部的行,它显示了我的二进制文件的利用率。
任何帮助,将不胜感激。另外,如果您需要更多详细信息,请告诉我。
谢谢!
编辑:以下代码行让我可以很好地控制 CPU 利用率 - 在以下情况下,我有 2 个选项 - 将其保持在 50% 以上并保持在 50% 以下 - 经过一些试验和错误后,我在给定的情况下安定下来睡眠值。
endwait = clock() + ( seconds * CLOCKS_PER_SEC );
while( clock() < endwait ) {}
if (cpu_utilization > 50)
usleep(250000);
else
usleep(700000);
希望这可以帮助!