控制 Linux CPU 负载以进行测试

控制 Linux CPU 负载以进行测试

我希望对一系列 Linux 设备进行一些测试,以了解它们基于当前处理器负载的功耗。

因此,我正在寻找一个可以用来强制 CPU 使用 X% 的程序,即,我可以将处理器负载增加 10%,并在此时进行测量。

我查看过“stress”和“cpuburn”等软件包,但它们似乎只使用了 100%

希望你能帮助

谢谢

答案1

您可以将 CPU 负载生成器与 CPU 负载限制器一起使用。

下面是一个实用程序示例stresscpulimit。这两个实用程序都位于 Debian 和派生发行版(如 Ubuntu)存储库中。

stress -c 1 & cpulimit -p $( pidof -o $! stress ) -l 20

解释

20是要使用的 CPU 时间百分比。stress生成一个子工作程序,因此您无法直接从 控制该工作程序cpulimitpidof用于查找子 PID。此简单示例仅在stress启动单个实例时才可靠地工作。要停止加载,请按Ctrl+c并键入killall stress

或者,为了简化程序,您可以使用不会产生子进程的不同 CPU 压力实用程序。

cpulimitRLIMIT_NICE如果 您 调整限制 或者 按照 运行 ,效果 最佳root.

答案2

压力-ng它允许以简单的方式定义工作量百分比。例如,您可以像这样使用它:

stress-ng --cpu 4 --cpu-load 50

这将对 4 个 CPU 施加 50% 的工作负载压力。如果您使用的是 Ubuntu,则可以直接从存储库安装它:

sudo apt-get install -y stress-ng

答案3

与其尝试限制应用程序对 CPU 的使用,为什么不尝试限制 CPU通过将容量减少到您想要的百分比,您将无法告诉以最大容量运行的线程“运行得更慢”,除非它被设计为在 x% 的时间内处于休眠状态,这会污染您尝试收集的数据,因为处理器活动用于线程操作(如旋转等待/脉冲)。

根据您的发行版,您可以使用类似的工具CPU 功率,格兰诺拉麦片, 或者CPU频率

答案4

有人发布了一个有趣的小提琴,可以使所有 CPU 核心的压力达到 100%。

它每个核心使用一个 Web 工作器(默认四核),并且可以轻松修改以适应每个核心上的可变压力。

http://jsfiddle.net/MTJ27/81/

  • 您可以使用 navigator.hardwareConcurrency 来获取核心数。
  • 尽管 WebGL 允许提供详细的 GPU 信息,但您无法将 CPU-Z 作为网页实现。

相关内容