前言
大家好,这里是浩道linux,主要给大家分享linux、python、网络通信、网络安全等相关的it知识平台。
今天浩道跟大家分享linux下一款强大的压力测试工具------stress-ng,这款测试工具对于运维工程师或者测试工程师,还是比较受欢迎的。本文带你安装部署,并且列举出它常用的测试命令,真正做到拿来即用,看完就没有你不会用的!
一、stress-ng工具介绍
stress-ng是一款用于对系统进行压力测试的工具。它有着非常强大的功能,可以对系统的多种资源指标进行测试,包括但不限于cpu、磁盘、网络、内存、进程、文件系统等。
用户可以根据自己的需求选择相应的负载模式,并设置负载级别、持续时间等参数来控制测试的强度和时长。当stress-ng测试cpu时,会不断调用进程,计算随机数的平方根;当测试内存时,会不断调用内存调用malloc和内存释放free函数;当测试磁盘i/o时,会不断调用sync()中断,以测试磁盘i/o。
centos 7 的epel源包含2个压力测试工具,一个是标准的stress,另一个是其升级版stress-ng。
stress-ng是stress的升级版,用于linux压力测试,带源码。stress-ng兼容stress, 支持产生各种复杂的压力。
二、stress-ng工具安装部署
stress-ng的安装支持yum方式安装及源码安装两种方式,不过yum方式安装不是最新版本,推荐用源码方式安装最新版本。
1、yum方式安装
yum install -y epel-release.noarch && yum -y updateyum install -y stress stress-ng
2、源码安装
1)首先下载相应源码,可以从以下站点下载最新stress-ng源码包。
https://fossies.org/linux/privat/
以下我是通过wget命令在linux环境下直接下载,当然可以下载到本地后再上传linux系统。
wget https://fossies.org/linux/privat/stress-ng-0.16.03.tar.gz
下载好后本地源码压缩包如下所示:
2)源码包编译安装
解压、编译与安装三部曲
tar -xzf stress-ng-0.16.03.tar.gz
cd stress-ng-0.16.03make && make install
待编译完整完成,看到如下标识说明安装成功。
3)安装完成查看验证版本信息
[root@node1 stress-ng-0.16.03]# stress-ng -vstress-ng, version 0.16.03 (gcc 4.8.5, x86_64 linux 3.10.0-957.el7.x86_64) ?¥
三、stress-ng命令用法及常见参数 1、stress-ng命令用法
stress-ng [option [arg]]
2、stress-ng命令常见选项参数
-h,--help:显示帮助信息;--version:显示版本信息;-t,–timeout:指定程序运行结束的时间,后面直接跟数字,单位为秒;-c,–-cpu:后面空格跟一个整数,表示测试cpu的进程数,--cpu 4 :表示生成4个worker循环调用sqrt()产生cpu压力;-i,--io:后面空格跟一个整数,表示测试磁盘i/o的进程数, --io 4 :表示生成4个worker循环调用sync()产生io压力;-m,--vm:后面空格跟一个整数,表示测试内存的进程数,--vm 4 :表示生成4个worker循环调用malloc()/free()产生内存压力;-d,--hdd:后面空格直接跟数字,表示产生执行write和unlink函数的进程数,用于磁盘负载测试;--cpu-method:指定cpu的测试方法,后面空格直接跟方法名;--metrics:输出命令执行指标;--vm-bytes:指定在内存测试时malloc的字节数,默认256m;--class :指定测试类别,后面空格跟类别名;--matrix :启用矩阵测试模式,后面空格跟矩阵模式名;--random-seed:指定测试随机种子,后面空格跟种子名;--sequential:启用顺序测试模式;--hdd-bytes:指定写的字节数;--cpu-load:cpu负载占比,后面空格直接跟数字,单位为百分比。
四、stress-ng压力测试实用场景 1、cpu负载测试
如下命令使用4个cpu进程数,进行矩阵乘法计算进行压力测试,持续时间为600秒。
stress-ng --cpu 4 --cpu-method matrixprod --timeout 600s此时先通过top命令查看测试前系统负载情况,如下图所示:
执行压力测试过程中,再通过top命令查看系统负载情况,如下图所示:
2、内存负载测试 如下命令使用4个内存分配进程,每次分配大小512m,分配后不释放,保持测试600秒。
stress-ng --vm 4 --vm-bytes 512m --timeout 600s此时先通过free和top命令查看测试前系统内存使用情况,如下图所示:
执行压力测试过程中,再通过free和top命令查看系统内存使用情况,如下图所示:
如果不带保持时间参数,长期保持测试命令如下:
stress-ng --vm 4 --vm-bytes 512m --vm-keep
3、io负载测试 如下命令使用4个io进程,保持测试600秒。
stress-ng --io 4 --timeout 600s
此时先通过top命令及prometheus监控系统查看测试前系统负载情况,如下图所示:
执行压力测试过程中,再通过top命令及prometheus监控系统查看系统负载情况,如下图所示:
4、磁盘及io测试
如下命令使用4个i/o进程,1个写进程,每次写1000m文件块,测试600秒。
stress-ng --io 4 --hdd 1 --hdd-bytes 1000m --timeout 600s
此时先通过top命令及prometheus监控系统查看测试前系统负载情况,如下图所示:
执行压力测试过程中,再通过top命令及prometheus监控系统查看系统负载情况,如下图所示:
5、cpu及磁盘测试
如下命令使用4个cpu进程,2个i/o进程,测试600秒。
stress-ng --cpu 4 -i 2 --timeout 600s
此时先通过top命令查看测试前系统cpu负载情况,如下图所示:
执行压力测试过程中,再通过top命令查看系统负载情况,如下图所示:
6、调整cpu负载占用百分比进行测试 实际测试环境中可能不是要求cpu、内存等负载为100%情况下进行,此时可以通过调整相关负载参数进行测试。 如下命令使用4个cpu进程,调整cpu负载占比为60%进行测试,测试时长600秒。
stress-ng --cpu 4 --cpu-load 60 --timeout 600s
执行压力测试过程中,再通过top命令查看系统负载情况,如下图所示:
五、总结
工欲善其事,必先利其器,实用的工具可以让你在实际工作中如虎添翼。stress-ng工具选项参数众多,这也说明了它功能强大。以上只是列举一些常用的参数并进行常用的场景进行测试。大家如果想深入使用这款工具,可以自行查阅相关的资料。
色标法识别电阻阻值
贸泽电子开售用于3D人脸识别的 NXP i.MX RT117F EdgeReady跨界处理器
魅族pro7什么时候上市?魅族pro7最新消息:魅族Pro7曝光,外观是惊喜还是惊吓?
数据采集器34980A自检报错维修——安泰安捷伦仪器维修
浅谈地铁车辆检测技术
Linux下的stress-ng压力测试工具介绍
SPMC65P2404A在电动自行车中的应用
2009上半年中国电源管理芯片市场现状与趋势
宁德时代今年 1-9 月动力电池装机量超 LG 化学,位居全球第一
85寸MiniLED电视,哪个品牌的好?
IC-MCU-ST系列集成电路L6562DTR 单片机 MCU 22+ SOIC8 原装正品
3D打印对生活有什么影响?
广汽埃安V 5G版全球首款5G量产车正式落地:首搭“华为芯”
FPGA布线拥塞主要原因及解决方法
中兴通讯顺利完成中国5G技术研发试验2.6GHz频段测试
怎样用HTML应用程序控制RGB LED
贴片电感和功率电感之间的区别是什么
拭目以待:即将掀起的2015年64位处理器大战
研究人员利用3D生物打印技术,打造人体微型器官
单片机的一生如同人类