Linux系统stress压力测试工具
一、stress简介
1、stress简介
stress是Linux的一个压力测试 工具,可以对CPU、Memory、IO、磁盘进行压力测试。
2、stress安装
安装:sudo yum install stress
二、stress使用
1、stress命令stress [OPTION [ARG]]
-c, --cpu N:产生N个进程,每个进程都循环调用sqrt函数产生CPU压力。-i, --io N:产生N个进程,每个进程循环调用sync 将内存缓冲区内容写到磁盘上,产生IO压力。通过系统调用sync刷新内存缓冲区数据到磁盘中,以确保同步。如果缓冲区内数据较少,写到磁盘中的数据也较少,不会产生IO压力。在SSD磁盘环境中尤为明显,很可能iowait总是0,却因为大量调用系统调用sync,导致系统CPU使用率sys 升高。-m, --vm N:产生N个进程,每个进程循环调用malloc/free函数分配和释放内存 。 --vm-bytes B:指定分配内存的大小 --vm-stride B:不断的给部分内存赋值,让COW(Copy On Write)发生 --vm-hang N :指示每个消耗内存的进程在分配到内存后转入睡眠状态N秒,然后释放内存,一直重复执行这个过程 --vm-keep:一直占用内存,区别于不断的释放和重新分配(默认是不断释放并重新分配内存)-d, --hdd N:产生N个不断执行write和unlink函数的进程(创建文件,写入内容,删除文件) --hdd-bytes B:指定文件大小
--hdd-noclean:不要将写入随机ASCII数据的文件Unlink-t, --timeout N:在N秒后结束程序 --backoff N:等待N微秒后开始运行-q, --quiet:程序在运行的过程中不输出信息-n, --dry-run:输出程序会做什么而并不实际执行相关的操作--version:显示版本号-v, --verbose:显示详细的信息
2、CPU测试stress --cpu 2 --timeout 60
开启2个CPU进程执行sqrt计算,60秒后结束
3、IO测试stress --io 2 --timeout 60s
开启2个IO进程,执行sync系统调用,刷新内存缓冲区到磁盘
使用stress无法模拟iowait升高,但sys升高。stress -i参数表示通过系统调用sync来模拟IO问题,但sync是刷新内存缓冲区数据到磁盘中,以确保同步。如果内存缓冲区内没多少数据,读写到磁盘中的数据也就不多,没法产生IO压力。使用SSD磁盘的环境中尤为明显,iowait一直为0,但因为大量系统调用,导致系统CPU使用率sys升高。stress --io 2 --hdd 2 --timeout 60s
开启2个IO进程,2个磁盘IO进程
4、Memory测试stress --vm 2 --vm-bytes 1G --vm-hang 100 --timeout 100s
开启2个进程分配内存,每次分配1GB内存,保持100秒后释放,100秒后退出。
5、磁盘IO测试stress --hdd 2 --hdd-bytes 10G --backoff 2000000
开启2个磁盘IO进程,每次写10GB数据到磁盘
三、stress测试场景
1、CPU密集型进程stress --cpu 2 --timeout 600
模拟启动2个CPU密集型进程uptime
查看系统平均负载,如下:
mpstat -P ALL 5 1
查看CPU使用情况,如下:
pidstat -u 5
查看进程负载情况,如下:
(1)通过uptime可以观察系统平均负载较高。
(2)通过mpstat观察到CPU0和CPU2的用户态CPU使用率很高,而iowait为0,说明进程是CPU密集型。进程使用CPU密集导致系统平均负载变高、CPU使用率变高。
(3)可以通过pidstat查看是stress进程导致CPU使用率较高。
2、IO密集型进程stress -i 1 --hdd 1 --timeout 600
模拟1个worker调用sync刷新内存缓冲区write到磁盘。
uptime
查看系统平均负载,如下:
mpstat -P ALL 5
查看CPU使用情况,如下:
(1)可以通过uptime观察到,系统平均负载很高。
(2)通过mpstat观察到内核态CPU使用率很低,但iowait很高,一直在等待IO处理,说明进程是IO密集型。进程频繁进行IO操作,导致系统平均负载很高而CPU使用率不高。
3、等待CPU进程
本机4个逻辑CPU,模拟8个进程。stress -c 8 --timeout 600
模拟8个CPU密集型进程uptime
查看系统平均负载,如下:
mpstat -P ALL 5
查看CPU使用率情况,如下:
pidstat -u 5
查看进程的CPU使用情况,如下:
(1)通过uptime观察到系统平均负载很高
(2)通过mpstat观察到用户态CPU使用率很高,iowait为0,说明进程是CPU密集型或者进程间存在CPU争用。
(3)通过pidstat观察到wait指标很高,说明进程间存在CPU争用,系统中存在大量进程在等待使用CPU。
四、stress-ng简介
1、stress-ng简介
stress-ng完全兼容stress, 并且在stress基础上增加数百个选项参数,支持产生各种复杂的压力。
2、stress-ng安装
stress-ng源码下载:
https://kernel.ubuntu.com/~cking/tarballs/stress-ng/
编译:make
安装:sudo make install
3、stress-ng命令stress-ng [OPTION [ARG]] stress-ng --cpu 2 --cpu-method pi
产生2个worker做圆周率算法压力stress-ng --cpu 2 --cpu-method all
产生2个worker迭代使用30多种不同的压力算法,包括pi, crc16, fft等stress-ng --sock 2
产生2个worker调用socket相关函数产生压力stress-ng --tsc 2
产生2个worker读取tsc产生压力stress-ng --sock 4 --taskset 0-1,3
strss-ng将压力指定到指定CPU上
宇宙中有多少个星球?宇宙到底有多大,我们现在的回答,只能在我们可观察到的范围内。上世纪90年代,天文学家探测了大量昏暗星系,评估分析称宇宙中存在1000亿2000亿个星系。2016年,天文学家分析了大
中兴集团有多大?最近美国对中兴的制裁让中兴成为科技界的话题。首先所有国人必须了解一个事情如张召忠局座所说网络上充斥着各种网特,他们的目的就是挑拨离间,希望大家擦亮眼睛,不要被利用!回到主题中兴有多
用比特币支付股权转让款,违反法律规定应为无效股权转让中,股权转让款除了用货币支付,还可以用土地使用权房屋所有权知识产权等有财产进行支付,还有有部分股东选择用比特币等虚拟货币进行交易。在用比特币交易的情况下,随着国家对于比特币
中概互联网还要跌多久先说结论。我对2022年中概互联网的看法是风险和机会并存,但机会大于风险。四季度业绩预期以及第一季度业绩指引应该不会太好,尽管市场已经提前反映了这样的预期,业绩落地之后依然会有情绪
老录像带如何转存u盘?用录像机接智能数字电视机播放,然后用屏录功能储存,再用U盘导出来正在转录录像带,正好看到这个问答,把我的做法分享给你大家。我的录像带有两种,一种是VHS,也就是大录像带,一种是V8
怒怼腾讯管理层应届生被标记永不录用?谁说污泥满身的不算英雄?企业有权不录用员工,员工也有权选择企业。对员工来说合适就干,不合适就走人。对企业来说,企业不是福利机构,不能只发工资,不创造效益,企业的目标就是赚钱,只有赚钱了,企业才能生存下去。
小米12ultra和小米MIX5参数大曝光近期,小米12ultra和小米MIX5参数被曝光。小米12ultra据了解到,小米12ultra屏幕是三星最新的旗舰级E5直屏,处理器是新骁龙8处理平台,基于三星3nm制程工艺,最
2022年将发布的3款重量级手机,内外兼修,买到就是赚到2022年将发布的3款重量级手机,内外兼修,买到就是赚到2022年已经过去十多天了,在全新的2022年很多人都非常期待能够有哪些重量级的手机发布,今天就给大家介绍三款在2022年会
着了苹果iPhone12的道儿,果断换成小米12Pro后,实际体验翻番看看这位网友的心酸经历我已经用了iPhone12一年有余,让人感到心累,发誓这辈子不准备再选苹果iPhone手机了。以前选苹果iPhone12就是虚荣心在作祟,因为作为苹果的首款5
苹果在iOS15。4新增怀孕的男人表情符号苹果为开发者参与测试的用户推送了iOS15。4Beta首个测试版本,除了为iPhone1213系列机型加入戴口罩使用面容ID功能外,苹果还新增了几十个新的emoji表情符号。其中笑
3000左右能买安卓最强高通骁龙8手机?原来机会真来了!仅此四款作为目前安卓阵营最强处理器高通全新一代骁龙8Gen1,也就是大家常说的全新骁龙8,自然是众多追求高性能用户的首选。由于高通骁龙8Gen1是全新一代高端5G旗舰处理器,目前搭载高通骁