目录

(一) 基本语法

(二)安装 stress

(三)消耗 CPU 资源

(四)内存

(五)消耗 IO 资源

(六)压测磁盘及 IO


stress 命令主要用来模拟系统负载较高时的场景,本文介绍其基本用法。

(一) 基本语法

语法格式:
stress <options>常用选项:
-c, --cpu N                产生 N 个进程,每个进程都反复不停的计算随机数的平方根
-i, --io N                 产生 N 个进程,每个进程反复调用 sync() 将内存上的内容写到硬盘上
-m, --vm N                 产生 N 个进程,每个进程不断分配和释放内存--vm-bytes B           指定分配内存的大小--vm-stride B          不断的给部分内存赋值,让 COW(Copy On Write)发生--vm-hang N            指示每个消耗内存的进程在分配到内存后转入睡眠状态 N 秒,然后释放内存,    一直重复执行这个过程--vm-keep              一直占用内存,区别于不断的释放和重新分配(默认是不断释放并重新分配内存)
-d, --hadd N               产生 N 个不断执行 write 和 unlink 函数的进程(创建文件,写入内容,删 除文件)--hadd-bytes B         指定文件大小
-t, --timeout N            在 N 秒后结束程序
--backoff N                等待N微妙后开始运行
-q, --quiet                程序在运行的过程中不输出信息
-n, --dry-run              输出程序会做什么而并不实际执行相关的操作
--version                  显示版本号
-v, --verbose              显示详细的信息

(二)安装 stress

$ apt install stress
$ stress --version
stress 1.0.4

(三)消耗 CPU 资源

stress 消耗 CPU 资源的方式是通过调用 sqrt 函数计算由 rand 函数产生的随机数的平方根实现的。下面的命令会产生 4 个这样的进程不断的进行计算:

# stress -c 4
stress: info: [173448] dispatching hogs: 4 cpu, 0 io, 0 vm, 0 hdd

使用 top 命令查看 CPU 的状态如下(4颗CPU 满负荷运转):

(四)内存

下面的命令产生两个子进程,每个进程分配 300M 内存:

# stress --vm 2 --vm-bytes 300M --vm-keep
stress: info: [192465] dispatching hogs: 0 cpu, 0 io, 2 vm, 0 hdd# ps -aux|grep stress
root      192465  0.0  0.0   8244  1108 pts/17   S+   17:14   0:00 stress --vm 2 --vm-bytes 300M --vm-keep
root      192466 99.3  0.0 315448 307300 pts/17  R+   17:14   1:12 stress --vm 2 --vm-bytes 300M --vm-keep
root      192467 99.3  0.0 315448 307300 pts/17  R+   17:14   1:12 stress --vm 2 --vm-bytes 300M --vm-keep
父进程处于睡眠状态,两个子进程负责资源消耗。
  • --vm-keep:一直占用内存,区别于不断的释放和重新分配(默认是不断释放并重新分配内存)。
  • --vm-hang N:指示每个消耗内存的进程在分配到内存后转入睡眠状态 N 秒,然后释放内存,一直重复执行这个过程。

--vm-keep 和 --vm-hang 都可以用来模拟只有少量内存的机器,但是指定它们时 CPU 的使用情况是不一样的。

$ stress --vm 2 --vm-bytes 500M --vm-keep

一直在进行默认的 stride 操作,user 非常高(照理说cpu 在用户态应该忙碌,由于该设备内存较大,CPU核数较多,故产生的影响比较小)。

$ stress --vm 2 --vm-bytes 500M --vm-hang 5

上面这两种状态不断切换,使得和第一种情况相比负载会低很多。

  • --vm-stride B

不断的给部分内存赋值,让 COW(Copy On Write)发生。只要指定了内存相关的选项,这个操作就会执行,只是大小为默认的 4096。赋值内存的比例由参数决定:

for (i = 0; i < bytes; i += stride)ptr[i] = 'Z';           /* Ensure that COW happens.  */

bytes 为消耗的总内存大小,stride 为间隔。该参数会影响 CPU 状态 us 和 sy:

$ stress --vm 2 --vm-bytes 10G --vm-stride 64

$ stress --vm 2 --vm-bytes 10G --vm-stride 10M

为什么会产生这样的结果?原因是单独的赋值和对比操作可以让 CPU 在用户态的负载占到 99% 以上(由于该设备内存较大,CPU核数较多,故产生的影响比较小)。--vm-stride 值增大就意味着减少赋值和对比操作,这样就增加了内存的释放和分配次数(cpu在内核空间的负载)。
不指定 --vm-stride 选项就使用默认值是 4096,CPU 负载情况居于前两者之间:

$ stress --vm 2 --vm-bytes 10G

(五)消耗 IO 资源

下面的命令产生 4 个进程,每个进程都反复调用 sync 函数将内存上的内容写到硬盘上:

$ stress -i 4stress: info: [247008] dispatching hogs: 0 cpu, 4 io, 0 vm, 0 hdd

使用 top 命令查看 CPU 的状态如下:

sy 升高。

(六)压测磁盘及 IO

下面的命令创建一个进程不断的在磁盘上创建 10M 大小的文件并写入内容:

# stress -d 10 --hdd-bytes 100Mstress: info: [257659] dispatching hogs: 0 cpu, 0 io, 0 vm, 10 hdd

使用 top 命令查看 CPU 的状态如下(此时的 CPU 主要消耗在内核态):

Linux stress相关推荐

  1. linux stress 命令 模拟系统高负载

    stress 命令主要用来模拟系统负载较高时的场景,本文介绍其基本用法.文中 demo 的演示环境为 ubuntu 18.04. 基本语法 语法格式: stress <options> 常 ...

  2. linux stress 工具,Linux压力测试工具stress的参数详解

    为了测试根据服务器的负载情况,给大家推荐下stress这个压力测试工具,具体安装方式就不说了,本文主要介绍下stress的命令参数,大家可以在环境上验证测试下. 参数说明: -? 显示帮助信息 -v ...

  3. Java 9:Process API的增强

    Java 9对Process API进行了各种改进,用于控制和管理操作系统进程. 获取有关流程的信息 有一个新的ProcessHandle类,提供了进程的pid,父级和后代,以及有关开始时间和累积CP ...

  4. Java 9:对Process API的增强

    Java 9对Process API进行了各种改进,用于控制和管理操作系统进程. 获取有关流程的信息 有一个新的ProcessHandle类,提供了进程的pid,父级和后代,以及有关开始时间和累积CP ...

  5. Stress命令Linux性能测试,压力测试工具(Centos演示)

    Stress命令Linux性能测试,压力测试工具 1.模拟一颗cpu打满 stress -c 2 (见如下图:使用htop或者top查看想打满几颗cpu就输入,对应数字即可) 2.模拟产生2个进程,每 ...

  6. imx53 uboot tftp nfs启动, linux tftp,复制gdb, linux host 创建sd卡启动,ddr stress tester

    生成uImage,在ltib编译的目录 rootfs/boot下:sudo mkimage -A arm -O linux -T kernel -C none -a 0x70008000 -e 0x7 ...

  7. Linux性能优化——stress压力测试工具

    简介 stress是Linux的一个压力测试工具,可以对CPU.Memory.IO.磁盘进行压力测试. 请使用者要注意,这个工具并不是模拟业务问题的,是模拟系统级问题的.所以用它来模拟的时候,和业务真 ...

  8. stress内存在linux测试结果,Linux压力测试软件Stress安装及使用指南

    一.Stress是什么 stress是一个linux下的压力测试工具,专门为那些想要测试自己的系统,完全高负荷和监督这些设备运行的用户. 二.安装 将stress的安装包上传并解压到linux服务器的 ...

  9. stress linux 下压力测试工具

    stress介绍 stress 是Unix类系统下的工作量和压力测试工具.它可对用户指定的CPU数量的I/O,内存和硬盘进行负载并报告它检测到任何错误. stress 下载.安装 下载 wget ht ...

  10. Linux性能测试工具 stress,stress-ng,sysbench,fio以及检测dstat

    一.什么是dstat? 通过man帮助,可以看到官方对dstat的定义为:多功能系统资源统计生成工具( versatile tool for generating system resource st ...

最新文章

  1. Python的设计定位
  2. android里的editText怎么用,Android自定义控件EditText使用详解
  3. C/C++之变长数组(VLA)和可伸缩型数组成员
  4. 转载一篇开源http服务器(C语言)
  5. 不要把游戏当游戏,要把游戏当明星
  6. linux日志中显示skipping,linux推荐使用logrotate自动管理日志文件
  7. Win10_MySQL环境搭建以及Navicat的使用全解
  8. leetcode 剑指 Offer 05. 替换空格
  9. wget下载一个目录下的文件
  10. 什么90%的人,自学python都不能学会,原来问题出在这,赶紧看看!
  11. 【Flink】Apache Flink 1.13.0 正式发布,流处理应用更加简单高效
  12. lucene案例demo
  13. 【硬件】存储的RAID技术详解
  14. u盘安装linux6.5教程,u盘安装CentOS6.5
  15. 2020年考研数学一解析.pdf
  16. 问卷调查报告html,问卷调查报告格式
  17. 查看正在运行docker容器的启动命令
  18. Python-F.softmax(dim)中dim使用理解
  19. SONET和SDH技术简介
  20. office 365 excel 遇到问题 需要修复

热门文章

  1. Ubuntu Vmware虚拟机网络配置(一)
  2. scrum敏捷开发、敏捷测试,快速迭代实践
  3. shell脚本shc加密解密
  4. store buffer and invalidate queues
  5. 微信公众号文章怎么制作?
  6. 可视化常用效果,js+css 实现人物百分比、象形图
  7. H5网页去除苹果手机底部白边
  8. 又一程序员删库跑路!
  9. 算数平均数、中位数、众数和几何平均数
  10. 计算机 无法自检,电脑开机不能自检是什么原因 电脑不能完成自检解决办法