stress命令

stress命令是一个常用的压测工具
常用参数解析:

 -t, --timeout N 超时时间,指定stress执行多长时间-c, --cpu N  启动N个线程执行开方操作,目的就是把这N个核跑满-i, --io N  启动N个线程执行sync()操作刷磁盘-m, --vm N 启动N个线程执行malloc()/free()操作,分配和回收内存--vm-bytes B 指定malloc字节数,默认245M--vm-hang N 消耗内存后睡眠多少秒-d, --hdd N 启动N个线程执行 write()/unlink()操作--hdd-bytes 每个线程写的数据量

举例
启动8个cpu线程 4个io刷新线程,2个内存消耗线程,每个消耗128M内存,持续10s

 stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 10s

pidstat命令

pidstat是一个查看进程CPU、内存、磁盘IO消耗的命令

pidstat  [ -d ] [ -h ] [ -I ] [ -l ] [ -r ] [ -s ] [ -t ] [ -U [ username ] ] [ -u ] [ -V ][ -w ] [ -C comm ] [ -p { pid [,...] | SELF | ALL } ] [ -T { TASK |  CHILD  |  ALL  }  ] [ interval [ count ] ]
后面两个参数是interval代表采集周期,count代表报告的次数,如果不设置将会一直输出。-u:默认的参数,显示各个进程的cpu使用统计-d:监控I/O-p:指定进程号,如果是ALL代表所有,如果不指定则只显示活动的进程,这里需要特殊注意。-r:显示各个进程的内存使用统计-w:显示每个进程的上下文切换情况

对于CPU输出

  • %usr:进程在用户空间占用cpu的百分比
  • %system:进程在内核空间占用cpu的百分比
  • %guest:进程在虚拟机占用cpu的百分比
  • %CPU:进程占用cpu的百分比
  • CPU:处理进程的cpu编号
  • Command:当前进程对应的命令

对于内存输出:

  • VSZ:虚拟地址大小,代表虚拟内存的使用,只要是进程申请过的内存,即便还没有真正分配物理内存,也会计算在内
  • RSS:常驻集合大小,代表进程实际使用的物理内存大小,但不包括 Swap 和共享内存
  • %MEM:物理内存利用率

对于磁盘输出:

kB_rd/s:每秒从磁盘读取的KB
kB_wr/s:每秒写入磁盘KB

下面通过一个简单的例子串讲一下这两个命令如何使用

先测试一个CPU,启动4个线程进行开方运算
#  stress --cpu 4 --timeout 600
在另一个中断执行pidstat输出5每隔5s的监控采集,输出1组
# pidstat -u 5 1
Average:      UID       PID    %usr %system  %guest    %CPU   CPU  Command
Average:        0     15338   99.60    0.00    0.00   99.60     -  stress
Average:        0     15339   99.01    0.00    0.00   99.01     -  stress
Average:        0     15340   99.80    0.00    0.00   99.80     -  stress
Average:        0     15341   99.80    0.00    0.00   99.80     -  stress
可以看到4个CPU都已经被stress命令打满,当然通过top命令可以查看下面测试一个内存的例子
# stress --vm 2 --vm-bytes 1280M --vm-keep  --timeout 600s
# pidstat -p ALL  -r 5 1|grep stress
Average:      UID       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
11:09:13 AM     0     27721      0.00      0.00 1318032 1310936   4.00  stress
11:09:13 AM     0     27722      0.00      0.00 1318032 1310936   4.00  stress
由于为设置释放内存,所以内存的指标不会变化,这里一定要加上ALL否则无法查询,因为当内存不释放时,stress处于非活动状态,无法显示再测试一个磁盘的性能
#  stress -d 2  --timeout 600s
# pidstat   -d 3
Average:      UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
Average:        0      3493      0.00 717464.47 689852.63  stress
Average:        0      3494      0.00 745492.11 689852.63  stress
启动两个线程写磁盘,磁盘写性能700M/s,普通顺序写500M/s的磁盘怎么会这么高呢,因为此时写内存缓存,linux通过writeback机制写入磁盘。所以才有这么高的性能。那如何直接测试磁盘呢?
# dd if=/dev/zero of=a bs=30M  count=200 oflag=direct
通过dd直接写磁盘跳过内存
Average:      UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s  Command
Average:        0     24222      0.00 368152.38      0.00  dd

磨刀不误砍柴工(1)stress 和 pidstat相关推荐

  1. linux 测试端口连通性_磨刀不误砍柴工,带你搞定云网络系统性能测试

    磨刀不误砍柴工,带你搞定云网络系统性能测试 一.前言 在部署或管理网络系统时,我们更多的是关心网络的连通性,而对于其整体的性能往往考虑不多,或者即使考虑到性能.异常或稳定性的问题,但却发现没有合适的手 ...

  2. 磨刀不误砍柴工——数据准备的过程与实践

      众所周知,我们常用"磨刀不误砍柴工"来比喻要办成一件事,不一定要立即着手干活,而是先要进行一些筹划和安排,充分做好准备工作,创造出有利条件,这样不但不会浪费时间,反而会大大提高 ...

  3. 磨刀不误砍柴工-----为提升自己找到一个平衡点

    作为一名软件开发人员,你该如何磨快你的锯子? "磨锯子"实际上是一个代名词,泛指一切编程以外的活动(不必编写代码),而这些活动(理论上来说)能使你成为一名更出色的程序员.这个词源自 ...

  4. [浪风分享]很简单的查看电脑所支持的最大内存的方法--磨刀不误砍柴工

    硬件+操作系统====决定支持的最大内存 在开始---运行处输入cmd(或者按住winkdy+R键输入CMD),打开命令窗口,输入wmic memphysical get maxcapacity然后回 ...

  5. 制作短视频需注意的三个要点,做好计划再制作,磨刀不误砍柴工

    制作短视频需注意的三个要点,做好计划再制作,磨刀不误砍柴工 俗话说得好,磨刀不误砍柴工,做短视频也是如此.我们在制作短视频之前,还应当注意到三个要点,并做好准备,只有提前做好了制作短视频的准备,我们才 ...

  6. 磨刀不误砍柴工 —— 自己动手写操作系统 入门导引

    磨刀不误砍柴工 刺猬@http://blog.csdn.net/littlehedgehog <自己动手写操作系统>其实阅读所需要的前提不过只是C和汇编了,里面涉及到很多操作系统的东西.于 ...

  7. 磨刀不误砍柴工 ——《自己动手写操作系统》入门导引

    磨刀不误砍柴工 刺猬@http://blog.csdn.net/littlehedgehog <自己动手写操作系统>其实阅读所需要的前提不过只是C和汇编了,里面涉及到很多操作系统的东西.于 ...

  8. 磨刀不误砍柴工!vs2010快捷键大全

    最常用的快捷键: VS2012变化的快捷键: 注释::VS2010是(Ctrl+E,C),VS2012是(Ctrl+K, Ctrl+C),实际操作,按住Ctrl键不放,先按K键,再按C键.相当于Ctr ...

  9. 磨刀不误砍柴工-git新手教程

    先说一点题外话 作为一个初入行业的菜鸡,在工作一年的这个阶段才开始使用代码托管,感到很惭愧.不过今天惭愧不是重点,重点是我在这里想讲一下关于使用git的好处.一些常用的方法和一些常见的问题. 不管是在 ...

  10. 磨刀不误砍柴工—Exceptionless搭配log4net记录日志

    Exceptionless专注于.net平台提供实时错误和日志报告.主要包括:错误通知.智能分组异常.详细错误报告堆栈跟踪.支持离线.UI查看重要错误和确定优先级.仪表板上的统计信息和趋势.对异常标记 ...

最新文章

  1. windows下安装服务注册Consul
  2. 电梯调度问题之需求分析
  3. 怎样实现登录用户管理_如何编写程序实现图书管理系统里面的用户管理功能
  4. 深度学习数据集中数据差异大_使用差异隐私来利用大数据并保留隐私
  5. linux中进程unit是什么意思,Linux系统之进程及服务的控制
  6. Leetcode每日一题:493.reverse-pairs(翻转对)
  7. 别等找工作时才明白:程序员只会敲代码是不行的!不看后悔!
  8. 【mybatis】 mybatis在mysql 更新update 操作 更新时间字段按照年月日时分秒格式 更新为当前时间...
  9. Mac基础知识:在mac上怎么使用程序坞
  10. 深度神经网络 分布式训练 动手学深度学习v2
  11. Java Map是否有序?
  12. 什么是VXLAN?VXLAN技术细节及应用案例
  13. 鸿蒙1004鸿蒙,第1004章 【两成】
  14. SpringBoot:上传图片到Linux服务器
  15. 2016 安全行业全景图——By 安全牛
  16. 生物特性再次助力无人机技术突破
  17. 用知识图谱打开梁山好汉一百单八将
  18. 腾讯云服务器从购买到搭建tomcat
  19. 紧跟时代步伐,朗强HDMI分布式矩阵可以通过手机来控制
  20. 最近在做的用户留存分析,和几种方法。

热门文章

  1. 2007年牛人牛语录
  2. 网站数据被入侵怎么办 如何防止网站数据库被攻击 被篡改
  3. 运营必备 - PV、UV、IP 分别是什么意思?
  4. 2020数学建模C题摘要
  5. 功率因数 matlab,基于MATLAB的有源功率因数校正器设计
  6. HDLBits练习——Exams/ece241 2013 q7
  7. Node.JS全开源B2C商城
  8. 弘辽科技:刷单越来越不行了吗?
  9. 重磅发布 | 图像图形学发展年度报告【中国图象图形学报第6期综述专刊】
  10. 学习C++心得与值得一看的书