使用stress进行压力测试

使用stress进行压力测试stress介绍stress是一款压力测试工具,可以用它来对系统CPU,内存,以及磁盘IO生成负载。安装stressapt-getinstallstress使用stress直接运行stress就会列出关于stress的简单说明root@myy/root$stress-?`stress’imposescertaintypesofcomput…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

stress介绍

stress是一款压力测试工具,可以用它来对系统CPU,内存,以及磁盘IO生成负载。

安装stress

apt-get install stress

Jetbrains全家桶1年46,售后保障稳定

使用stress

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

root@myy /root $ stress -?
`stress' imposes certain types of compute stress on your system
 
Usage: stress [OPTION [ARG]] ...
 -?, --help         show this help statement
     --version      show version statement
 -v, --verbose      be verbose
 -q, --quiet        be quiet
 -n, --dry-run      show what would have been done
 -t, --timeout N    timeout after N seconds
     --backoff N    wait factor of N microseconds before work starts
 -c, --cpu N        spawn N workers spinning on sqrt()
 -i, --io N         spawn N workers spinning on sync()
 -m, --vm N         spawn N workers spinning on malloc()/free()
     --vm-bytes B   malloc B bytes per vm worker (default is 256MB)
     --vm-stride B  touch a byte every B bytes (default is 4096)
     --vm-hang N    sleep N secs before free (default none, 0 is inf)
     --vm-keep      redirty memory instead of freeing and reallocating
 -d, --hdd N        spawn N workers spinning on write()/unlink()
     --hdd-bytes B  write B bytes per hdd worker (default is 1GB)
Example: stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 10s
Note: Numbers may be suffixed with s,m,h,d,y (time) or B,K,M,G (size).
 
 
-? 显示帮助信息
-v 显示版本号
-q 不显示运行信息
-n,--dry-run 显示已经完成的指令执行情况
-t --timeout N 指定运行N秒后停止
   --backoff N 等待N微妙后开始运行
-c --cpu 产生n个进程 每个进程都反复不停的计算随机数的平方根
-i --io  产生n个进程 每个进程反复调用sync(),sync()用于将内存上的内容写到硬盘上
-m --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
    
时间单位可以为秒s,分m,小时h,天d,年y,文件大小单位可以为K,M,G

对CPU进行压力测试

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

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

stress -c 4

这是查看stress进程信息

ps -elf |grep stress |grep -v grep
~# ps -elf |grep stress |grep -v grep
0 S root      3540  2975  0  80   0 -  1819 -      15:12 pts/1    00:00:00 stress -c 4
1 R root      3541  3540 96  80   0 -  1819 -      15:12 pts/1    00:00:20 stress -c 4
1 R root      3542  3540 96  80   0 -  1819 -      15:12 pts/1    00:00:20 stress -c 4
1 R root      3543  3540 96  80   0 -  1819 -      15:12 pts/1    00:00:20 stress -c 4
1 R root      3544  3540 96  80   0 -  1819 -      15:12 pts/1    00:00:20 stress -c 4

 F :代表这个程序的旗标 (flag), 4 代表使用者为 super user
        S :代表这个程序的状态 (STAT),关于各 STAT 的意义将在内文介绍
        UID: 程序被该 UID 所拥有
        PID:process ID的缩写,也就进程号
        PPID  :process parent ID,父进程ID
        C: CPU 使用的资源百分比
        PRI :这个是 Priority (优先执行序) 的缩写
        NI :这个是 Nice 值
        ADDR: 这个是 kernel function,指出该程序在内存的那个部分。如果是个 running的程序,一般就是 "-"
        SZ :使用掉的内存大小
        WCHAN: 目前这个程序是否正在运作当中,若为 - 表示正在运作
        TTY: 登入者的终端机位置
        TIME: 使用掉的 CPU 时间。
        CMD:所下达的指令为何

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

对内存进行压力测试

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

stress -m 3 --vm-bytes 300M

会生成3个进程,每个进程占用300M内存

ps -elf |grep stress |grep -v grep
~# ps -elf |grep stress |grep -v grep
0 S root      3572  2975  0  80   0 -  1819 -      15:15 pts/1    00:00:00 stress -m 3 --vm-bytes 300M
1 R root      3573  3572 99  80   0 - 78620 -      15:15 pts/1    00:00:10 stress -m 3 --vm-bytes 300M
1 R root      3574  3572 99  80   0 - 78620 -      15:15 pts/1    00:00:10 stress -m 3 --vm-bytes 300M
1 R root      3575  3572 99  80   0 - 78620 -      15:15 pts/1    00:00:10 stress -m 3 --vm-bytes 300M
而且你会发现,虽然只是对内存进行压力测试,但实际上CPU也是很繁忙的,占有率也接近100%

对磁盘进行压力测试

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

stress -i N 会产生N个进程,每个进程反复调用sync()将内存上的内容写到硬盘上.

而 stress -d N 会产生N个进程,每个进程往当前目录中写入固定大小的临时文件,然后执行unlink操作删除该临时文件。 临时文件的大小默认为1G,但可以通过 --hdd-bytes 设置临时文件的大小。比如

stress -i 2 -d 4 

你会发现压力测试时,当前目录所在可用空间少了2G,如下所示:root@jd-privt-local-vm0:~# df -h .
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        20G  991M   18G   6% /
root@jd-privt-local-vm0:~# df -h .
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        20G  2.7G   17G  14% /

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

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

stress -c 4 -m 2 -d 1

这个时候你再看stress进程

ps -elf |grep stress |grep -v grep

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

设置超时时间

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

比如我想要运行上面的测试,但是10秒后自动退出,那么

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

参考:http://blog.lujun9972.win/blog/2018/05/06/%E4%BD%BF%E7%94%A8stress%E8%BF%9B%E8%A1%8C%E5%8E%8B%E5%8A%9B%E6%B5%8B%E8%AF%95/ 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/207469.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 磁盘管理不显示新硬盘_动态磁盘改为基本磁盘

    磁盘管理不显示新硬盘_动态磁盘改为基本磁盘文章目录一.磁盘简介1.磁盘设备的命名2.磁盘的分区方式二.管理磁盘1.查看磁盘2.创建分区3.创建文件系统——格式化4.挂载(临时)5.查看挂载信息6.扩展分区7.交换分区Swap三.逻辑卷LVMLinux08:磁盘管理相关一.磁盘简介1.磁盘设备的命名CentOS 7中IDE(并口)SATA(串口)——目前更适用/dev/sda/dev/sdb/dev是一个专门存放设备的目录,s代表sata就是串口,d代表disk磁盘,a代表第一块,b代表第二块…2.磁盘的分区方式

    2022年8月9日
    3
  • 计算机发展史资料简介,计算机发展史简介「建议收藏」

    计算机发展史资料简介,计算机发展史简介「建议收藏」人类所使用的计算工具是随着生产的发展和社会的进步,有着从简单到复杂、从低级到高级的发展过程,计算工具相继出现了如算盘、计算尺、手摇机械计算机、电动机械计算机等。1946年,世界上第一台电子数字计算机(ENIAC)在美国诞生。这台计算机共用了18000多个电子管组成,占地170m2,总重量为30t,耗电140kw,速度达到每秒能进行5000次加法、300次乘法运算。电子计算机在短短的50多年里经过了…

    2022年10月18日
    0
  • 屏幕录制gif软件_手机录屏咋录内部声音

    屏幕录制gif软件_手机录屏咋录内部声音效果图如下:铜鼓录制屏幕的区域可以预览生成的GIF图片图片比较清晰源码中可以修改gif质量源码中可以修改gif帧数通过鼠标选择需要的区域FrmRectfrmRect=newFrmRect();frmRect.ShowDialog();m_rect=frmRect.Rect;label4.Text=”区域设定完成”;protec..

    2022年9月20日
    0
  • BGP实验(2)

    BGP实验(2)

    2021年4月12日
    147
  • 区块链|CAP原理[通俗易懂]

    区块链|CAP原理[通俗易懂]分布式系统(distributedsystem)正变得越来越重要,大型网站几乎都是分布式的。分布式系统的最大难点,就是各个节点的状态如何同步。CAP定理是这方面的基本定理,也是理解分布式系统的起点。一、分布式系统的三个指标ConsistencyAvailabilityPartitiontolerance它们的第一个字母分别是C、A、P。EricBrewer说,这三个指标不可能同时做到。这个结论就叫做CAP定理。二、Partitiontolerance先看Parti

    2022年5月19日
    80
  • 开源Fast R-CNN代码实现物体识别[通俗易懂]

    开源Fast R-CNN代码实现物体识别[通俗易懂]参考链接:https://blog.csdn.net/linolzhang/article/details/703060031.资源链接代码下载链接:https://github.com/CharlesShang/TFFRCNN训练好的网络下载链接: 在TFFRCNN-master下新建文件夹model,存放要下载入的net(参考Github下载地址),推荐下载: …

    2022年7月16日
    14

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号