温馨提示×

ubuntu cpustat怎样排查

小樊
42
2026-10-21 09:56:11
栏目: 智能运维

在 Ubuntu 上排查 CPU 使用情况和性能问题,cpustat 是一个很有用的工具(来自 sysstat 包或单独工具)。下面按排查思路 + 常用命令 + 实战示例给你整理一份指南。


一、cpustat 是什么

cpustat 用于按 CPU 或整体显示 CPU 使用情况,比 top 更偏向统计和百分比,适合定位:

  • CPU 是否瓶颈
  • 用户态 / 系统态 / IO 等待 占比
  • 单核还是整体繁忙

二、安装 cpustat

sudo apt update
sudo apt install cpustat

(有些系统来自 sysstat 或 linux-tools)


三、基本用法

1️⃣ 实时查看(默认每 5 秒)

cpustat

2️⃣ 指定间隔和次数

cpustat 1 5

每 1 秒一次,共 5 次


四、关键指标解读(排查重点)

示例输出:

CPU  usr  sys  idle  iowait  irq  softirq
all  35   20    40     5      0     0
字段 含义 排查意义
usr 用户态 CPU 高 → 应用消耗
sys 内核态 CPU 高 → 系统调用/驱动
idle 空闲 低 → CPU 瓶颈
iowait IO 等待 高 → 磁盘/网络慢
irq/softirq 中断 高 → 网卡/设备

五、常见排查场景

✅ 场景 1:CPU 使用率很高

cpustat 1
  • usr 高 → 看进程
top -c

或

htop

✅ 场景 2:iowait 高(CPU 在等 IO)

cpustat

如果 iowait > 10%:

iostat -x 1

看:

  • %util
  • await

可能是:

  • 磁盘慢
  • 日志写太多
  • 数据库压力大

✅ 场景 3:单核跑满,整体不高

cpustat -c

或看每个 CPU:

mpstat -P ALL 1

常见于:

  • 单线程程序
  • 锁竞争

✅ 场景 4:sys 高(内核占用)

可能原因:

  • 频繁系统调用
  • 网络中断
  • 容器/虚拟化

配合:

perf top

或

vmstat 1

六、结合其他命令一起用(推荐)

工具 用途
top / htop 看进程
mpstat 每核 CPU
iostat IO
vmstat 内存/CPU/IO
perf 深度分析

七、简单排查流程(实用)

  1. cpustat 1 → 看 CPU 类型
  2. iowait 高 → iostat
  3. usr 高 → top
  4. sys 高 → perf
  5. 单核高 → mpstat -P ALL

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

0 踩