温馨提示×

centos cpustat怎么排查

小樊
37
2026-08-04 10:18:54
栏目: 智能运维

CentOS 上排查 CPU 问题,cpustat 通常不是系统默认命令,常见有 两种理解,我分开说明,并给你一套实用排查流程


一、先确认你说的 cpustat 是哪种

1️⃣ 来自 sysstatmpstat / sar(最常见)

CentOS 默认 没有 cpustat,但很多人把 mpstatsar 当成 cpustat。

# 安装 sysstat
yum install -y sysstat

# 查看各 CPU 使用情况
mpstat -P ALL 1

输出示例:

%usr %nice %sys %iowait %irq %soft %steal %guest %idle

✅ 常用于:

  • 看哪个核 CPU 高
  • 是否是 iowait / steal 高
  • 是否单核被打满

2️⃣ 来自 perf-tools / cpustat(Netflix 工具)

这是真正的 cpustat

git clone https://github.com/brendangregg/perf-tools.git
cd perf-tools
./cpustat

✅ 适合:

  • 哪些进程/内核函数 占用 CPU
  • CPU 火焰图前分析

二、CentOS 排查 CPU 问题的标准流程(推荐)

✅ 1. 先看整体 CPU 使用

top

关注:

  • load average
  • %Cpu(s): us / sy / wa / st
  • 哪个进程 CPU 高

✅ 2. 看每个 CPU 核心

mpstat -P ALL 1

重点看:

  • %iowait:磁盘 IO 问题
  • %steal:云主机被抢资源
  • %soft:软中断(网络/网卡)

✅ 3. 看进程级 CPU 使用

top -H -p <pid>

pidstat -u 1

✅ 4. 看 CPU 用在哪(内核 or 用户态)

sar -u 1 5

✅ 5. 如果 CPU 很高但 top 看不出原因

perf

yum install -y perf

perf top

✅ 能看到:

  • 内核函数
  • 用户态函数
  • 是否网卡 / 锁 / 调度问题

三、常见 CPU 问题对照表

现象 可能原因
%us 高 应用计算密集
%sy 高 系统调用多 / 锁
%wa 高 磁盘慢 / IO 瓶颈
%si 高 网卡中断
%st 高 云主机超卖
单核 100% 程序单线程

四、如果你只是想“像 cpustat 一样用”

替代方案(推荐)

sar -u 1
mpstat -P ALL 1
pidstat -u 1

五、我可以继续帮你

你可以直接贴:

  • top / mpstat 输出
  • 物理机还是云主机
  • CPU 高是 突然还是持续
  • 应用类型(Java / Nginx / 数据库)

我可以帮你 精确定位是哪类 CPU 问题

0