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

AJN*_*AJN 11 linux cpu-usage stress-testing

Linux 环境:Debian、Ubuntu、Centos

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

所以我需要一个可以模拟每个核心特定 CPU 百分比的 CPU 压力器。
stress-mg看起来是最先进的。

根据其文档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
Run Code Online (Sandbox Code Playgroud)

压力 ng: 信息: [12650] 调度猪: 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% 占用

在此处输入图片说明

任何想法如何实现这一目标?

小智 18

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

压力-ng -c 0 -l 40


AJN*_*AJN 5

我应该使用-l 选项

  1. 看起来-c 1在所有内核之间分配负载。每个核心不完全是 80/4,我猜是因为主机已经在运行一些东西。

    压力-ng -c 1 -l 80

在此处输入图片说明

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

    压力-ng -c 4 -l 80

在此处输入图片说明