温馨提示×

centos cpustat怎样定位瓶颈

小樊
38
2026-10-20 18:12:45
栏目: 智能运维

在 CentOS(或其他 Linux 系统)中,cpustat 通常是 sysstat 包里的一个工具(有些发行版也叫 mpstat / pidstat 更常用)。如果你说的是 sysstat 的 cpustat / mpstat,可以通过 CPU 利用率构成来定位系统瓶颈。

下面按常见瓶颈类型 + 如何看 cpustat 指标来说明。


一、先看 cpustat 输出含义

典型 mpstat -P ALL 1(或 cpustat)输出字段:

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

关键字段说明:

  • %usr:用户态 CPU(应用本身)
  • %sys:内核态 CPU(系统调用、调度)
  • %iowait:CPU 等 IO(磁盘/网络)
  • %soft:软中断(网络、网卡)
  • %steal:被虚拟机抢走的 CPU(云环境)
  • %idle:空闲

二、不同瓶颈的“典型表现”

1️⃣ CPU 计算瓶颈(CPU 密集型)

现象:

  • %usr 很高(>70%)
  • %idle 很低
  • %iowait 低

结论:

应用本身在大量计算(如算法、压缩、加解密)

定位方法:

pidstat -u 1
top -c

看哪个进程 %CPU 高


2️⃣ 系统调用 / 内核瓶颈

现象:

  • %sys 很高(>30%)
  • %usr 不高
  • 上下文切换多

可能原因:

  • 频繁系统调用
  • 锁竞争
  • 大量短连接

辅助命令:

vmstat 1
pidstat -w 1   # 上下文切换

3️⃣ IO 瓶颈(磁盘慢)

现象:

  • %iowait 高(>20%)
  • %idle 可能不低
  • 系统“卡但 CPU 不忙”

结论:

CPU 在等磁盘

确认:

iostat -x 1

看:

  • await 高
  • %util 接近 100%

4️⃣ 网络软中断瓶颈

现象:

  • %soft 高
  • 单核 CPU 很高(其他核空闲)

常见于:

  • 高 PPS 网络
  • 网卡中断绑定不合理

查看:

cat /proc/interrupts
mpstat -P ALL 1

5️⃣ 虚拟化 steal 高(云服务器)

现象:

  • %steal 高(>10%)
  • 应用没干啥但很慢

结论:

宿主机抢资源,非本机问题

解决:

  • 升级实例
  • 换宿主机

6️⃣ 整体空闲但响应慢

现象:

  • %idle 高
  • 但延迟大

可能是:

  • 锁
  • GC
  • 单线程瓶颈

看:

pidstat -t 1
perf top

三、快速定位套路(实战)

# 1. 看 CPU 总体分布
mpstat -P ALL 1

# 2. 看是谁在用 CPU
pidstat -u 1

# 3. 看是否 IO 问题
iostat -x 1

# 4. 看中断
cat /proc/interrupts

四、一句话总结

指标 瓶颈类型
%usr 高 应用计算
%sys 高 内核/系统调用
%iowait 高 磁盘 IO
%soft 高 网络中断
%steal 高 云资源争抢
idle 高但慢 锁 / 单线程

如果你愿意,可以把 你的 cpustat / mpstat 输出贴出来,我可以直接帮你判断是哪一种瓶颈。

0 踩