stress简介
stress是一个linux的压力测试工具,可以对CPU,Memory,磁盘IO进行压力测试。对系统进行压力测试,提前发现系统运行能力问题,解决系统的疑难杂症。
stress使用
-q, --quiet #不显示运行信息
----------------------------------------------
-n, --dry-run #显示已经完成的指令执行情况
----------------------------------------------
-t secs, --timeout secs #指定运行时间,单位秒
----------------------------------------------
--backoff usecs #等待usecs微秒后执行
----------------------------------------------
-c forks, --cpu forks #产生多个处理sqrt()函数的CPU进程
----------------------------------------------
-i forks, --io forks #产生多个处理sync()函数的磁盘I/O进程
----------------------------------------------
-m forks, --vm forks #产生多个处理malloc()内存分配函数的进程
----------------------------------------------
--vm-bytes bytes #指定内存的Bytes数,默认值是1(与--vm-hang配合使用)
----------------------------------------------
--vm-hang #指示每个消耗内存的进程在分配到内存后转入休眠状态,与正常的无限分配和释放内存的处理相反,这有利于模拟只有少量内存的机器;例如,下面命令运行时就会分配到并一直持有256M内存,直到进程被终止;
% stress --vm 2 --vm-bytes 128M --vm-hang
----------------------------------------------
-d forks, --hdd forks #产生多个执行write()函数的进程
----------------------------------------------
--hdd-bytes bytes #指定写的Bytes数,默认是1GB
----------------------------------------------
--hdd-noclean #不要将写入随机ASCII数据的文件Unlink
注意:时间单位可以为秒s,分m,小时h,天d,年y,文件大小单位可以为K,M,G
示例:
一个简单的例子就是你只想给系统一个随机负载,此命令产生13个进程,每个进程都反复不停的计算由rand()产生随机数的平方根
----------------------------------------------
% stress -c 13 #Stress支持很多选项,可以指定仅显示有限的运行信息,以下命令产生1024个进程,仅显示出错信息
----------------------------------------------
% stress --quiet --cpu 1k #为了观察系统何时达到I/O极限,可以使用选项“-i”,以下指令产生4个进程,每个进程反复调用sync(),sync()用于将内存上的内容写到硬盘上
----------------------------------------------
% stress -i 4 #可以在一条指令中使用多个消耗资源的选项,如下指令表示显示运行信息,一分钟后终止运行(13个CPU进程,4个I/O进程)
----------------------------------------------
% stress -c 13 -i 4 --verbose --timeout 1m #你也可以指定向磁盘中写入固定大小的文件,这个文件通过调用mkstemp()产生并保存在当前目录下,默认是文件产生后就被执行unlink(清除)操作,但是你可以使用“--hdd-bytes”选项将产生的文件全部保存在当前目录下,这会将你的磁盘空间逐步耗尽
----------------------------------------------
% stress -d 1 --hdd-noclean --hdd-bytes 13 #可以支持生成大文件
% stress -d 1 --hdd-noclean --hdd-bytes 3G
stress-ng
stress-ng完全兼容stress, 并且在此基础上通过几百个参数,可以产生各种复杂的压力测试
--cpu-method method #CPU压力模型,默认顺序执行所有的压力模型
% stress-ng -c 2 --cpu-method pi
----------------------------------------------
--hdd-opts list #硬盘压力操作列表,逗号分隔
----------------------------------------------
% stress-ng --sock 4 --taskset 0,2-3,6 # 使用CPU 0,2-3,6用socket压力测试
----------------------------------------------
-b N, --backoff N #等待N微秒后开始执行压力任务
----------------------------------------------
--class name #压测类型,例如cpu, cpu-cache, device, io, interrupt, filesystem, memory, network, os, pipe, scheduler, vm
----------------------------------------------
开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 4 天,点击查看活动详情