我正在 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”用于文档。