温馨提示×

centos cpustat和top区别

小樊
40
2026-09-18 08:32:32
栏目: 智能运维

在 CentOS(以及其他 Linux 发行版)中,top 和 mpstat / pidstat(cpustat 常指 sysstat 工具包中的 CPU 相关命令) 都用于查看 CPU 使用情况,但定位、粒度和用途不同。下面以常见对比来说明(你说的 cpustat 通常指 mpstat 或 sysstat 中的 CPU 统计工具)。


一、top 是什么

top 是一个实时、交互式的系统监控工具,主要特点是:

  • 实时显示系统整体状态
  • 按进程(PID)展示资源占用
  • 默认按 CPU 使用率排序
  • 可交互(杀进程、改排序、刷新间隔)

适合场景

  • 快速看“现在哪个进程最占 CPU”
  • 系统卡顿时第一时间排查
  • 综合看 CPU、内存、负载

示例

top

看到的内容包括:

  • 负载(load average)
  • CPU 使用率(us, sy, id, wa)
  • 每个进程的 CPU / MEM 占用

二、cpustat(以 mpstat 为例)是什么

在 CentOS 中,通常所说 cpustat 相关的是 sysstat 工具包:

  • mpstat:每个 CPU 核心统计
  • pidstat:按进程统计 CPU
  • sar:历史 CPU 数据

以 mpstat 为例:

mpstat -P ALL 1

特点

  • 非交互、脚本友好
  • 可以看每一个 CPU 核心
  • 适合长期监控、性能分析
  • 输出更结构化

示例输出含义

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 怎么被用”

如果你愿意,我可以:

  • 给你 top 常用快捷键
  • 帮你 用 mpstat 定位 CPU 瓶颈
  • 或对比 top vs htop vs mpstat

直接说需求即可。

0 踩