如何记录cpu曲线Linux
如何记录cpu曲线Linux详细介绍
在 Linux 系统中记录 CPU 使用曲线,通常需要先采集 CPU 使用数据,然后通过工具或脚本将数据绘制成曲线。以下是具体步骤和常用工具:
一、采集 CPU 使用数据
1.
使用 sar 命令(系统级监控)
sar(System Activity Reporter)是 Linux 下强大的系统性能监控工具,可记录 CPU、内存、磁盘等数据,支持长时间采样。
- 安装工具(若未安装):
bashsysstat
yum sysstat
- 实时采集 CPU 数据并保存到文件:
bashsar cpu_data.dat
-u:指定监控 CPU 使用率。- 若需持续采集(如 1 小时),可忽略采样次数(
sar -u 1 > cpu.log,按Ctrl+C停止)。
- 查看历史数据(可选):
bashsar cpu_data.dat
2.
使用 mpstat 命令(多核 CPU 详细信息)
若需监控每个 CPU 核心的使用率(如多核 CPU),可用 mpstat:
bash
mpstat ALL cpu_cores.log
-P ALL:监控所有 CPU 核心,也可指定核心编号(如-P 0,1)。
3.
使用脚本读取 /proc/stat(自定义采集)
通过读取系统文件 /proc/stat 中的 CPU 时间戳,手动计算 CPU 使用率,适合自定义需求:
bash
user system idle iowait irq softirq steal guest guest_nice /proc/stat
user nice system idle iowait irq softirq steal guest guest_nice
user system idle iowait irq softirq steal guest guest_nice /proc/stat
user nice system idle iowait irq softirq steal guest guest_nice
total total_prev
idle idle_prev
used used idle_time
+," cpu_usage.log
运行脚本:
bash
+x cpu_script.sh./cpu_script.sh
二、绘制 CPU 曲线
采集数据后,需将数据转换为可视化曲线,常用工具如下:
1.
使用 gnuplot(命令行绘图)
- 安装 gnuplot:
bashgnuplotyum gnuplot
- 绘制
sar数据曲线(假设数据文件为cpu_data.dat):
bashsar cpu_data.dat cpu.txt
cpu.txt cpu_plot.dat
gnuplot
2.
使用 Excel 或 Google Sheets
- 将数据保存为 CSV 格式(如时间戳,CPU 使用率),直接导入 Excel,选择数据后插入 “折线图” 即可生成曲线。
3.
使用 Python(Matplotlib 库)
编写脚本自动绘图:
python
matplotlibpyplot pltpandas pd
data pdread_csv names
data pdto_datetimedata
pltfigurefigsize
pltplotdata data label
plttitle
pltxlabel
pltylabel
pltlegend
pltgrid
pltsavefig
pltshow
三、其他工具推荐
- nmon:多功能监控工具,支持导出数据到文件并通过
nmon_analyzer生成 Excel 图表:
bashnmon /tmp/下载 nmon_analyzer 转换数据。
- Prometheus + Grafana:适合长期监控和实时可视化,需搭建监控平台,适合企业级需求。
总结步骤
- 采集数据:用
sar/mpstat/ 脚本获取 CPU 使用率数据,保存为文件。 - 处理数据:转换为 CSV 或文本格式(时间 + 使用率)。
- 绘制曲线:用 gnuplot、Excel、Python 等工具生成可视化曲线。
根据需求选择工具:简单场景用sar + Excel,自定义场景用脚本 + Python,企业级用 Prometheus+Grafana。