stress工具使用指南和结果分析

0.1152019.05.13 09:17:35字数 547阅读 1,112

#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 显示版本号
-v, --verbose be verbose
#-q 不显示运行信息
-q, --quiet be quiet
#-n 显示已完成的指令情况
-n, --dry-run show what would have been done
#-t --timeout N 指定运行N秒后停止
#--backoff N 等待N微妙后开始运行
-t, --timeout N timeout after N seconds
--backoff N wait factor of N microseconds before work starts
#-c 产生n个进程 每个进程都反复不停的计算随机数的平方根
-c, --cpu N spawn N workers spinning on sqrt()
#-i 产生n个进程 每个进程反复调用sync(),sync()用于将内存上的内容写到硬盘上
-i, --io N spawn N workers spinning on sync()
#-m --vm n 产生n个进程,每个进程不断调用内存分配malloc和内存释放free函数
#--vm-bytes B 指定malloc时内存的字节数 (默认256MB)
#--vm-hang N 指定在free钱的秒数
-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 --hadd n 产生n个执行write和unlink函数的进程
#-hadd-bytes B 指定写的字节数
#--hadd-noclean 不unlink
-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 #时间单位可以为秒s,分m,小时h,天d,年y,文件大小单位可以为K,M,G
Note: Numbers may be suffixed with s,m,h,d,y (time) or B,K,M,G (size).

stress cpu 测试

stress测试cpu,是在用户态将cpu 耗尽。

[root@jiangyi01.sqa.zmf /home/ahao.mah/ALIOS_QA/tools/stress-1.0.4]
#stress -c 1 -t 100
stress: info: [17223] dispatching hogs: 1 cpu, 0 io, 0 vm, 0 hdd
 
image.png

stress io 测试

使用stress测试IO,虽然可以创建任意数量的IO进程,但是,可以将 %sys 100%。因为,stress是通过循环执行sync(),使得内核态cpu 100%,但是,stress,没有把w_await svctm 的比例打的很高。

[root@jiangyi01.sqa.zmf /home/ahao.mah/ALIOS_QA/tools/stress-1.0.4]
#stress --io 100 -t 100
stress: info: [130998] dispatching hogs: 0 cpu, 100 io, 0 vm, 0 hdd
[root@jiangyi01.sqa.zmf /home/ahao.mah/gotby/C/c4]
#ps axu | grep stress |grep -v grep | wc -l
101
 
image.png
 
image.png

stress mem测试

stress 测试内存的时候,--vm-bytes 1G --vm-hang 100 这里2个参数是关键!!!!
--vm-bytes 表示malloc分配多少内存
--vm-hang 表示malloc分配的内存多少时间后在free()释放掉
--vm 指定进程数量

下面例子,就是说,10个进程,同时去malloc分配内存,并且保持100s后再释放内存

[root@jiangyi01.sqa.zmf /home/ahao.mah/ALIOS_QA/tools/stress-1.0.4]
#stress --vm 10 --vm-bytes 1G --vm-hang 100 --timeout 100s
stress: info: [32286] dispatching hogs: 0 cpu, 0 io, 10 vm, 0 hdd
[root@jiangyi01.sqa.zmf /home/ahao.mah/ALIOS_QA/tools/stress-1.0.4]
#echo "63709272/1024/1024" |bc
60
 
image.png
 
image.png
[root@jiangyi01.sqa.zmf /home/ahao.mah/ALIOS_QA/tools/stress-1.0.4]
#stress --vm 30 --vm-bytes 1G --vm-hang 50 --timeout 50s
stress: info: [44047] dispatching hogs: 0 cpu, 0 io, 30 vm, 0 hdd
 
image.png
 
image.png

stress 磁盘IO测试

注意: 我是在/data 目录,这个目录挂载的是raid,总大小:17T

-d forks
--hdd forks 产生多个执行write()函数的进程
--hdd-bytes bytes 指定写的Bytes数,默认是1GB
--hdd-noclean 不要将写入随机ASCII数据的文件Unlink
eg:stress -d 1 --hdd-bytes 3G

解释:-d 1:一个写进程。写入固定大小通过mkstemp()函数写入当前目录;你也可以指定向磁盘中写入固定大小的文件
这个文件通过调用mkstemp()产生并保存在当前目录下,默认是文件产生后就被执行unlink(清除)操作,
但是你可以使用“--hdd-bytes”选项将产生的文件全部保存在当前目录下,这会将你的磁盘空间逐步耗尽。
0

当只有一个进程在写:

[root@jiangyi01.sqa.zmf /data]
#stress --hdd 1 --hdd-bytes 1024G
stress: info: [130229] dispatching hogs: 0 cpu, 0 io, 0 vm, 1 hdd
 
image.png

测试,提高进程数量为5:

[root@jiangyi01.sqa.zmf /data]
#stress --hdd 5 --hdd-bytes 1024G
stress: info: [26847] dispatching hogs: 0 cpu, 0 io, 0 vm, 5 hdd
 
image.png
[root@jiangyi01.sqa.zmf /data]
#stress --hdd 10 --hdd-bytes 1024G
stress: info: [31912] dispatching hogs: 0 cpu, 0 io, 0 vm, 10 hdd
[root@jiangyi01.sqa.zmf /home/ahao.mah]
#ps axu | grep stress | grep -v grep
root 31912 0.0 0.0 7264 652 pts/0 S+ 13:13 0:00 stress --hdd 10 --hdd-bytes 1024G
root 31913 13.9 0.0 8164 1120 pts/0 D+ 13:13 0:06 stress --hdd 10 --hdd-bytes 1024G
root 31914 14.5 0.0 8164 1120 pts/0 D+ 13:13 0:07 stress --hdd 10 --hdd-bytes 1024G
root 31915 14.5 0.0 8164 1120 pts/0 D+ 13:13 0:07 stress --hdd 10 --hdd-bytes 1024G
root 31916 14.1 0.0 8164 1120 pts/0 D+ 13:13 0:07 stress --hdd 10 --hdd-bytes 1024G
root 31917 13.9 0.0 8164 1120 pts/0 D+ 13:13 0:06 stress --hdd 10 --hdd-bytes 1024G
root 31918 14.0 0.0 8164 1120 pts/0 D+ 13:13 0:07 stress --hdd 10 --hdd-bytes 1024G
root 31919 13.8 0.0 8164 1120 pts/0 D+ 13:13 0:06 stress --hdd 10 --hdd-bytes 1024G
root 31920 13.9 0.0 8164 1120 pts/0 D+ 13:13 0:06 stress --hdd 10 --hdd-bytes 1024G
root 31921 13.9 0.0 8164 1120 pts/0 D+ 13:13 0:06 stress --hdd 10 --hdd-bytes 1024G
root 31922 14.0 0.0 8164 1120 pts/0 D+ 13:13 0:07 stress --hdd 10 --hdd-bytes 1024G
 
image.png

结论:

可见,--hdd 进程数量,并不是一个干扰因素,这个stress对写磁盘的速度并没有一个控制,直接用最大的压力测试出瓶颈,当瓶颈到达了,进程多几个也是没有什么用,这个估计也是stress的不足之处。
w_await 和svctm 基本一致,说明等待时间和服务时间基本相等。

 

stress工具使用指南和结果分析(好好好测试通过)的更多相关文章

  1. stress工具使用指南和结果分析

    stress介绍 #stress `stress' imposes certain types of compute stress on your system Usage: stress [OPTI ...

  2. C#最佳工具集合:IDE、分析、自动化工具等

    C#是企业中广泛使用的编程语言,特别是那些依赖微软的程序语言.如果您使用C#构建应用程序,则最有可能使用Visual Studio,并且已经寻找了一些扩展来对您的开发进行管理.但是,这个工具列表可能会 ...

  3. AutoConfig工具使用指南

    转载:http://blog.csdn.net/fighterandknight/article/details/70245905 13.1. 需求分析 13.1.1. 解决方案 13.2. Auto ...

  4. 性能工具之stress工具使用教程(带源码说明)

      stress是一个在linux下的压力测试小工具. 我看到有些人用这个工具来描述一些资源耗尽的场景,也有人用它来做混沌测试中.请使用者要注意,这个工具并不是模拟业务问题的,是模拟系统级问题的.所以 ...

  5. 使用COSBench工具对ceph s3接口进行压力测试--续

    之前写的使用COSBench工具对ceph s3接口进行压力测试是入门,在实际使用是,配置内容各不一样,下面列出 压力脚本是xml格式的,套用UserGuide文档说明,如下 有很多模板的例子,在co ...

  6. Chrome开发者工具使用指南

    前言 工欲善其事,必先利其器. 在前端工作中,我们常常使用到Chrome开发者工具去做各种各样的事情. 但是您真的了解这些开发者工具吗? 官方文档还是挺详细的:chrome-devtools文档. 但 ...

  7. 【Android端 APP 内存分析】使用工具进行APP的内存分析

    Android端可以通过adb 命令直接获取内存信息,当然Android studio也提供了对内存的监控分析工具,并且后续可以结合MAT做分析 今天介绍的是通过Android studio和MAT工 ...

  8. 【教程】手把手教你如何利用工具(IE9的F12)去分析模拟登陆网站(百度首页)的内部逻辑过程

    [前提] 想要实现使用某种语言,比如Python,C#等,去实现模拟登陆网站的话,首先要做的事情就是使用某种工具,去分析本身使用浏览器去登陆网页的时候,其内部的执行过程,内部逻辑. 此登陆的逻辑过程, ...

  9. 使用Linux的命令行工具做简单的文本分析

    Basic Text Analysis with Command Line Tools in Linux | William J Turkel 这篇文章非常清楚的介绍了如何使用Linux的命令行工具进 ...

随机推荐

  1. 生产中使用ssh-copy-id复制公钥到多台服务器

    在系统运维的时候,可能免密码通过ssh方式登录到远程主机,这时就首先需要将本机的公钥复制到远程主机,用 ssh-copy-id 命令可以轻松做到. 对于单台远程主机,直接使用命令就可以了 # 生成密钥 ...

  2. JS基础学习第六天

    数组(Array) 数组也是一个对象,它和普通的对象一样,也是用来存储一些值的,不同的是普通对象是使用字符串作为属性名的,而数组使用数字作为索引来操作元素数组的存储性能比普通对象好,再开发中我们经常使 ...

  3. 201871030114-蒋鑫 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    项目 内容 课程班级博客链接☛ 班级博客 这个作业要求链接☛ 作业要求 我的课程学习目标☛ 1. 体验软件项目开发中的两人合作,练习结对编程(Pair programming).2. 掌握Github ...

  4. C#补位函数PadLeft和PadRight

    左边补位 PadLeft 用法: string str = "100"; str.PadLeft(5,'0') 输出:00100 右边补位 PadRight 用法: str.Pad ...

  5. OOUnit1Summary

    一.前三次作业内容分析 前言 第一单元的作业以表达式求导为主题,分三次要求逐步增加,难度逐步提高.这三次作业下来,本人既有收获,也有遗憾,因此通过接下来的内容对我这三次作业进行分析和总结,希望能能为我 ...

  6. 2021年HW0day-奇安信 网康下一代防火墙 RCE漏洞细节

    漏洞信息: 漏洞名称:奇安信 网康下一代防火墙 RCE漏洞. 漏洞性质:远程命令执行 漏洞利用特点:命令执行之后没有回显 利用方式:防火墙使用linux进行开发的,可以使用echo xxx >1 ...

  7. Semaphore自白:限流器用我就对了!

    大家好,我是 Semaphore,我的中文名字叫"信号量",我来自 JUC(java.util.concurrent)家族. 我们家族有很多优秀的成员,比如:CountDownLa ...

  8. unzip解压中文乱码

    1 问题描述 直接 unzip xxx.zip 乱码,肯定是编码问题了不用问.但是unzip没有指定编码的选项: 网上的解决方案如下: unzip -O GBK/GB18030CP936 xx.zip ...

  9. Floyd算法C++实现与模板题应用

    简介 Floyd算法算是最简单的算法,没有之一. 其状态转移方程如下map[i , j] =min{ map[i , k] + map[k , j] , map[i , j] }: map[i , j ...

  10. L'ane Trotro(小驴托托) 67集法语字幕+11集无字幕 百度云

    <小驴托托>(L'ane Trotro)是法国经典的少儿动画片,讲述了小驴托托的生活,它的对白浅显易懂,非常适合法语初学者培养语感以及学习日常表达. 百度云链接自取:https://pan ...