温馨提示×

centos cpustat怎样分析

小樊
49
2026-09-03 04:02:32
栏目: 智能运维

在 CentOS 中,cpustat 通常指两种东西之一:

  1. sysstat 包里的 mpstat / sar(最常见)
  2. 性能工具 cpustat(如 github.com/uber/cpustat)

下面分别说明如何“分析”。


一、使用 sysstat 系列(mpstat / sar)分析 CPU

1. 安装

yum install sysstat -y

2. 实时查看 CPU 使用率

mpstat 1

示例输出:

Linux 3.10.0 x86_64  10/10/2024  _x86_64_  (8 CPU)

13:00:01  CPU  %usr  %nice  %sys  %iowait  %irq  %soft  %steal  %guest  %idle
13:00:02  all   12.3   0.0   5.1   0.2      0.0   0.1    0.0     0.0    82.3

关键字段含义:

  • %usr:用户态 CPU
  • %sys:内核态 CPU
  • %iowait:等待 IO(磁盘/网络)
  • %idle:空闲
  • %steal:虚拟机被宿主机偷走的时间

3. 分析思路

  • %usr 高 → 应用计算密集
  • %sys 高 → 内核/系统调用多
  • %iowait 高 → 磁盘瓶颈
  • %idle 很低 → CPU 饱和
  • %steal 高 → 云主机资源争抢

4. 查看历史(sar)

sar -u 1 3
sar -u -f /var/log/sa/sa10

二、使用 uber/cpustat(高级分析)

1. 安装

go install github.com/uber/cpustat@latest

2. 基本用法

cpustat 1

示例:

time  util  user  sys  ctxsw  migr  runq  blk
13:01  45.2  30.1 15.1  120k   2k    1.2   0

3. 按进程分析

cpustat -p 1

可看到:

  • 每个进程的 CPU 占用
  • 上下文切换
  • 运行队列长度

4. 分析重点

  • util 高 + runq 高 → CPU 不够
  • ctxsw 极高 → 线程切换频繁
  • 某个进程 CPU 异常 → 定位热点程序

三、常见分析套路(实战)

场景 1:系统卡顿

mpstat 1
  • %iowait 高 → iostat
  • %sys 高 → perf top

场景 2:CPU 100%

top
cpustat -p 1

找占用最高的进程 → strace / perf

场景 3:云服务器慢

mpstat 1

%steal > 10% → 换机型或宿主机


四、总结一句话

cpustat / mpstat 看“CPU 花在哪”,top 看“谁在用”,sar 看“历史趋势”。

如果你有具体输出或场景(比如 CPU 100%、IO 高、容器环境),我可以直接帮你分析。

0 踩