CentOS7的EPEL源包含了2个压力测试工具,一个是标准的stress,另一个是其升级版stress-ng

stress可以在linux系统下生成CPU/Memory/IO/Disk负载,经常用于异常进程模拟平均负载升高的场景

一、安装

yum install -y epel-release.noarch && yum -y update
yum install -y stress stress-ng

二、stress

2.1 参数说明

直接运行stress就会列出关于stress的简单说明

  • -?
    显示帮助信息
  • -v
    显示版本号
  • -q
    不显示运行信息
  • -n
    --dry-run显示已经完成的指令执行情况
  • -t
    --timeout N指定运行N秒后停止
    --backoff N等待N微秒后开始运行
  • -c
    --cpu产生n个进程 每个进程都反复不停的计算随机数的平方根
  • -i
    --io 产生n个进程 每个进程反复调用sync(),sync()用于将内存上的内容写到硬盘上
  • -m
    --io forks产生多个处理sync()函数的磁盘I/O进程
    --vm n产生n个进程,每个进程不断调用内存分配malloc和内存释放free函数
    --vm-bytes B指定malloc时内存的字节数(默认256MB)
    --vm-hang N指示每个消耗内存的进程在分配到内存后转入休眠状态,与正常的无限分配和释放内存的处理相反,这有利于模拟只有少量内存的机器
  • -d
    --hadd n产生n个执行write和unlink函数的进程
    --hadd-bytes B指定写的字节数,默认是1GB
    --hadd-noclean不要将写入随机ASCII数据的文件unlink,则写入的文件不删除,会保留在硬盘空间

2.2 使用示例

2.2.1 对CPU进行压力测试

使用stress -c N让stress生成N个工作进程进行开方运算,以此对CPU产生负载

比如若CPU有四个核,那么可以运行

stress -c 4
  • 查看资源使用情况

  • 查看stress进程信息
ps -elf |grep stress |grep -v grep

结果如下:

发现一共有5个stress进程,其中有4个进程是28308进程派生出来的工作进程,而且每个工作进程占用的CPU利用率都接近100%

2.2.2 对内存进行压力测试

使用stress -m N让stress生成N个工作进程来占用内存,每个进程默认占用256M内存,但可以通过--vm-bytes进行设置

stress -m 5 --vm-bytes 500M

执行以上命令生成5个进程,每个进程占用500M内存

  • 查看资源使用情况

  • 查看stress进程信息
ps -elf |grep stress |grep -v grep

结果如下:

显然生成5个进程,每个进程占用500M内存

但是通过dstat可以发现,其实总占用内存并未2.5G,而且虽然只是对内存进行压力测试,但实际上CPU也是很繁忙的,占有率60%

2.2.3 对磁盘进行压力测试

对磁盘压力测试有两个参数:

  • stress -i N
    产生N个进程,每个进程反复调用sync()将内存上的内容写到硬盘上.
  • stress -d N
    产生N个进程,每个进程往当前目录中写入固定大小的临时文件,然后执行unlink操作删除该临时文件
    临时文件的大小默认为1G,但可以通过--hdd-bytes设置临时文件的大小
stress -i 2 -d 4 --hdd-bytes 512M
  • 执行操作
[root@localhost21 ~]# df -h .
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   50G   38G   13G   76% /[root@localhost21 ~]# stress -i 2 -d 4 --hdd-bytes 512M &
[1] 20101
[root@localhost21 ~]# stress: info: [20101] dispatching hogs: 0 cpu, 2 io, 0 vm, 4 hdd[root@localhost21 ~]# df -h .
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   50G   36G   11G   78% /

可以发现压力测试时,当前目录所在可用空间少了2G

2.2.4 同时对多项指标进行压力测试

stress支持同时对多个指标进行压力测试,只需要把上面的参数组合起来就行

stress -c 4 -m 2 -d 1
  • 查看stress进程
ps -elf |grep stress |grep -v grep

结果如下:

可以发现工作进程一共有7个,也就是说每个进程只负责一项测试

2.2.5 设置超时时间

通过-t TIMEOUT可以让stress只运行一段时间后自动退出,一般使用在写脚本的时候

stress -c 4 -m 2 -d 1 -t 10s
stress: info: [19302] dispatching hogs: 4 cpu, 0 io, 2 vm, 1 hdd
stress: info: [19302] successful run completed in 11s

运行上面的测试,10秒后自动退出

三、stress-ng

接下来看看stress的升级版stress-ng的使用,可以查看stress-ng的源码

stress-ng完全兼容stress, 并且在此基础上通过几百个参数,可以产生各种复杂的压力

3.1 参数说明

-c N:运行N worker CPU压力测试进程
--cpu-method all:worker从迭代使用30多种不同的压力算法,包括pi, crc16, fft等等
-tastset N:将压力加到指定核心上
-d N:运行N worker HDD write/unlink测试
-i N:运行N worker IO测试

3.2 使用示例

  • 产生2个worker做圆周率算法压力
stress-ng -c 2 --cpu-method pi
  • 产生2个worker从迭代使用不同的压力算法

30多种不同的压力算法,包括pi, crc16, fft等

stress-ng -c 2 --cpu-method all
  • 产生2个worker调用socket相关函数产生压力
stress-ng --sock 2
  • 产生2个worker读取tsc产生压力
stress-ng --tsc 2
  • 将压力指定到特定的cpu上

除了能够产生不同类型的压力,比如将压力指定到cpu 0,2,3,6

stress-ng --sock 4 --taskset 0,2-3,6

【linux】系统压力模拟工具stress相关推荐

  1. linux系统压力测试工具,Linux压力测试工具stress如何使用

    下载安装stress1apt install stress stress工具使用 先介绍下stress的命令参数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 ...

  2. 免费的系统压力测试方法/工具有哪些?企业如何做好软件压力测试

    对于很多企业测试人员来说,在做软件压力测试工作时,压力测试方法/工具不在乎多与少,而在于是否能够满足自己的产品检测需求,能够派上用处的压力测试工具就是好工具.那么好用的压力测试方法/工具有哪些,企业如 ...

  3. linux的du和df命令,du和df命令都是Linux系统的重要工具

    在本文中,我将讨论du和df命令.du和df命令都是 Linux 系统的重要工具,来显示 Linux 文件系统的磁盘使用情况.这里我们将通过一些例子来分享这两个命令的用法. du 命令 du(disk ...

  4. Linux系统IO分析工具之iotop常用参数介绍

      Linux系统IO分析工具之iotop常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在一般运维工作中经常会遇到这么一个场景,服务器的IO负载很高(iostat中的 ...

  5. Buildroot stress-ng Linux系统压力测试

    /*********************************************************************** Buildroot stress-ng Linux系统 ...

  6. linux 修改bios信息,一种基于Linux系统通过IPMI工具修改BIOS选项的测试方法及系统_2017103901253_权利要求书_专利查询_专利网_钻瓜专利网...

    1.一种基于Linux系统通过IPMI工具修改BIOS选项的测试方法,其特征在于: 步骤101,启用IPMI服务: 步骤102,BIOS Setup选项使能设置: 步骤103,修改BIOS选项当前值与 ...

  7. 【全志T113-S3_100ask】15-2 linux系统gpio模拟spi驱动屏幕——ILI9341

    [全志T113-S3_100ask]15-2 linux系统gpio模拟spi驱动屏幕--ILI9341 背景 (一)查阅参考文档 (二)使能内核模块 (三)修改设备树 (四)测试 (五)后语 背景 ...

  8. wget - Linux系统下载文件工具

    wget - Linux系统下载文件工具 Linux系统下载文件工具 补充说明 wget命令 用来从指定的URL下载文件.wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强 的适应性,如果是由 ...

  9. Linux系统上hdparm工具参数详解,硬盘检查、测速、设定和优化

    Linux系统上hdparm工具参数详解,硬盘检查.测速.设定和优化 2012/07/25 hdparm, 硬盘 Linux命令相关 1 6,757 hdparm的功能:显示与设定硬盘的参数.hdpa ...

  10. 2.1 Linux系统服务器管理工具使用教程(Xshell 6篇)

    Linux系统远程管理工具使用教程(Xshell 6篇) 1. 本地电脑安装xshell 2. 新建连接 3. 配置信息 1. 本地电脑安装xshell 首先下载Xshell到本地电脑,下载Xshel ...

最新文章

  1. Android下的Linux
  2. opus android编译,Mac系统opus Android编译集成
  3. TX2+python+pytorch install
  4. python读写、创建 文件(一)
  5. 简单的线性回归实现模型的存储和读取
  6. .NET中的加密类(对称加密)
  7. Spring AOP/DI/IOC 简述及使用
  8. 大型网站应用之海量数据和高并发解决方案总结一二!
  9. 第二章 Jsp基本语法
  10. 数字IC手撕代码-格雷码的编码与解码
  11. pdf复制json不全的问题
  12. c语言输出整型量格式符,C语言输出格式(详细)
  13. 【学习笔记】揭秘阿里CDN核心技术
  14. 阿里云技术专家刘晨旭:阿里云对数据可靠性保障的一些思考
  15. python文档学习
  16. 动态规划-最少硬币组合问题(Java)
  17. python语言是 创造的_慢步python,如何用python语言创造出一个真正的独立exe程序?...
  18. 资源保障团队的设备维护人员的技能要求
  19. 爬虫进阶之多线程爬虫
  20. java实现象棋ai_中国象棋AI实现?

热门文章

  1. python: not found 问题的解决
  2. 今天吃什么随机网页_灵魂拷问:今天在西昌你想吃什么?
  3. 实现单片机通过传感器获取信息,并且将信息通过wifi模块发送信息给PC端,并在pyqt5界面上显示(PC端部分)
  4. Elasticsearch优化原理
  5. matlab直方图均衡化代码
  6. 国内好的破解软件下载站
  7. git操作是出现Username for 'https://github.com':的验证问题
  8. h5页面 请在微信客户端打开链接_使用Fiddler抓包解决“请在微信客户端打开链接”的问题...
  9. excel 引用方式A1引用和R1C1引用,相对引用、绝对引用以及混合引用
  10. python程序员工资高吗?