目录

mpstat:关于CPU的详细信息,单独输出或者分组输出;

pidstat:关于运行中的进程/任务、CPU、内存等的统计信息;

1.模拟cpu密集型负载:

1.stress --cpu 1 --timeout 600:模拟对1个cpu增加压力,持续600s;

2.查看系统负载情况:watch -d uptime:

3. 监控所有cpu情况:mpstat -P ALL 5:每5s更新一组数据;

4.查看运行中的所有进程的cpu使用情况:pidstat -u 5 1:

5.找到原因:是因为stress进程产生压力过大.

2.模拟I/O密集型负载:

1.产生压力:stress -d 1 -t 600:

2.查看系统负载情况:watch -d uptime

3.查看各进程对cpu的使用情况:pidstat -u 1

4.查看系统cpu的总体使用情况:mpstat -P ALL 5

5.查看是哪个进程I/O读写高:pidstat -d 1 3(-d参数查看各进程io情况)

3.总结:

cpu使用率是单位时间内cpu繁忙情况的统计,跟系统平均负载不一定完全对应:

1.cpu密集型进程,使用大量cpu,会导致平均负载升高,此时cpu%和load average可对应关系;

2.I/O密集型进程,等待I/O也会导致load average升高,但cpu%使用率不一定高.

3.系统中存在大量等待cpu调度的进程,会使load average平均负载和cpu使用率都升高.


sysstat是一个软件包,包含监测系统性能及效率的一组工具,这些工具对于我们收集系统性能数据,比如:CPU 使用率、硬盘和网络吞吐数据,这些数据的收集和分析,有利于我们判断系统是否正常运行.

stress是Linux下的一个压力测试工具,可以对cpu、memory、IO以及磁盘进行压力测试,可以指定负载的cpu个数.

-c, --cpu N 产生 N 个进程,每个进程都反复不停的计算随机数的平方根
-i, --io N 产生 N 个进程,每个进程反复调用 sync() 将内存上的内容写到硬盘上
-m, --vm N 产生 N 个进程,每个进程不断分配和释放内存
-t, --timeout N 在 N 秒后结束程序
-d, --hadd N 产生 N 个不断执行 write 和 unlink 函数的进程(创建文件,写入内容,删除文件)

安装stress:yum install -y stress.

安装:yum install -y sysstat.

mpstat:关于CPU的详细信息,单独输出或者分组输出;

pidstat:关于运行中的进程/任务、CPU、内存等的统计信息;

-u 默认的参数,显示各个进程的CPU使用统计
-r 显示各个进程的内存使用统计
-d 显示各个进程的IO使用情况
-p 指定进程号
-w 显示每个进程的上下文切换情况
-t 显示选择任务的线程的统计信息外的额外信息
-T { TASK | CHILD | ALL }
这个选项指定了pidstat监控的。TASK表示报告独立的task,CHILD关键字表示报告进程下所有线程统计信息。ALL表示报告独立的task和task下面的所有线程。
注意:task和子线程的全局的统计信息和pidstat选项无关。这些统计信息不会对应到当前的统计间隔,这些统计信息只有在子线程kill或者完成的时候才会被收集。
-V:版本号
-h:在一行上显示了所有活动,这样其他程序可以容易解析。
-I:在SMP环境,表示任务的CPU使用率/内核数量
-l:显示命令名和所有参数

1.模拟cpu密集型负载:

1.stress --cpu 1 --timeout 600:模拟对1个cpu增加压力,持续600s;

2.查看系统负载情况:watch -d uptime:

初始信息:

产生压力后系统平均负载信息:

因为此处只模拟对1个cpu施压,1分钟内平均负载为1,说明系统此时过载.

3. 监控所有cpu情况:mpstat -P ALL 5:每5s更新一组数据;

初始信息:

产生压力后信息:

4.查看运行中的所有进程的cpu使用情况:pidstat -u 5 1:

每5s更新1次,只更新1次

初始信息:

产生压力后信息:显示用户态进程stress对cpu使用率为100%.

5.找到原因:是因为stress进程产生压力过大.

_____________________________________________________________________________

2.模拟I/O密集型负载:

1.产生压力:stress -d 1 -t 600:

模拟1个进程对disk做I/O操作,持续600s.

2.查看系统负载情况:watch -d uptime

显示最近1分钟系统过载(2cpu-->2.87)

排查:

3.查看各进程对cpu的使用情况:pidstat -u 1

显示未占用过多cpu调度

4.查看系统cpu的总体使用情况:mpstat -P ALL 5

显示cpu使用率低,但是%iowait高,表示cpu等待I/O读写进程,说明系统正在进行I/O操作.

5.查看是哪个进程I/O读写高:pidstat -d 1 3(-d参数查看各进程io情况)

此处可以看到是stress进程I/O高.

_____________________________________________________________________________

3.总结:

cpu使用率是单位时间内cpu繁忙情况的统计,跟系统平均负载不一定完全对应:

1.cpu密集型进程,使用大量cpu,会导致平均负载升高,此时cpu%和load average可对应关系;

2.I/O密集型进程,等待I/O也会导致load average升高,但cpu%使用率不一定高.

3.系统中存在大量等待cpu调度的进程,会使load average平均负载和cpu使用率都升高.

CPU分析系列--sysstat(mpstat+pidstat)分析系统CPU和I/O负载相关推荐

  1. java 多线程 cpu核数_java线程数设置和系统cpu的关系

    这里的cpu个数不是指系统的cpu总个数,也不是指cpu总核心数,而是指cpu的总逻辑处理单元即超线程的个数. IO密集型程序(如数据库数据交互.文件上传下载.网络数据传输等等)设置线程数为2倍的总逻 ...

  2. 国产软件CVE漏洞分析系列:泛微OA系统 漏洞编号:SSV-91661

    今天开始扒拉一下各种国产软件已经公布的漏洞,有些公司自己把漏洞保密起来,其实真是傻啦吧唧的,以为不让大家知道,漏洞就不存在吗!没办法,可能也是为了上市公司的股价吧.普通人对于漏洞的理解还是有点狼来了的 ...

  3. jQuery-1.9.1源码分析系列(四) 缓存系统

    先前在分析Sizzle的时候分析到Sizzle有自己的缓存机制,点击这里查看.不过Sizzle的缓存只是对内使用的(内部自己存,自己取).接下来分析jQuery可以对外使用的缓存(可存可取). 首先需 ...

  4. 11 | 套路篇:如何迅速分析出系统CPU的瓶颈在哪里?

    CPU 的性能指标那么多,CPU 性能分析工具也是一抓一大把,如果离开专栏,换成实际的工作场景,我又该观察什么指标.选择哪个性能工具呢? 不要担心,今天我就以多年的性能优化经验,给你总结出一个&quo ...

  5. 如何迅速分析出系统CPU的瓶颈在哪里?

    内容出自极客时间专栏<Linux 性能优化实战> CPU 的性能指标那么多,CPU 性能分析工具一抓一大把,换成实际的工作场景,该观察什么指标.选择哪个性能工具呢? 不要担心,今天我就以多 ...

  6. CPU使用率的查看以及性能分析(perf top/record/report)

    目录 CPU使用率 查看CPU使用率(top.pidstat解释) CPU使用率过高 perf top perf record 和 perf report CPU使用率 Linux通过/proc虚拟文 ...

  7. 因果分析系列1--入门

    因果分析系列1--入门 因果分析系列1--入门 因果简介 相关不是因果 基本符号定义 数值分析 偏差 图解偏差 因果分析系列1–入门 因果简介 目前机器学习非常擅长回答预测问题.新的人工智能浪潮并未给 ...

  8. BlogEngine.Net架构与源代码分析系列(转载)

    01.BlogEngine.Net架构与源代码分析系列part1:开篇介绍 02.BlogEngine.Net架构与源代码分析系列part2:业务对象--共同的父类BusinessBase 03.Bl ...

  9. BlogEngine.Net架构与源代码分析系列part12:页面共同的基类——BlogBasePage

    上一篇文章我向大家展示了BlogEngine.Net中Theme的原理和一些开发规范,里面有很多内容和这篇文章有着联系,建议大家这两篇文章结合在一起看,这样效果会更好.在这篇文章中我主要向大家说明Bl ...

最新文章

  1. OpenResty+Keepalived组建高可用集群+双主模式
  2. 4部“教材级”纪录片,有生之年必看系列!
  3. mac下的secureCRT.8的设置
  4. nginx 配置upstream实现负载均衡
  5. Visual FoxPro 6.0~9.0解决方案与范例大全写作原稿及光盘下载
  6. 基于php工程项目管理系统
  7. android地球经纬度平面图,地球经纬度划分图高清 怎么划分经纬度
  8. 计算机重启打印机无法使用,为什么打印机在电脑重启后就不能用了并且也无法添加?-win7添加打印机...
  9. Secure CRT 用域名连接虚拟机的详细步骤
  10. 个人汇总笔记——NUnit
  11. 全球与中国石材加工机械市场现状及未来发展趋势
  12. Elasticsearch:跨集群复制 Cross-cluster replication(CCR)
  13. JetBrains出品,一款好用到爆的数据库工具,惊艳到了,西安java开发视频
  14. 中芯国际透露:14nm或不能为某客户代工
  15. PostgreSQL数据库查询——scan.l分析
  16. 读和写,关于cache和buffer
  17. flutter Icons全部图标
  18. svn服务器 提交文件超慢,TortoiseSVN提交速度极慢
  19. <<计算机操作系统(慕课版)>>第三章参考答案
  20. 有效的信息安全意识培训

热门文章

  1. 动手制作QQ找茬游戏外挂
  2. Learning to Quantize Deep Networks by Optimizing Quantization Intervals with Task Loss 论文总结
  3. Vue路由守卫(导航守卫)
  4. Linux文件中文乱码怎么解决
  5. JavaScript实现商品规格的组合匹配
  6. 使用EasyExcel实现Excel的导入导出
  7. 【web前端特效源码】使用HTML5+CSS3制作一个会动的不规则斑点边框半径动画的动画效果~~适合初学者~超简单~ |前端开发
  8. bin文件和hex文件互转
  9. TPLINK WR941N V2_090803 路由器 后门
  10. vue项目使用less报错