debian

如何通过debian cpustat分析CPU历史数据

小樊
45
2025-10-01 22:07:24
栏目: 智能运维

要通过 Debian 上的 cpustat 分析 CPU 历史数据,可以按照以下步骤进行:

  1. 安装 sysstat 包cpustatsysstat 包的一部分。如果尚未安装,可以使用以下命令安装:

    sudo apt update
    sudo apt install sysstat
    
  2. 收集 CPU 数据sysstatmpstat 工具可以用来收集 CPU 使用情况数据。默认情况下,mpstat 会每隔一段时间(通常是 1 分钟)收集一次数据。要收集一天的数据,可以运行:

    sudo mpstat -P ALL 1 1440 > cpu_usage.csv
    

    这个命令会收集 24 小时(1440 分钟)的数据,每分钟收集一次,并将结果输出到 cpu_usage.csv 文件中。

  3. 分析数据: 收集到的 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 使用率。

  4. 可视化数据(可选): 可以使用 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 的历史数据。

0
看了该问题的人还看了