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=sleep,100=full load(见 -c)
stress-ng -c 1 -p 30
压力-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%
任何想法如何实现这一目标?
我设计了 stress-ng 以便可以将压力源进程的数量指定为 0 以匹配在线 CPU 的数量,因此要以 40% 的速度加载每个 cpu,请使用
压力-ng -c 0 -l 40
我应该使用-l 选项
看起来-c 1在所有内核之间分配负载。每个核心不完全是 80/4,我猜是因为主机已经在运行一些东西。
压力-ng -c 1 -l 80
和-c 4模拟每个核心上的负载
压力-ng -c 4 -l 80