linux 性能自我学习 ———— cpu 快速定位问题 [六]
前言
主要介绍一下cpu如何快速定位问题。
正文
cpu 的一些性能指标:
1. cpu 使用率
cpu 使用率描述了非空闲时间占总cpu时间的百分比,根据cpu上运行任务的不同,又被分为用户cpu、系统cpu、 i/o 等待cpu、 软中断、硬中断。
用户cpu使用率,包括用户态cpu使用率,和低优先级用户态cpu 使用率,表示cpu 在用户态运行的时间的百分比。
用户cpu 使用率搞,通常说明应用程序比较繁忙。
系统cpu使用率,表示cpu在内核态运行的时间百分比(不包括中断)。系统cpu使用率高,说明内核比较繁忙。
等待i/o 的cpu使用率,通常也称为iowait,表示等待i/o 的时间百分比。 io wait高,说说吗系统与硬件设备的i/o交互时间比较长。
软中断和硬中断的cpu使用率,分布表示内核调用软中断处理程序、硬中断处理程序的时间百分比。它们的使用率搞,通常说明系统发送了大量的中断。
2. 平均负载
也就是系统的平均活跃进程数,它反应了系统的整体负债情况,主要包括三个数值,分别指过去1分钟、过去5分钟、过去15分钟的平均负载。
理想情况下,平均负载等于逻辑cpu个数,它表示cpu恰好被充分利用,一般可以大于70%。
3. 进程上下文切换
无法获取资源导致的资源上下文切换
被系统强制调度导致的非自愿上下文切换
上下文切换,本身保证了linux 正常运行的一项核心功能。但过多的上下文切换,会将原本运行进程的cpu时间,消耗在寄存器、内核栈、以及虚拟内存等数据的保存和恢复上,
缩短进程真正运行的时间,称为性能瓶颈。
用什么工具来排查呢?
几个案例总结:
- 平均负载案例。
先用uptime,查看系统的平均负载;而在平均负载升高后,又用mpstat和pidstat,分布观察了每个cpu 和 每个进程cpu的使用情况,进而找出导致平均负载高的进程,使用的是stress 工具。
- 上下文切换的案例
先用vmstat 查看系统上下文切换和中断次数。
然后通过pidstat,观察和进程的自愿上下文切换和非自愿上下文切换情况。最后通过pidstat,观察线程的上下文切换情况,找出上下文切换次数增多的根源,也就是我们的基准测试工具sysbench。
进程cpu 升高案例,先用top,然后是perf top。
短时进程问题,系统cpu搞,但是找不到进程。 可能是短时进程,崩溃等。
通过perf record 和 perf report。
短时进程可以使用execsnoop。
- 不可中断进程或者僵尸进程的案例。 我们先用top 观察到了iowait升高的问题,并发现了大量的不可中断进程和僵尸进程;
接着我们用dstat 发现是磁盘导致的,于实通过pidstat 找到了相关的进程。 可以用strace查看进程系统调用失了,最后通过perf分析进程调用链,发现磁盘i/o问题。
- 软中断案例,通过top 观察到,系统的软中断cpu 使用高。
通过top查看系统的软中断cpu使用率升高;接着查看/proc/softirqs 找到了几种变化快的软中断,通过sar命令,发现网络小包的问题。
最后用tcpdump 找出网络帧的类型和来源,确定是一个syn flood 攻击导致的。
工具表:
示例图:
结
下一节,内存相关。
linux 性能自我学习 ———— cpu 快速定位问题 [六]的更多相关文章
- 【转】一文掌握 Linux 性能分析之 CPU 篇
[转]一文掌握 Linux 性能分析之 CPU 篇 平常工作会涉及到一些 Linux 性能分析的问题,因此决定总结一下常用的一些性能分析手段,仅供参考. 说到性能分析,基本上就是 CPU.内存.磁盘 ...
- Linux 性能监控之CPU&内存&I/O监控Shell脚本2
Linux 性能监控之CPU&内存&I/O监控Shell脚本2 by:授客 QQ:1033553122 思路: 捕获数据->停止捕获数据->提取数据 备注:一些命令的输 ...
- Linux 性能监控之CPU&内存&I/O监控Shell脚本1
Linux 性能监控之CPU&内存&I/O监控Shell脚本1 by:授客 QQ:1033553122 #!/bin/bash # 获取要监控的本地服务器IP地址 IP=`if ...
- 深挖计算机基础:Linux性能优化学习笔记
参考极客时间专栏<Linux性能优化实战>学习笔记 一.CPU性能:13讲 Linux性能优化实战学习笔记:第二讲 Linux性能优化实战学习笔记:第三讲 Linux性能优化实战学习笔记: ...
- Linux性能优化从入门到实战:01 Linux性能优化学习路线
我通过阅读各种相关书籍,从操作系统原理.到 Linux内核,再到硬件驱动程序等等. 把观察到的性能问题跟系统原理关联起来,特别是把系统从应用程序.库函数.系统调用.再到内核和硬件等不同的层级贯 ...
- linux性能问题(CPU,内存,磁盘I/O,网络)
一. CPU性能评估 1.vmstat [-V] [-n] [depay [count]] -V : 打印出版本信息,可选参数 -n : 在周期性循环输出时,头部信息仅显示一次 delay : 两次输 ...
- Linux性能监测:CPU篇(转)
http://os.51cto.com/art/201012/239880.htm CPU 的占用主要取决于什么样的资源正在 CPU 上面运行,比如拷贝一个文件通常占用较少 CPU,因为大部分工作是由 ...
- Linux 性能监测:CPU
CPU 的占用主要取决于什么样的资源正在 CPU 上面运行,比如拷贝一个文件通常占用较少 CPU,因为大部分工作是由 DMA(Direct Memory Access)完成,只是在完成拷贝以后给一个中 ...
- 一文掌握 Linux 性能分析之 CPU 篇
本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. 平常工作会涉及 ...
- Linux性能监测:CPU篇
CPU 也是一种硬件资源,和任何其他硬件设备一样也需要驱动和管理程序才能使用,我们可以把内核的进程调度看作是 CPU 的管理程序,用来管理和分配 CPU 资源,合理安排进程抢占 CPU,并决定哪个进程 ...
随机推荐
- MYSQL中正则表达式检索数据库
1.MySQL中使用通配符检索数据库,之外还可以使用正则表达式来检索数据. 使用通配符 '_' 和 '%'的区别如下, 使用通配符的技巧:一般的来说 通配符可以处理数据,但是消耗内存较大 ...
- C++ Qt开发:QFileSystemModel文件管理组件
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QFi ...
- 重新认识 tag 快照 git (项目临时添加需求,之前有分支合并,导致从节点拉分支不行了,因为没有tag快照)
之前的tag认知 之前一直以为tag就是在git的提交commit上打一个标,然后可以拉出分支.之前没太重视. 因为我觉得 可以直接从某个commit直接拉出分支,这打不打tag无所谓 翻车现场 今天 ...
- python parser 实例解析
一 parser: 该模块为Python的内部解析器和字节码编译器提供了一个接口.该接口的主要目的是允许Python代码编辑Python表达式的分析树并从中创建可执行代码. 这比试图将任意Python ...
- [Atcoder - Distinct Trio ] 动态规划
记f[i][j] 为前i个元素能构成的j个不同元素对的个数.对于题目j<=3;这样就有转移方程. import java.io.BufferedReader; import java.io.IO ...
- STM32 HAL 使用串口IDLE中断+DMA实现收发
STM32 HAL 使用串口IDLE中断+DMA实现收发 cubeMX配置 mx配置如下(省去系统时钟,烧录口,工程属性配置) 注意:这里关闭 Force DMA channels Interrupt ...
- 专访深职院 XR 专家 | 实时云渲染赋能虚拟仿真实训,打造 5G+XR 智慧教育平台
近年,国家高度重视职业教育,为主动应对新一轮科技革命与产业变革,支撑服务创新驱动发展,教育部积极推进新工科建设.加快教育改革创新.在职业教育上,XR 技术与教育的结合,的的确确弥补了传统职业教育中&q ...
- 鸿蒙HarmonyOS实战-ArkUI组件(Flex)
一.Flex 1.概述 Flex布局它可以让容器中的子元素具有弹性伸缩性.Flex布局是一种二维布局模型,它可以在任意方向上对元素进行排列,并且可以动态地调整元素的大小和位置,以适应不同的屏幕尺寸和设 ...
- #期望,树的直径#51nod 1803 森林直径
题目 有一棵 \(n\) 个结点的树,按顺序给出树边 \((fa[i],i)\), \(Q\) 次询问查询如果只选取第 \([l,r]\) 条树边,问森林的直径 \(fa[i]\) 的生成方式为 \( ...
- #莫队,bitset#洛谷 3674 小清新人渣的本愿
题目 分析 只要做到\(O(n\sqrt{n})\)的时间复杂度就可以了 考虑莫队,首先乘号就是枚举\(x\)的约数\(d\), 判断\(d\)和\(\frac{x}{d}\)是否同时出现, 再考虑差 ...