当前位置: 首页 > article >正文

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

目录

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使用率都升高.

http://www.lryc.cn/news/2420688.html

相关文章:

  • 微软杀毒软件Microsoft Security Essentials试用
  • 什么是ISTQB认证
  • NandFlash驱动源码详细分析
  • javaWeb酒店客房管理系统
  • CAYEE——INS803
  • Keras中Dropout的用法详解
  • php免费开源多用户商城,开源php多用户商城系统好不好?
  • VF6.0常用命令和主要程序命令
  • 真的假的?94年出生985高校博士生导师道翰天琼认知智能机器人平台API接口大脑为您揭秘。
  • Exchange 2003安装详细教程(三)
  • VMware vSphere 5.1 各种ISO文件大集合[文件数:135][47.6 GB][含激活KEY]
  • HTML5 游戏高级教程(五)
  • 基于Hadoop架构下的FineBI大数据引擎技术原理
  • 四川2021年高考成绩等位分查询,2019年四川高考等位分查询,志愿填报更精准!...
  • 宇宙最强帕鲁私服管理器诞生了!
  • 网站跳出率(Bounce Rate)
  • 林格斯添加真人语音库
  • “零信任网络”(Zero Trust Network)安全是网络安全最高级吗?
  • 称呼大全,亲戚称呼,祖宗十八代的称呼!
  • 贫瘠之地手游一直显示连接服务器,《炉石传说》贫瘠之地的锤炼进入异常解决攻略 进不去如何解决...
  • 毕业设计:基于java的叮当书城系统设计与实现
  • 如何在2023年保护在线隐私及有效隐藏IP 地址
  • 申请虚拟VISA卡ONEKEY保姆级教程来了!
  • Android基础教程——从入门到精通(上)
  • 群脉冲测试
  • 虚拟主机购买教程
  • 海贼王动漫网页设计作业 html+css网页
  • 解决《生化危机4》重制版游戏缺失dinput8.dll文件问题的详细指南
  • cisco路由器密码配置和清除
  • 什么是网关?什么是路由?什么是IP?