我正在编写一个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利用率 - 在下面的例子中,我有两个选项 - 保持在50%以上并保持在50%以下 - 经过一些反复试验后,我确定了给定的usleep值
endwait = clock() + ( seconds * CLOCKS_PER_SEC );
while( clock() < endwait ) {}
if (cpu_utilization > 50)
usleep(250000);
else
usleep(700000);
希望这有帮助!
答案 0 :(得分:2)
cpuburn会使CPU利用率如此之高,以至于将温度提升到最高水平。 似乎没有关于它的官方网站,但您仍然可以使用Debian package或googlecode访问源代码。 它是在asm中实现的,所以你必须制作一些粘合剂才能在C中与它进行交互。
答案 1 :(得分:2)
在我看来,这种东西应该具有恒定的CPU利用率: md5sum&lt; / dev / urandom