CentOS 7 的EPEL源包含2个压力测试工具,一个是标准的stress,另一个是其升级版stress-ng。
文章参考:https://kernel.ubuntu.com/~cking/stress-ng/
1,安装stress-ng
yum install -y epel-release.noarch && yum -y update
yum install -y stress stress-ng
2,使用方法
stress的参数
-
-c 2 : 生成2个worker循环调用sqrt()产生cpu压力
-
-i 1 : 生成1个worker循环调用sync()产生io压力
-m 1 : 生成1个worker循环调用malloc()/free()产生内存压力
运行2worker CPU压力40分钟,CPU占用率稳定在20%左右
[root@localhost ~]# stress -c 2 -i 9 -m 8
stress: info: [5100] dispatching hogs: 2 cpu, 9 io, 8 vm, 0 hdd
[root@localhost ~]# uptime
00:16:48 up 41 min, 3 users, load average: 21.05, 20.64, 16.66
stress-ng的参数
stress-ng的参数有几百项,可以模拟复杂的压力测试,但是兼容stress的参数。 主要使用参数:
- -c N :运行N worker CPU压力测试进程
- --cpu-method all :worker从迭代使用30多种不同的压力算法,包括pi, crc16, fft等等
- -tastset N:将压力加到指定核心上
- -d N:运行N worker HDD write/unlink测试
- -i N:运行N worker IO测试
示例:运行8 cpu, 4 fork, 4 io, 2 vm 10小时
[root@localhost ~]# stress-ng --cpu 8 --cpu-method all --io 4 --vm 2 --vm-bytes 128M --fork 4 --timeout 36000s
stress-ng: info: [20829] dispatching hogs: 8 cpu, 4 fork, 4 io, 2 vm