cpustat 是 sysstat 工具包里的一个常用命令,用来查看 CPU 使用率统计。在 CentOS(以及 RHEL、Rocky、Alma 等)上,它来自 sysstat 包。
下面从 安装 → 基本用法 → 输出字段解读 → 常见示例 给你系统讲一遍。
yum install -y sysstat
确认版本:
cpustat -V
cpustat
输出示例:
Linux 3.10.0-1160.el7.x86_64 (centos7) 2026/01/21 _x86_64_ (4 CPU)
10:10:01 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
10:10:01 all 12.34 0.00 5.67 1.23 0.00 0.45 0.00 0.00 0.00 80.31
10:10:01 0 15.21 0.00 6.12 0.98 0.00 0.50 0.00 0.00 0.00 77.19
10:10:01 1 10.45 0.00 5.23 1.45 0.00 0.40 0.00 0.00 0.00 82.47
| 字段 | 含义 |
|---|---|
| 时间 | 采样时间点 |
| CPU | all 表示所有 CPU 平均值,0、1… 表示单个 CPU |
| 字段 | 含义 | 说明 |
|---|---|---|
%usr |
用户态 CPU | 普通用户进程占用 |
%nice |
低优先级用户态 | nice 值 > 0 的进程 |
%sys |
内核态 CPU | 系统调用、内核任务 |
%iowait |
IO 等待 | CPU 空闲但等磁盘 IO |
%irq |
硬中断 | 硬件中断处理 |
%soft |
软中断 | 网络、调度等 |
%steal |
被虚拟化抢占 | 虚拟机常见 |
%guest |
虚拟机 CPU | 运行 guest OS |
%gnice |
低优先级 guest | 很少见 |
%idle |
空闲 CPU | CPU 完全空闲 |
✅ 加起来 ≈ 100%
看 %idle
%idle < 20% → CPU 很忙
%idle > 80% → CPU 基本空闲
| 情况 | 说明 |
|---|---|
%usr 很高 |
用户程序(Java / Python / C++) |
%sys 很高 |
系统调用多、内核问题 |
%iowait 很高 |
磁盘慢、IO 瓶颈 |
%soft 很高 |
网络中断、网卡问题 |
⚠️ iowait 高表示 CPU 在等 IO,不是 CPU 本身忙
常见原因:
%steal > 5% → 宿主机资源争抢
常见于:
cpustat 2
cpustat 2 5
cpustat -c 0
cpustat -I
| 工具 | 适合 |
|---|---|
top |
实时看进程 |
vmstat |
系统整体性能 |
cpustat |
专注 CPU 使用率 |
idle 高 → CPU 没问题
usr 高 → 应用问题
sys 高 → 内核 / 系统调用
iowait 高 → 磁盘 / IO
steal 高 → 虚拟机问题
如果你愿意,可以把你 实际的 cpustat 输出贴出来,我可以帮你具体分析是哪块瓶颈。