IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> CPU分析系列--sysstat分析系统负载 -> 正文阅读

[开发测试]CPU分析系列--sysstat分析系统负载

目录

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

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-11-22 12:38:39  更:2021-11-22 12:39:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 4:37:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码