如何通过cpustat命令查看CPU历史数据

说到监控CPU使用情况,cpustat是个不错的实时工具。但如果你需要回顾历史数据,分析过去的性能趋势,那该怎么办呢?别急,系统里其实藏着好几把“瑞士军刀”,专门用来处理这类需求。
1. 使用 mpstat 工具
首先登场的是mpstat,它来自大名鼎鼎的sysstat工具包。这家伙的强项在于提供每个CPU核心的详细统计信息,粒度非常细。
- 想一网打尽所有CPU核心的数据?加上
-P ALL选项就行。 - 至于查看历史数据,关键在于它的采样和报告功能。通过指定采样间隔和次数,你就能获得一段时间内的数据快照。
- 举个例子,下面这条命令就像个定时拍照的哨兵:
mpstat -P ALL 1 10
它会每隔1秒“拍”一张CPU状态的照片,连续拍10次,最后给你一份完整的报告。这其实就是一种“准历史”数据的获取方式。
2. 使用 sar 工具
接下来是sar,它和mpstat是同一个工具包的兄弟,但功能更偏向于系统的“历史学家”。它能自动收集、归档系统活动信息,是查看历史CPU数据最直接的工具之一。
- 查看CPU整体利用率,使用
-u选项。 - 真正的“历史模式”需要
-f选项出场,它允许你指定一个历史数据文件进行读取。 - 通常,这些历史数据文件存放在
/var/log/sysstat/目录下,并按日期命名(比如sa01代表当月1号的数据)。命令这么用:
sar -u -f /var/log/sysstat/saXX
把saXX换成具体的文件名,你就能穿越回过去,查看那一天的CPU忙碌情况了。
3. 使用 atop 工具
如果你喜欢更交互式、更直观的体验,那么atop值得一试。它不仅是实时监控的好手,同样具备强大的历史数据回溯能力。
atop在运行时会自动将性能数据记录到日志文件中。- 查看这些历史记录,需要使用
-r选项并指定日志文件路径。典型的命令格式如下:
atop -r /var/log/atop/atop_YYYYMMDD
这里的atop_YYYYMMDD就是按日期生成的历史日志文件。进入后,你可以像操作录像一样,按时间线查看当时的CPU、内存、进程等全方位的系统状态。
4. 使用 iostat 工具
最后,别忘了iostat。虽然它常被用来监控磁盘I/O,但其实它也提供了相当详细的CPU统计信息,并且同样支持周期性的采样。
- 使用
-m选项可以查看CPU的详细统计信息。 - 和
mpstat类似,通过指定采样间隔和次数,可以获取一段时间序列的数据:
iostat -m 1 10
这条命令会每隔1秒输出一次包含CPU使用率的统计信息,持续10次,非常适合用来捕捉短时间内的性能波动。
总而言之,虽然cpustat本身专注于实时视图,但整个Linux工具生态提供了丰富的互补选择。无论是sar的归档历史、mpstat/iostat的周期采样,还是atop的交互式回溯,都能帮你轻松地分析和诊断CPU的历史性能表现。根据你的具体场景——是查看昨天的负载高峰,还是分析一小时前的性能瓶颈——选择合适的工具即可。
