0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

stress-ng工具介绍和安装部署方法

jf_TEuU2tls 来源:浩道Linux 2024-01-04 09:53 次阅读

前言

大家好,这里是浩道Linux,主要给大家分享Linux、Python网络通信网络安全等相关的IT知识平台。

众所周知,实际工作中,运维和测试的工作存在好多关联的,有时候测试同事找不到解决办法了,会第一时间找运维的同事寻求帮忙。今天给大家分享一款测试时常用到的压力测试工具-----stress-ng,可以说,假如你用好这个工具了,哪一天测试妹子找你咨询时,你就可以施展一番技能了,这时你就是她们眼中最靓的仔了!本文将从安装部署,并且列举出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 update
yuminstall-ystressstress-ng

2、源码安装 (1)首先下载相应源码,可以从以下站点下载最新stress-ng源码包。

https://fossies.org/linux/privat/

ed9a1500-a900-11ee-8b88-92fbcf53809c.png

以下我是通过wget命令在Linux环境下直接下载,当然可以下载到本地后再上传Linux系统。

wget https://fossies.org/linux/privat/stress-ng-0.16.03.tar.gz
下载好后本地源码压缩包如下所示:

edba432a-a900-11ee-8b88-92fbcf53809c.png

(2)源码包编译安装 解压、编译与安装三部曲

tar -xzf stress-ng-0.16.03.tar.gz 

cd stress-ng-0.16.03
make && make install

待编译完整完成,看到如下标识说明安装成功。

edcb20e6-a900-11ee-8b88-92fbcf53809c.png

(3)安装完成查看验证版本信息

[root@node1 stress-ng-0.16.03]# stress-ng -V
stress-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命令查看测试前系统负载情况,如下图所示:

edd5316c-a900-11ee-8b88-92fbcf53809c.png

执行压力测试过程中,再通过top命令查看系统负载情况,如下图所示:

edf83c16-a900-11ee-8b88-92fbcf53809c.png

2、内存负载测试

如下命令使用4个内存分配进程,每次分配大小512M,分配后不释放,保持测试600秒。

stress-ng--vm4--vm-bytes512M--timeout600s

此时先通过free和top命令查看测试前系统内存使用情况,如下图所示:

ee0b83b6-a900-11ee-8b88-92fbcf53809c.png

执行压力测试过程中,再通过free和top命令查看系统内存使用情况,如下图所示:

ee189c72-a900-11ee-8b88-92fbcf53809c.png

如果不带保持时间参数,长期保持测试命令如下:

stress-ng --vm 4 --vm-bytes 512M --vm-keep

3、IO负载测试 如下命令使用4个IO进程,保持测试600秒。

stress-ng --io 4 --timeout 600s
此时先通过top命令及prometheus监控系统查看测试前系统负载情况,如下图所示:

ee2c5e24-a900-11ee-8b88-92fbcf53809c.png

ee3a40de-a900-11ee-8b88-92fbcf53809c.png

执行压力测试过程中,再通过top命令及prometheus监控系统查看系统负载情况,如下图所示:

ee466fda-a900-11ee-8b88-92fbcf53809c.png

ee59461e-a900-11ee-8b88-92fbcf53809c.png

4、磁盘及IO测试 如下命令使用4个I/O进程,1个写进程,每次写1000M文件块,测试600秒。

stress-ng--io4--hdd1--hdd-bytes1000M--timeout600s

此时先通过top命令及prometheus监控系统查看测试前系统负载情况,如下图所示:

ee675290-a900-11ee-8b88-92fbcf53809c.png

ee76e6f6-a900-11ee-8b88-92fbcf53809c.png

ee7df1b2-a900-11ee-8b88-92fbcf53809c.png

执行压力测试过程中,再通过top命令及prometheus监控系统查看系统负载情况,如下图所示:

ee910a90-a900-11ee-8b88-92fbcf53809c.png

eea9e81c-a900-11ee-8b88-92fbcf53809c.png

eebdeb32-a900-11ee-8b88-92fbcf53809c.png

5、CPU及磁盘测试 如下命令使用4个CPU进程,2个I/O进程,测试600秒。

stress-ng --cpu 4 -i 2 --timeout 600s
此时先通过top命令查看测试前系统CPU负载情况,如下图所示:

eed3eff4-a900-11ee-8b88-92fbcf53809c.png

执行压力测试过程中,再通过top命令查看系统负载情况,如下图所示:

eee84bca-a900-11ee-8b88-92fbcf53809c.png

6、调整CPU负载占用百分比进行测试 实际测试环境中可能不是要求CPU、内存等负载为100%情况下进行,此时可以通过调整相关负载参数进行测试。 如下命令使用4个CPU进程,调整CPU负载占比为60%进行测试,测试时长600秒。

stress-ng --cpu 4 --cpu-load 60 --timeout 600s

执行压力测试过程中,再通过top命令查看系统负载情况,如下图所示:

ef09c886-a900-11ee-8b88-92fbcf53809c.png

五、总结

工欲善其事,必先利其器,实用的工具可以让你在实际工作中如虎添翼。stress-ng工具选项参数众多,这也说明了它功能强大。以上只是列举一些常用的参数并进行常用的场景进行测试。大家如果想深入使用这款工具,可以自行查阅相关的资料

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11302

    浏览量

    209415
  • 磁盘
    +关注

    关注

    1

    文章

    376

    浏览量

    25205
  • 命令
    +关注

    关注

    5

    文章

    684

    浏览量

    22019
  • python
    +关注

    关注

    56

    文章

    4795

    浏览量

    84658

原文标题:用好这个强悍的Linux命令,你会成为测试妹子眼中的靓仔!

文章出处:【微信号:浩道linux,微信公众号:浩道linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【米尔-瑞米派兼容树莓派扩展模块-试用体验】 实时系统移植

    1000 -D 24h -m -a -n CPU&内存满载 cyclictest -p 99 -t 1 -d 100 -i 1000 -D 24h -m -a -n` stress-ng
    发表于 06-19 16:57

    emqttd如何安装部署

    emqttd学习笔记(一):emqttd安装部署
    发表于 05-27 13:30

    嵌入式开发工具Keil 5的安装方法介绍(C51与MDK共存)

    有没有关于嵌入式开发工具Keil 5的安装方法介绍啊?还要能使C51与MDK共存。以V5.30版为例,MDK的安装分享如何
    发表于 10-13 09:19

    qt源码库在树莓派中的部署方法

    安装qt。本文介绍最普遍的部署方式,就是在pc端的ubuntu中交叉编译库源码,然后上传编译好的库到树莓派,最后配置qt creator交叉编译的kit来实现在pc端编译自码程序,上传到树莓派运行。...
    发表于 12-24 06:44

    微软压力测试工具Microsoft Web Application Stress Tool

    电子发烧友网站提供《微软压力测试工具Microsoft Web Application Stress Tool.rar》资料免费下载
    发表于 07-08 00:25 48次下载

    关于怎样Red Hat Linux 6.5线上安装部署简要方法

    关于怎样Red Hat Linux 6.5线上安装部署简要方法
    发表于 09-05 14:28 13次下载
    关于怎样Red Hat Linux 6.5线上<b class='flag-5'>安装</b><b class='flag-5'>部署</b>简要<b class='flag-5'>方法</b>

    Jenkins详细安装与构建部署使用教程

    本文详细介绍了Jenkins安装与构建部署使用教程。Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。Jenkins是基于Java开发的一种持续集成
    发表于 02-06 13:47 1763次阅读
    Jenkins详细<b class='flag-5'>安装</b>与构建<b class='flag-5'>部署</b>使用教程

    MATLAB程序调试的方法工具介绍

    MATLAB程序设计之MATLAB程序调试的方法工具介绍
    的头像 发表于 07-13 17:50 6834次阅读
    MATLAB程序调试的<b class='flag-5'>方法</b>及<b class='flag-5'>工具</b><b class='flag-5'>介绍</b>

    计算机软件的分类,工作模式,安装和开发方法及常用工具软件资料总结

    本文档的主要内容详细介绍的是计算机软件的分类,工作模式,安装和开发方法及常用工具软件资料总结。
    发表于 09-27 17:00 12次下载
    计算机软件的分类,工作模式,<b class='flag-5'>安装</b>和开发<b class='flag-5'>方法</b>及常用<b class='flag-5'>工具</b>软件资料总结

    Windows 10/11应用开发工具安装方法

    Windows 10/11应用开发工具安装方法
    发表于 08-04 17:25 5次下载

    标注工具Labelimg的安装与使用教程

    本篇文章将对一款十分好用的图片标注工具Labelimg进行介绍,重点介绍安装以及使用的过程。
    的头像 发表于 08-05 10:39 1.8w次阅读
    标注<b class='flag-5'>工具</b>Labelimg的<b class='flag-5'>安装</b>与使用教程

    【教程】标注工具Labelimg的安装与使用

    本篇文章将对一款十分好用的图片标注工具labelimg进行介绍,重点介绍安装以及使用的过程。
    的头像 发表于 08-05 10:46 5829次阅读
    【教程】标注<b class='flag-5'>工具</b>Labelimg的<b class='flag-5'>安装</b>与使用

    Linux下的stress-ng压力测试工具介绍

    今天浩道跟大家分享Linux下一款强大的压力测试工具------stress-ng,这款测试工具对于运维工程师或者测试工程师,还是比较受欢迎的。本文带你安装
    的头像 发表于 11-03 09:31 7825次阅读
    Linux下的<b class='flag-5'>stress-ng</b>压力测试<b class='flag-5'>工具</b><b class='flag-5'>介绍</b>

    weblogic安装部署详解

    、可伸缩和可靠的应用程序。本文将详细介绍WebLogic的安装部署过程。 确保系统满足要求 在开始安装WebLogic之前,我们需要确保系统满足最低要求。首先,我们需要一个运行Jav
    的头像 发表于 12-05 14:55 2340次阅读

    宝塔面板Docker一键安装部署GPTAcademic,开发私有GPT学术优化工具

    人工智能的浪潮中,GPT模型因其强大的自然语言处理能力备受瞩目。然而,为了更好地应用于学术领域,许多人希望能部署自己私有的GPT学术优化工具。本文将详细介绍如何通过宝塔面板和Docker一键
    的头像 发表于 07-02 11:58 2581次阅读
    宝塔面板Docker一键<b class='flag-5'>安装</b>:<b class='flag-5'>部署</b>GPTAcademic,开发私有GPT学术优化<b class='flag-5'>工具</b>