Centos7.x stress-ng的安装与使用
zp前言:
stress-ng完全兼容stress, 并且在stress基础上增加数百个选项参数,支持产生各种复杂的压力。
一、安装
yum install -y epel-release.noarch && yum -y update
yum install -y stress stress-ng

二、主要参数介绍
- -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测试
三、使用介绍
- stress-ng -c 2 --cpu-method pi 产生2个worker做圆周率算法压力
- stress-ng -c 2 --cpu-method all 产生2个worker从迭代使用30多种不同的压力算法,包括pi, crc16, fft等等
- stress-ng --sock 2 产生2个worker调用socket相关函数产生压力
- stress-ng --tsc 2 产生2个worker读取tsc产生压力
四、附stress简介
stress是Linux的一个压力测试工具,可以对CPU、Memory、IO、磁盘进行压力测试
1.安装
sudo yum install stress
2.命令介绍
- -c, --cpu N:产生N个进程,每个进程都循环调用sqrt函数产生CPU压力。
- -i, --io N:产生N个进程,每个进程循环调用sync将内存缓冲区内容写到磁盘上,产生IO压力。通过系统调用sync刷新内存缓冲区数据到磁盘中,以确保同步。如果缓冲区内数据较少,写到磁盘中的数据也较少,不会产生IO压力。在SSD磁盘环境中尤为明显,很可能iowait总是0,却因为大量调用系统调用sync,导致系统CPU使用率sys 升高。
- -m, --vm N:产生N个进程,每个进程循环调用malloc/free函数分配和释放内存。
- --vm-bytes B:指定分配内存的大小
- --vm-stride B:不断的给部分内存赋值,让COW(Copy On Write)发生
- --vm-hang N :指示每个消耗内存的进程在分配到内存后转入睡眠状态N秒,然后释放内存,一直重复执行这个过程
- --vm-keep:一直占用内存,区别于不断的释放和重新分配(默认是不断释放并重新分配内存)
- -d, --hdd N:产生N个不断执行write和unlink函数的进程(创建文件,写入内容,删除文件)
- --hdd-bytes B:指定文件大小
- –hdd-noclean:不要将写入随机ASCII数据的文件Unlink
- -t, --timeout N:在N秒后结束程序
- –backoff N:等待N微秒后开始运行
- -q, --quiet:程序在运行的过程中不输出信息
- -n, --dry-run:输出程序会做什么而并不实际执行相关的操作
- –version:显示版本号
- -v, --verbose:显示详细的信息
3.测试使用
3.1CPU测试(开启2个CPU进程执行sqrt计算,60秒后结束)
stress --cpu 2 --timeout 60
3.2IO测试(开启2个IO进程,执行sync系统调用,刷新内存缓冲区到磁盘)
stress --io 2 --timeout 60s
3.3Memory测试(开启2个进程分配内存,每次分配1GB内存,保持100秒后释放,100秒后退出)
stress --vm 2 --vm-bytes 1G --vm-hang 100 --timeout 100s
3.4磁盘IO测试(开启2个磁盘IO进程,每次写10GB数据到磁盘)
stress --hdd 2 --hdd-bytes 10G --backoff 2000000
文章为作者独立观点,不代表BOSS直聘立场。未经账号授权,禁止随意转载。