提高CPU利用率并使用C代码将其保持在一定水平

时间:2012-02-08 20:59:08

标签: c linux cpu utilization

我正在编写一个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);

希望这有帮助!

2 个答案:

答案 0 :(得分:2)

众所周知,

cpuburn会使CPU利用率如此之高,以至于将温度提升到最高水平。 似乎没有关于它的官方网站,但您仍然可以使用Debian packagegooglecode访问源代码。 它是在asm中实现的,所以你必须制作一些粘合剂才能在C中与它进行交互。

答案 1 :(得分:2)

在我看来,这种东西应该具有恒定的CPU利用率: md5sum&lt; / dev / urandom