stress linux 下压力测试工具
stress linux设备压力测试
stress介绍
stress 是Unix类系统下的工作量和压力测试工具。它可对用户指定的CPU数量的I/O,内存和硬盘进行负载并报告它检测到任何错误。
stress 下载、安装
下载
wget https://fossies.org/linux/privat/old/stress-1.0.4.tar.gz/
安装
tar -xvf stress-1.0.4.tar.gz
cd stress-1.0.4
./configure
make
make install
stress参数介绍
#stress
`stress' imposes certain types of compute stress on your system
Usage: stress [OPTION [ARG]] ...
-?, --help show this help statement
--version show version statement
-v, --verbose be verbose
-q, --quiet be quiet
-n, --dry-run show what would have been done
-t, --timeout N timeout after N seconds
--backoff N wait factor of N microseconds before work starts
-c, --cpu N spawn N workers spinning on sqrt()
-i, --io N spawn N workers spinning on sync()
-m, --vm N spawn N workers spinning on malloc()/free()
--vm-bytes B malloc B bytes per vm worker (default is 256MB)
--vm-stride B touch a byte every B bytes (default is 4096)
--vm-hang N sleep N secs before free (default none, 0 is inf)
--vm-keep redirty memory instead of freeing and reallocating
-d, --hdd N spawn N workers spinning on write()/unlink()
--hdd-bytes B write B bytes per hdd worker (default is 1GB)
Example: stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 10s
Note: Numbers may be suffixed with s,m,h,d,y (time) or B,K,M,G (size).
-? 显示帮助信息
-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 指定sleep的秒数
-d --hadd n 产生n个执行write和unlink函数的进程
-hadd-bytes B 指定写的字节数
–hadd-noclean 不unlink
时间单位可以为秒s,分m,小时h,天d,年y,文件大小单位可以为K,M,G
stress cpu 测试
stress测试cpu,-c 后面的参数表示产生这么多个进程,每个进程都反复不停的计算随机数的平方根,一个进程一般会占用cpu的一个核并把它耗尽,如果你想把cpu耗掉30%,可以看下本来的cpu占用情况,看下你的cpu是几核的,再初略的算下
下面的命令就是产生5个进程,执行100s,后台运行
stress -c 5 -t 100 &
执行后查看cpu的使用率结果如下:
注:基本不耗用其他资源,只是占用CPU资源
stress io 测试
使用stress测试IO,虽然可以创建任意数量的IO进程,但是,可以将 %sys 100%。因为,stress是通过循环执行sync(),使得内核态cpu 100%。
#stress -i 5 -t 100
io测试也大量占用CPU资源,IO数量够多,也会把CPU耗光,具体需要多少个,可以逐步增加试试
stress mem测试
stress 测试内存的时候,–vm-bytes 1G --vm-hang 100 这里2个参数是关键!!!!
–vm-bytes 表示malloc分配多少内存
–vm-hang 表示malloc分配的内存多少时间后在free()释放掉
–vm(-m) 指定进程数量
–timeout(-t) 指定执行时间
没有运行命令前:
运行下面的命令:
(创建30个进程,每个分配1G内存,运行10s)
[root@a1e14095-cca7-5fa6-8 ~]# stress -m 30 --vm-bytes 1G --vm-hang 100 -t 10
stress: info: [37227] dispatching hogs: 0 cpu, 0 io, 30 vm, 0 hdd
[root@a1e14095-cca7-5fa6-8 ~]# stress -m 30 --vm-bytes 1G -t 10
stress: info: [37227] dispatching hogs: 0 cpu, 0 io, 30 vm, 0 hdd
运行以上两条命令中任意一条命令后:
注:基本不占用其他资源,如cpu
stress 磁盘IO测试
stress --hdd 1 --hdd-bytes 1024G
解释:-d 1:一个写进程。写入固定大小通过mkstemp()函数写入当前目录;你也可以指定向磁盘中写入固定大小的文件
这个文件通过调用mkstemp()产生并保存在当前目录下,默认是文件产生后就被执行unlink(清除)操作,
但是你可以使用“–hdd-bytes”选项将产生的文件全部保存在当前目录下,这会将你的磁盘空间逐步耗尽。
0
在/root目录执行stress --hdd 1 --hdd-bytes 1024G命令:
在/dev目录执行stress --hdd 1 --hdd-bytes 1024G命令:

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)