测试CPU负载和进程优先级的程序

测试CPU负载和进程优先级的程序

我正在 Amazon EC2 实例上运行一些测试,我们希望使 CPU 始终处于 80% 以上的繁忙状态。

我有一个程序main需要以高优先级运行,并且我想启动另一个程序,最好是一些数学 C 代码或 bash 脚本,使 CPU 负载超过 80%。

有哪些程序可以用来完成这样的任务,以及如何使我的程序以最高优先级运行。

PS:运行 Fedora。

答案1

在 shell 中以 100%(减去开销)占用一个 CPU 很容易:

while true; do :; done

如果您想减少负载,请引入睡眠。

i=0; while [ $i -ne 0 ] || sleep 0.001; do i=$(( (i+1) % 10000 )); done

向上或向下调整 10000 以获得所需的负载。

调度优先级由 设定nice。您需要成为 root 才能设置高于默认优先级。请注意,负的友善意味着高优先级(积极的友善意味着友善,即低优先级)。

nice -20 sh -c 'while …'

答案2

使用“nice”你可以控制优先级。对于最高优先级(仅适用于 root):

nice -n -20 yourprogram

对于最低的:

nice -n 19 yourprogram

如果您还需要控制 IO,请使用 ionice。 “man Nice”和“man ionice”用于文档。

相关内容