stress 压力测试

stress是一个Posix系统下生成 Cpu,Menory,IO,Disk 负载的工具。

yum install stress -y
apt install stress -y

Stress参数说明:

-? 显示帮助信息
-v 显示版本号
-q 不显示运行信息
-n,--dry-run 显示已经完成的指令执行情况
-t --timeout N 指定运行N秒后停止
   --backoff N 等待N微妙后开始运行
-c --cpu 产生n个进程 每个进程都反复不停的计算随机数的平方根
-i --io  产生n个进程 每个进程反复调用sync(),sync()用于将内存上的内容写到硬盘上
-m --vm n 产生n个进程,每个进程不断调用内存分配malloc和内存释放free函数
   --vm-bytes B 指定malloc时内存的字节数 (默认256MB)
   --vm-hang N 指示每个消耗内存的进程在分配到内存后转入休眠状态,与正常的无限分配和释放内存的处理相反,这有利于模拟只有少量内存的机器
-d --hadd n 产生n个执行write和unlink函数的进程
   --hadd-bytes B 指定写的字节数,默认是1GB
   --hadd-noclean 不要将写入随机ASCII数据的文件Unlink
时间单位可以为秒s,分m,小时h,天d,年y,文件大小单位可以为K,M,G

2.1 stress使用实例

压测全部CPU + 90% 物理内存:

# 小于3.14内核
stress -c `cat /proc/cpuinfo | grep -c processor` --vm-bytes $(awk '/MemFree/{printf "%d\n", $2 * 0.9;}' < /proc/meminfo)k --vm-keep -m 1
# 大于3.14内核
stress -c `cat /proc/cpuinfo | grep -c processor` --vm-bytes $(awk '/MemAvailable/{printf "%d\n", $2 * 0.9;}' < /proc/meminfo)k --vm-keep -m 1

单独压测CPU:

#产生13个进程,每个进程都反复不停的计算由rand ()产生随机数的平方根
stress -c 13
#产生1024个进程,仅显示出错信息
stress --quiet --cpu 1k

单独压测IO:

#产生4个进程,每个进程反复调用sync(),sync()用于将内存上的内容写到硬盘上
stress -i 4

综合压测:

#产生13个cpu进程4个io进程1分钟后停止运行
stress -c 13 -i 4 --verbose --timeout 1m
#产生3个cpu进程、3个io进程、2个10M的malloc()/free()进程,并且vm进程中malloc的字节不释放
stress --cpu 3 --io 3 --vm 2 --vm-bytes 10000000 --vm-keep --verbose
#测试硬盘,通过mkstemp()生成800K大小的文件写入硬盘,对CPU、内存的使用要求很低
stress -d 1 --hdd-noclean --hdd-bytes 800k
  • linux/performance/stress压力测试.txt
  • 最后更改: 2019/09/11 16:32
  • 由 mrco