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

想分析处理CPU性能问题, 首先我们需要了解CPU性能指标.

CPU性能指标

CPU使用率
用户CPU使用率, 包括用户态(user)和低优先级用户态(nice). 该指标过高说明应用程序比较繁忙.
系统CPU使用率, CPU在内核态运行的时间百分比(不含中断). 该指标高说明内核比较繁忙.
等待I/O的CPU使用率, iowait, 该指标高说明系统与硬件设备I/O交互时间比较长.
软/硬中断CPU使用率, 该指标高说明系统中发生大量中断.
steal CPU / guest CPU, 表示虚拟机占用的CPU百分比.

平均负载
理想情况下平均负载等于逻辑CPU个数,表示每个CPU都被充分利用. 若大于则说明系统负载较重.

进程上下文切换
包括无法获取资源的自愿切换和系统强制调度时的非自愿切换. 上下文切换本身是保证Linux正常运行的一项核心功能. 过多的切换则会将原本运行进程的CPU时间消耗在寄存器,内核占及虚拟内存等数据保存和恢复上.

CPU缓存命中率
CPU缓存的复用情况,命中率越高性能越好. 其中L1/L2常用在单核,L3则用在多核中.

连接指标与工具
从 CPU 的性能指标出发
当你要查看某个性能指标时,要清楚知道哪些工具可以做到

从工具出发
当你已经安装了某个工具后,要知道这个工具能提供哪些指标

如何迅速分析 CPU 的性能瓶颈
缩小排查范围
通常会先运行几个支持指标较多的工具,如 top、vmstat 和 pidstat

 posted on 2020-06-07 23:16  Charles Tseng  阅读(198)  评论(0编辑  收藏  举报