我想在Linux机器上创建一个接近100%的负载。这是四核系统,我要所有核都全速运转。理想情况下,CPU负载将持续一段指定的时间,然后停止。我希望bash里有什么妙招。我在想某种无限循环。
当前回答
加载3个核5秒:
seq 3 | xargs -P0 -n1 timeout 5 yes > /dev/null
这将导致许多write()系统调用带来的高内核(sys)负载。
如果你更喜欢用户区cpu负载:
seq 3 | xargs -P0 -n1 timeout 5 md5sum /dev/zero
如果你只是想继续加载,直到按下Ctrl-C:
seq 3 | xargs -P0 -n1 md5sum /dev/zero
其他回答
您可以尝试测试加密算法的性能。
openssl speed -multi 4
我认为这个更简单。打开“终端”,输入以下命令并按“Enter”。
yes > /dev/null &
要充分利用现代CPU,一行命令是不够的,您可能需要重复该命令以耗尽所有CPU功率。
为了结束这一切,简单地说
killall yes
这个想法最初是在这里发现的,尽管它是为Mac用户设计的,但这应该也适用于*nix。
我用压力来做这种事情,你可以告诉它要最大化多少内核。它还允许对内存和磁盘施加压力。
例如,对2个核心施加压力60秒
压力——cpu 2——超时60
一个核心(不调用外部进程):
while true; do true; done
两个核心:
while true; do /bin/true; done
后者只会让我的两个都达到50%…
这将使两者都达到100%:
while true; do echo; done
我用过bc(二进制计算器),用一大堆小数求圆周率。
$ for ((i=0;i<$NUMCPU;i++));do
echo 'scale=100000;pi=4*a(1);0' | bc -l &
done ;\
sleep 4; \
killall bc
NUMCPU (Linux下):
$ NUMCPU=$(grep $'^processor\t*:' /proc/cpuinfo |wc -l)
这个方法很强大,但似乎对系统友好,因为我从未使用过这个方法导致系统崩溃。