温馨提示×

centos cpustat怎样排查

小樊
46
2026-09-15 08:54:05
栏目: 智能运维

在 CentOS 上排查 CPU 使用情况,cpustat 并不是系统默认自带命令(它通常来自 sysstat 包中的 mpstat,或者来自 pcp / pcp-zeroconfcpustat)。下面我分几种常见情况说明:怎么装、怎么用、怎么看、怎么排查问题


一、确认你用的是哪种 cpustat

1️⃣ sysstat 里的 mpstat(最常见)

很多人说的其实是:

mpstat
mpstat -P ALL 1

安装:

yum install -y sysstat

2️⃣ PCP 提供的 cpustat

如果是真正的 cpustat 命令:

which cpustat

如果来自:

/usr/bin/cpustat

通常属于:

yum install -y pcp

二、基础 CPU 状态排查(推荐先用这些)

1️⃣ 实时查看整体 CPU

top

或更好用的:

htop

2️⃣ 查看每个 CPU 核心

mpstat -P ALL 1

关键列说明:

  • %usr:用户态 CPU
  • %sys:内核态 CPU
  • %iowait:IO 等待(高说明磁盘慢)
  • %idle:空闲(低说明 CPU 忙)

三、如果真要用 cpustat(PCP)

查看 CPU 使用率

cpustat 1

常用参数:

cpustat 1 5

(每秒一次,共 5 次)

输出示例:

CPU  user  sys  idle  iowait
 0    12    5    80     3

四、常见 CPU 问题排查思路

✅ 1. CPU 使用率很高

top

看:

  • %CPU 高的进程
  • 是否是 Java / Python / Nginx / MySQL

✅ 2. 系统 CPU(%sys)高

可能原因:

  • 中断多
  • 内核锁
  • 网络/磁盘压力

检查:

mpstat -P ALL 1
cat /proc/interrupts

✅ 3. iowait 高(CPU 在等磁盘)

iostat -x 1

看:

  • %util 是否接近 100%
  • await 是否很大

✅ 4. 单核跑满,其他空闲

说明:

  • 程序是单线程
  • 没有做负载均衡

解决:

  • 多进程 / 多线程
  • Nginx / worker 数调整

五、快速排查套餐(推荐)

top
mpstat -P ALL 1
iostat -x 1
vmstat 1

六、如果你愿意,我可以进一步帮你

你可以直接发我:

  1. mpstat -P ALL 1 的输出
  2. top 里 CPU 占用最高的进程
  3. CPU 高 / 卡顿 / 请求慢 / 负载高

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

0