如何在 Linux 服务器上生成 CPU 负载

如何在 Linux 服务器上生成 CPU 负载

我想在服务器上测试虚假负载,我正在寻找一些可以在系统上产生 CPU 负载的老化或基准命令行实用程序。

我希望能够只烧录 CPU(无硬盘负载、网络等),并且能够设置负载运行的时间段。这意味着我想要能够运行的东西:系统上的 CPU 负载持续 10 分钟。

有任何想法吗?

答案1

您可以下载并安装“压力”实用程序...它允许您从命令行生成 CPU、内存、磁盘和 IO 负载。

主页: http://people.seas.harvard.edu/~apw/stress/

常问问题: http://people.seas.harvard.edu/~apw/stress/FAQ

答案2

我更喜欢浮点运算:

for i in `seq 64`; do perl -e '$z=time()+(10*60); while (time()<$z) { $j++; $sqrt = sqrt($j) for (1..9999); }' & done

注意你的 CPU 数量 :-)

答案3

这是我经常想做的事情。但我没有好的办法。我只能写一个小的 Perl 脚本,它会循环任意秒数。

例如(10分钟):

perl -e '$z=time()+(10*60); while (time()<$z) { $j++; $j *= 1.1 for (1..9999); }'

当然如果你有n处理器你可能需要添加一个 bash 循环来创建那么多进程:

#!/bin/bash
# e.g. for 4 processors
for i in 1 2 3 4; do
    perl -e .... &
done
wait

答案4

我建议使用stress-ng,它比stress具有更多的功能,并且可以锻炼更多的操作系统。

http://kernel.ubuntu.com/~cking/stress-ng/

相关内容