stress
- 对系统增加负载和压力测试的工具
stress [option [arg]] ...
描述
- stress将指定类型的计算压力加到系统上
选项
-
-v,–verbose
-
-q, --quiet
-
-n, --dry-run
- 展示已经做了什么
-
-t, --timeout N
- 在N秒之后超时
-
–backoff N
- 在任务开始之前等待N us
-
-c, --cpu N
- 创建N个工作进程快速执行sqrt()
-
-i, --io N
- 创建N个工作进程快速执行sync()
-
-m, --vm N
- 创建N个工作进程执行malloc()/free()
-
–vm-bytes B
- 每个vm进程分配B字节内存空间(默认是256MB)
-
–vm-stride B
- 每隔B个字节touch一个字节(默认是4096),不知道用干吗的
-
–vm-hang N
- 在释放内存之前(默认是不休眠,0是无限休眠)休眠N秒
-
–vm-keep
- 重新弄脏内存,而不是释放和重新申请内存
-
-d, --hdd N
- 创建N个工作进程执行write()/unlink()
-
–hdd-bytes B
- 每个hdd工作进程写B个字节(默认写1GB)
-
实例
- stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 10s
- 注意:
- 数字类的可能带有后缀,时间类的带s,m,h,d,y,大小类的带B,K,M,G
info stress文档
概览
- stress不是一个基准测试程序(benchmark)
- stress是一个把指定负载加到指定的子系统上的一个工具
- 对于一个系统管理员想要执行微调活动,或者是一个内核或者libc库的程序员想要去评估拒绝服务的可能性等场景,这个工具非常实用
实例分析
- 简单的场景就是想要把系统的平均负载增加到一个任意值,接下来fork13个子进程,每一个都执行计算一个用rand()获取的随机数的sqrt()
stress -c 13
- 支持长选项,这个命令创建1024个进程,并且只输出错误信息,如果有出错信息的话;
stress --quiet --cpu 1k
- 创建4个进程,每个子进程快速调用sync()
stress -i 4
- 1分钟后超时
stress -c 13 -i 4 --verbose --timeout 1m
- 可以写一个任意长度的文件到磁盘,文件用mkstemp()在当前目录下创建,默认行为是删除掉,unlink也可以通过设置–hdd-noclean选项来被覆盖
stress -d 1 --hdd-noclean --hdd-bytes 13
stress -d 1 --hdd-noclean --hdd-bytes 3G