要通过 Debian 上的 cpustat 分析 CPU 历史数据,可以按照以下步骤进行:
安装 sysstat 包:
cpustat 是 sysstat 包的一部分。如果尚未安装,可以使用以下命令安装:
sudo apt update
sudo apt install sysstat
收集 CPU 数据:
sysstat 的 mpstat 工具可以用来收集 CPU 使用情况数据。默认情况下,mpstat 会每隔一段时间(通常是 1 分钟)收集一次数据。要收集一天的数据,可以运行:
sudo mpstat -P ALL 1 1440 > cpu_usage.csv
这个命令会收集 24 小时(1440 分钟)的数据,每分钟收集一次,并将结果输出到 cpu_usage.csv 文件中。
分析数据: 收集到的 CSV 文件可以使用文本编辑器打开,或者使用工具如 Excel、Python 的 pandas 库等进行分析。
使用文本编辑器查看:直接打开 cpu_usage.csv 文件,可以看到每分钟的 CPU 使用情况,包括用户态(us)、系统态(sy)、空闲态(id)等。
使用 Python 进行分析:
import pandas as pd
# 读取 CSV 文件
df = pd.read_csv('cpu_usage.csv', delimiter=',')
# 计算平均使用率
df['user'] = df['%user'].astype(float)
df['system'] = df['%system'].astype(float)
df['idle'] = df['%idle'].astype(float)
avg_user = df['user'].mean()
avg_system = df['system'].mean()
avg_idle = df['idle'].mean()
print(f'Average User CPU Usage: {avg_user}%')
print(f'Average System CPU Usage: {avg_system}%')
print(f'Average Idle CPU Usage: {avg_idle}%')
这段代码会计算出平均用户态、系统态和空闲态的 CPU 使用率。
可视化数据(可选): 可以使用 matplotlib 等库将数据绘制成图表,以便更直观地查看 CPU 使用情况的变化趋势。
import matplotlib.pyplot as plt
# 绘制用户态 CPU 使用率
plt.figure(figsize=(12, 6))
plt.plot(df['TIME'], df['%user'], label='%user')
plt.plot(df['TIME'], df['%system'], label='%system')
plt.plot(df['TIME'], df['%idle'], label='%idle')
plt.xlabel('Time')
plt.ylabel('CPU Usage (%)')
plt.title('CPU Usage Over Time')
plt.legend()
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()
这段代码会生成一个显示 CPU 使用率随时间变化的图表。
通过这些步骤,你可以有效地使用 cpustat 和相关工具来分析和可视化 CPU 的历史数据。