温馨提示×

centos cpustat怎么导出

小樊
37
2026-07-20 21:53:23
栏目: 智能运维

在 CentOS 上,cpustat 通常是 sysstat 工具包里的命令(也有人是用 psmisc 里的,但更常见的是 sysstat)。下面给你几种导出 cpustat 数据的常见方法,按使用场景来。


1️⃣ 确认 cpustat 来源

先确认你用的是哪个 cpustat

which cpustat
rpm -qf $(which cpustat)

如果是:

  • sysstat → 实际是 mpstat / sar 的封装
  • cpustat 本身(如 go-cpustat)→ 输出格式不同

下面以 sysstat 系列 为主(CentOS 最常见)。


2️⃣ 直接导出 cpustat 输出到文件

最简单方式:

cpustat > cpu_usage.txt

如果支持参数(如采样间隔和次数):

cpustat 1 5 > cpu_usage.txt

含义:

  • 1:每 1 秒采样一次
  • 5:采样 5 次

3️⃣ 使用 mpstat(推荐,最常用)

cpustat 本质很多是 mpstat 的别名或封装。

导出到文件

mpstat -P ALL 1 5 > cpu_mpstat.txt

输出示例:

Linux 3.10.0-1160.el7.x86_64 (node1)  2026/01/21  _x86_64_  (8 CPU)

14:00:01  CPU  %usr  %nice  %sys  %iowait  %irq  %soft  %steal  %guest  %idle

4️⃣ 使用 sar(适合长期/定时导出)

实时导出

sar -u 1 5 > cpu_sar.txt

导出所有 CPU

sar -u -P ALL 1 5 > cpu_all.txt

从系统历史数据导出

sar -u -f /var/log/sa/sa21 > cpu_history.txt

CentOS 默认每天一个 /var/log/sa/saXX 文件


5️⃣ 导出为 CSV(方便 Excel / Python)

mpstat → CSV

mpstat -P ALL 1 5 | awk 'BEGIN{OFS=","} {print $0}' > cpu.csv

更规范一点(只导出数据行):

mpstat -P ALL 1 5 | grep -E "^[0-9]|^Average" > cpu.csv

6️⃣ 后台持续导出(监控场景)

nohup sar -u 1 > cpu_monitor.log &

停止:

pkill sar

7️⃣ 如果你用的是 go-cpustat

例如:

cpustat -i 1 -n 5 > cpu.txt

或导出 JSON(如果支持):

cpustat -json > cpu.json

✅ 推荐组合(生产环境)

需求 推荐
实时查看 mpstat -P ALL 1
导出分析 sar -u -P ALL 1 10
历史数据 sar -f /var/log/sa/saXX
自动化 cron + sar

如果你愿意,我可以:

  • ✅ 给你一个 一键导出脚本
  • ✅ 帮你 解析 cpustat 输出
  • ✅ 按 CPU / 进程 / 时间段 定制导出方式

你可以把 cpustat --helpwhich cpustat 的输出贴出来,我可以更精确帮你。

0