1.命令介绍
stress是一个linux系统压力测试工具,顾名思义主要用来进行压力测试。
2.安装stress
yum -y install stress
3.参数详解
-? 显示帮助信息
-v 显示版本号
-q 不显示运行信息
-n 显示已完成的指令情况
-t --timeout N 指定运行N秒后停止
--backoff N 等待N微妙后开始运行
-c 产生n个进程 每个进程都反复不停的计算随机数的平方根
-i 产生n个进程 每个进程反复调用sync(),sync()用于将内存上的内容写到硬盘上
-m --vm n 产生n个进程,每个进程不断调用内存分配malloc和内存释放free函数
--vm-bytes B 指定malloc时内存的字节数 (默认256MB)
--vm-hang N 指定在free钱的秒数
-d --hadd n 产生n个执行write和unlink函数的进程
-hadd-bytes B 指定写的字节数
--hadd-noclean 不unlink
时间单位可以为秒s,分m,小时h,天d,年y,文件大小单位可以为K,M,G
4.命令示范
(1) 使用-c选项对cpu进行压测
stress -c 1 -t 100
使用mpstat和pidstat命令可以看到此时cpu使用率为100%
mpstat -P ALL 5
(2) 使用-i选项对io进行压测
注意sync()是将内存缓冲区中的数据立即写入磁盘中,对于新建的虚拟机缓冲区内本来就没多少数据,那写到磁盘中的数据也就不多,也就没法产生
I/O
压力。这样大部分就都是系统调用的消耗了,可以看到%iowait只有0.1%,而%system却有98%(%system:表示内核进程所使用cpu的百分比;%iowait表示等待IO所使用cpu的百分比)
stress -i 1 -t 600
对于这种情况我们要去测IO,可以使用-d选项。再次查看发现iowait 已经飙上来了
stress -d 1 --hdd-bytes 1024G
(3) 使用-m选项对内存进行压测
stress -m 1 --vm-bytes 1G --vm-hang 10
pidstat -C "stress" -p ALL -r 2 1