在 CentOS(以及其他 Linux 发行版)中,top 和 mpstat / pidstat(cpustat 常指 sysstat 工具包中的 CPU 相关命令) 都用于查看 CPU 使用情况,但定位、粒度和用途不同。下面以常见对比来说明(你说的 cpustat 通常指 mpstat 或 sysstat 中的 CPU 统计工具)。
top 是一个实时、交互式的系统监控工具,主要特点是:
top
看到的内容包括:
在 CentOS 中,通常所说 cpustat 相关的是 sysstat 工具包:
mpstat:每个 CPU 核心统计pidstat:按进程统计 CPUsar:历史 CPU 数据以 mpstat 为例:
mpstat -P ALL 1
CPU %usr %sys %iowait %idle
0 10 5 0 85
1 20 3 1 76
| 对比项 | top | cpustat / mpstat |
|---|---|---|
| 类型 | 交互式实时监控 | 统计型命令 |
| 视角 | 进程级 + 系统级 | CPU 核心级 / 进程级 |
| 是否实时 | 是 | 可定时采样 |
| 多核细分 | 不直观 | 每个 CPU 核心清晰 |
| 脚本友好 | 差 | 非常好 |
| 历史数据 | 无 | sar 可查历史 |
| 学习成本 | 低 | 稍高 |
✅ 系统突然变慢
top
→ 看是哪个进程吃 CPU
✅ 想看是不是单核瓶颈
mpstat -P ALL 1
→ 看某个 core 是否 100%
✅ 写监控脚本
pidstat -u 1
→ 比 top 更适合自动化
✅ 排查历史 CPU 高
sar -u 1 3
top 看“谁在用 CPU”,cpustat/mpstat 看“CPU 怎么被用”
如果你愿意,我可以:
直接说需求即可。