温馨提示×

centos cpustat怎么看历史

小樊
41
2026-08-30 14:57:13
栏目: 智能运维

在 CentOS 上,cpustat 本身不保存历史数据,它只能实时查看当前或指定间隔的 CPU 使用情况。如果你想“看历史”,一般有以下几种常用做法,从简单到专业递增:


一、最直接:用 mpstat / sar(推荐 ✅)

1️⃣ 安装 sysstat

yum install -y sysstat

2️⃣ 查看历史 CPU(sar 最常用)

sysstat 默认会每天记录系统性能数据

查看某一天的 CPU 历史:

sar -u -f /var/log/sa/saXX

例如查看 28 号:

sar -u -f /var/log/sa/sa28

输出示例:

10:00:01 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
10:10:01 AM     all      2.10      0.00      1.20      0.30      0.00     96.40

3️⃣ 查看指定时间段

sar -u -s 09:00:00 -e 12:00:00 -f /var/log/sa/sa28

二、实时+历史:用 pidstatmpstat

查看每个 CPU 实时

mpstat -P ALL 1

查看进程级 CPU(历史)

pidstat -u -p ALL 1

⚠️ 这些也是实时,不是历史。


三、用 top / htop 的替代方案(不推荐做历史)

top

只能看当前,无法回溯历史


四、如果你说的是“过去某时刻 CPU 被打满,怎么查”

方案 1:查 sar 数据(最合适)

sar -u -f /var/log/sa/sa27

方案 2:查历史负载

sar -q -f /var/log/sa/sa27

方案 3:查是否开启 sysstat

systemctl status sysstat

没开的话,历史数据是没有的。


五、想长期保存 & 可视化(进阶)

1️⃣ Prometheus + node_exporter

  • 适合服务器多
  • 可画图(Grafana)

2️⃣ Zabbix / Netdata

  • 开箱即用
  • 历史数据完整

六、总结一句话 ✅

CentOS 上想看 CPU 历史,用 sar -u -f /var/log/sa/saXX,不是 cpustat

如果你愿意,可以告诉我:

  • 你是 物理机 / 虚拟机 / 云服务器
  • 想查 多长周期(小时 / 天 / 月)
  • CPU 飙高排查 吗?

我可以帮你一步步定位是哪颗 CPU、哪个进程、哪个时间点出的问题。

0