cpustat 通常指 Linux 下用于分析 CPU 使用情况的工具,常见有两种理解:
mpstat / sar / pidstat(很多人把这类工具统称 cpustat)cpustat 工具(如 cpustat by Thomas Habets,或某些发行版自带)下面我按 “用 cpustat 分析 CPU 性能” 的通用思路来讲,并补充常见替代方案,方便你对比使用。
sudo apt install cpustat
特点:
top,但更偏向 CPU 视角cpustat
输出示例:
CPU user nice system idle iowait irq softirq
0 12.3 0.0 5.1 82.1 0.3 0.0 0.2
1 10.5 0.0 4.3 84.8 0.2 0.0 0.2
含义:
cpustat 1 5
表示:
看 idle
idle < 10% → CPU 很忙
idle > 30% → CPU 通常不是瓶颈
| 情况 | 说明 |
|---|---|
| user 很高 | 应用程序消耗 CPU |
| system 很高 | 系统调用、中断、锁、网络/IO |
| user + system 都高 | CPU 打满 |
iowait > 20% → 磁盘 IO 是瓶颈
常见原因:
cpustat
观察:
top
# 或
htop
看:
%CPU 高pidstat -u 1
vmstat 1
关注:
cs(context switch)in(interrupt)uptime
load average: 8.5, 6.3, 4.1
规则:
| 现象 | 可能原因 |
|---|---|
| user 高 | 应用计算密集 |
| system 高 | 系统调用多 / 锁 |
| iowait 高 | 磁盘慢 / 内存不足 |
| idle 高但 load 高 | IO 阻塞 |
| 单核 100% | 单线程瓶颈 |
mpstat -P ALL 1
sar -u 1 5
# 1. 看 CPU 是否忙
cpustat 1
# 2. 看哪个进程
top
# 3. 看是否 IO 问题
iostat -x 1
# 4. 看系统整体
vmstat 1
你可以直接贴一段 cpustat 或 top 输出。