Stress-ng:模拟特定的 CPU 百分比

Stress-ng:模拟特定的 CPU 百分比

Linux 环境:Debian、Ubuntu、Centos

目标:
测试监控程序,设置警报并在不同的 CPU 百分比下触发不同的警报。
例如:(30-50%)、(51-70%) 和 >90%

所以我需要一个可以模拟每个核心特定 CPU 百分比的 CPU 压力测试器。
应激毫克看起来是最先进的。

根据其文献http://kernel.ubuntu.com/~cking/stress-ng/可以将负载值设置在 0 至 100% 之间:

-l P --cpu-load P 按 P% 加载 CPU,0=睡眠,100=满载(参见 -c)

stress-ng -c 1 -p 30

stress-ng:信息:[12650] 调度 hogs:0 I/O-Sync、1 CPU、0 VM-mmap、0 HDD-Write、0 Fork、0 Context-switch、30 Pipe、0 Cache、0 Socket、0 Yield、0 Fallocate、0 Flock、0 Affinity、0 Timer、0 Dentry、0 Urandom、0 Float、0 Int、0 Semaphore、0 Open、0 SigQueue、0 Poll

不理想的结果:
但它似乎不起作用,所有核心都被占用了 100%

在此处输入图片描述

有什么想法如何实现这一点吗?

答案1

我设计了stress-ng,以便可以指定压力源进程的数量为0,以匹配在线CPU的数量,因此要将每个CPU的负载设为40%,请使用

压力-ng-c 0-l 40

答案2

我应该用-l 选项

  1. 好像-c 1在所有核心之间分配负载。并不是每个核心都分配 80/4,我猜是因为主机已经在运行一些东西了。

    压力-ng-c 1-l 80

在此处输入图片描述

  1. -c 4模拟每个核心上的负载

    压力-ng-c 4-l 80

在此处输入图片描述

有关 Stress-ng 的更多信息: assembly_stress-testing-real-time-systems-with-stress-ng_optimizing-rhel8-for-real-time-for-low-latency-operation

相关内容