目 录CONTENT

文章目录

获取系统性能指标的示例命令

Administrator
2024-10-31 / 0 评论 / 0 点赞 / 15 阅读 / 0 字

获取系统性能指标的示例命令

  • 查看 CPU 使用情况

    top -b -n 1 | grep "Cpu(s)"
    
  • 查看内存使用情况

    free -h
    
  • 查看磁盘 I/O

    iostat -x 1 1
    
  • 查看网络带宽

    ifstat 1 1
    
  • 查看进程信息

    ps aux --sort=-%cpu
    
  • 查看文件系统使用情况

    df -h
    
  • 查看系统日志

    tail -f /var/log/syslog
    
  • 查看上下文切换和中断

    vmstat 1 1
    

Python 脚本:

每1秒获取一次Mac电脑的CPU、内存、磁盘使用情况,并每分钟记录一次数据到指定Excel文件中

import psutil
import time
from openpyxl import Workbook
from openpyxl.utils import get_column_letter

# 初始化 Excel 工作簿
wb = Workbook()
ws = wb.active
ws.title = "System Monitor"
ws.append(["Timestamp", "CPU (%)", "Memory (%)", "Disk (%)"])

# 记录数据的时间间隔(秒)
record_interval = 60
data_points = []

def get_system_info():
    # 获取 CPU 使用率
    cpu_percent = psutil.cpu_percent(interval=1)
    # 获取内存使用情况
    memory_info = psutil.virtual_memory()
    memory_percent = memory_info.percent
    # 获取磁盘使用情况
    disk_info = psutil.disk_usage('/')
    disk_percent = disk_info.percent
    return cpu_percent, memory_percent, disk_percent

def record_data_to_excel(data_points):
    for data_point in data_points:
        ws.append(data_point)
    # 计算平均值
    if data_points:
        avg_cpu = sum(point[1] for point in data_points) / len(data_points)
        avg_memory = sum(point[2] for point in data_points) / len(data_points)
        avg_disk = sum(point[3] for point in data_points) / len(data_points)
        # 将平均值写入 Excel
        ws.append(["Average", avg_cpu, avg_memory, avg_disk])
    # 保存 Excel 文件
    wb.save("system_monitor.xlsx")

try:
    while True:
        # 获取当前时间戳
        timestamp = time.strftime("%Y-%m-%d %H:%M:%S")
        # 获取系统信息
        cpu_percent, memory_percent, disk_percent = get_system_info()
        # 打印当前系统信息
        print(f"Timestamp: {timestamp}, CPU: {cpu_percent}%, Memory: {memory_percent}%, Disk: {disk_percent}%")
        # 将数据点添加到列表中
        data_points.append([timestamp, cpu_percent, memory_percent, disk_percent])
        # 每分钟记录一次数据到 Excel 文件
        if len(data_points) >= record_interval:
            record_data_to_excel(data_points)
            data_points = []  # 清空数据点列表
        # 等待 1 秒
        time.sleep(1)
except KeyboardInterrupt:
    # 如果用户中断程序(例如按 Ctrl+C),保存剩余的数据点
    if data_points:
        record_data_to_excel(data_points)
    print("Monitoring stopped. Data saved to system_monitor.xlsx")

代码说明

  • 初始化 Excel 工作簿: 创建一个新的 Excel 工作簿,并设置工作表名称为 "System Monitor"。在第一行添加列标题。

  • 定义 get_system_info 函数: 使用 psutil 库获取 CPU 使用率、内存使用率和磁盘使用率。

  • 定义 record_data_to_excel 函数: 将数据点列表中的数据写入 Excel 文件,并计算 CPU、内存和磁盘使用率的平均值,并将这些平均值写入 Excel 文件。保存 Excel 文件。

  • 主循环: 每秒获取一次系统信息并打印。将获取的数据添加到 data_points 列表中。当 data_points 列表中的数据点数量达到 60 个时(即每分钟),调用 record_data_to_excel 函数将数据写入 Excel 文件,并清空 data_points 列表。使用 time.sleep(1) 使程序暂停 1 秒,以实现每秒获取一次数据。

  • 异常处理: 如果用户通过按 Ctrl+C 中断程序,保存剩余的数据点并退出程序。

运行脚本

将上述代码保存到一个 Python 文件中(例如 system_monitor.py),然后在 Linux 终端中运行它:

python3 system_monitor.py

这将开始每秒获取一次系统信息,并每分钟将数据记录到 system_monitor.xlsx 文件中。每分钟结束时,还会计算并记录 CPU、内存和磁盘使用率的平均值。如果需要停止监控,可以按 Ctrl+C。

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区