Python 实时获取Linux服务器信息

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: Python 实时获取Linux服务器信息

性能测试中需要关注Linux服务器哪些数据?

在进行 Linux 服务器的性能测试时,需要关注多个关键指标以确保系统能够高效、稳定地运行。以下是一些常见的性能测试指标及其重要性:

1. CPU 使用率

用户时间 (User Time): 应用程序实际使用 CPU 的时间。

系统时间 (System Time): 内核和系统调用使用 CPU 的时间。

空闲时间 (Idle Time): CPU 空闲的时间。

等待 I/O 时间 (I/O Wait Time): CPU 等待 I/O 操作完成的时间。

2. 内存使用情况

总内存 (Total Memory): 系统总的物理内存。

已用内存 (Used Memory): 当前正在使用的内存。

可用内存 (Available Memory): 可供新进程使用的内存。

缓存 (Cache): 用于文件系统的缓存。

缓冲区 (Buffers): 用于块设备 I/O 的缓冲区。

交换空间 (Swap Space): 用于虚拟内存的磁盘空间。

交换使用 (Swap Usage): 当前正在使用的交换空间。

3. 磁盘 I/O

读取速率 (Read Rate): 每秒从磁盘读取的数据量。

写入速率 (Write Rate): 每秒写入磁盘的数据量。

IOPS (Input/Output Operations Per Second): 每秒的 I/O 操作次数。

等待队列长度 (Average Queue Length): 平均等待 I/O 操作的请求数。

4. 网络带宽

发送速率 (Send Rate): 每秒发送的数据量。

接收速率 (Receive Rate): 每秒接收的数据量。

网络错误 (Network Errors): 网络传输中的错误数。

丢包率 (Packet Loss): 数据包丢失的比例。

5. 进程信息

进程数 (Number of Processes): 系统中运行的进程数量。

僵尸进程 (Zombie Processes): 已经终止但其父进程尚未回收其资源的进程。

负载平均值 (Load Average): 过去 1 分钟、5 分钟和 15 分钟内的系统负载平均值。

6. 文件系统

挂载点 (Mount Points): 文件系统的挂载点。

使用率 (Usage): 每个挂载点的使用百分比。

剩余空间 (Free Space): 每个挂载点的剩余空间。

7. 系统日志

系统日志 (System Logs): 如 /var/log 目录下的日志文件,记录系统事件和错误信息。

8. 系统启动时间和响应时间

启动时间 (Boot Time): 系统启动所需的时间。

响应时间 (Response Time): 系统对请求的响应时间。

9. 上下文切换 (Context Switches)

上下文切换次数 (Context Switches): 每秒发生的上下文切换次数。

10. 中断 (Interrupts)

中断次数 (Interrupts): 每秒处理的硬件中断次数。

性能测试工具

为了收集这些数据,可以使用多种工具,包括但不限于:

top, htop: 实时查看系统资源使用情况。

vmstat, iostat, mpstat: 统计系统性能数据。

dstat: 多合一系统资源统计工具。

sar (System Activity Reporter): 收集、报告和保存系统活动信息。

nmon (Nigel's Monitor): 实时监控系统性能。

netstat, ss, iptraf, iftop: 网络流量监控。

tcpdump, Wireshark: 网络抓包分析。

iotop, iostat: 磁盘 I/O 监控。

sysdig, strace, ltrace: 系统调用跟踪。

示例命令

以下是一些常用的命令示例,可以帮助你获取上述指标:

# 查看 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电脑的cup、内存、磁盘,并每分钟记录一次数据到指定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")• 1.
• 2.
• 3.
• 4.
• 5.
• 6.
• 7.
• 8.
• 9.
• 10.
• 11.
• 12.
• 13.
• 14.
• 15.
• 16.
• 17.
• 18.
• 19.
• 20.
• 21.
• 22.
• 23.
• 24.
• 25.
• 26.
• 27.
• 28.
• 29.
• 30.
• 31.
• 32.
• 33.
• 34.
• 35.
• 36.
• 37.
• 38.
• 39.
• 40.
• 41.
• 42.
• 43.
• 44.
• 45.
• 46.
• 47.
• 48.
• 49.
• 50.
• 51.
• 52.
• 53.
• 54.
• 55.

代码说明

初始化 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。

请确保你有适当的权限来执行脚本,并且安装了所有必需的库。如果遇到任何问题,请告诉我!

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
12天前
|
缓存 监控 Linux
|
8天前
|
安全 算法 Linux
Linux 服务器还有漏洞?建议使用 OpenVAS 日常检查!
在数字化时代,Linux 服务器的安全至关重要。OpenVAS 是一款优秀的开源漏洞扫描工具,可以帮助及时发现并修复服务器中的安全隐患。本文将介绍 OpenVAS 的主要功能、使用方法及应对漏洞的措施,帮助用户加强服务器安全管理,确保企业数字化安全。
24 7
|
11天前
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
14天前
|
缓存 Unix Linux
服务器linux!!!
本文介绍了计算机的演变历史、硬件基础知识及服务器相关知识。从电子管时代的ENIAC到冯-诺伊曼架构,再到现代计算机系统组成,详细讲解了计算机的发展历程。此外,文章还介绍了服务器的分类、品牌、硬件组成以及IDC机房的上架流程,为读者提供了全面的技术背景知识。
33 0
服务器linux!!!
|
15天前
|
人工智能 安全 Linux
|
4天前
|
网络协议 安全 Linux
Linux 上设置自己的公共时间服务器
Linux 上设置自己的公共时间服务器
15 0
|
15天前
|
Linux
Linux 修改服务器时间
【10月更文挑战第27天】Linux 修改服务器时间
40 0
|
6天前
|
机器学习/深度学习 人工智能 弹性计算
什么是阿里云GPU云服务器?GPU服务器优势、使用和租赁费用整理
阿里云GPU云服务器提供强大的GPU算力,适用于深度学习、科学计算、图形可视化和视频处理等多种场景。作为亚太领先的云服务提供商,阿里云的GPU云服务器具备灵活的资源配置、高安全性和易用性,支持多种计费模式,帮助企业高效应对计算密集型任务。
|
8天前
|
存储 分布式计算 固态存储
阿里云2核16G、4核32G、8核64G配置云服务器租用收费标准与活动价格参考
2核16G、8核64G、4核32G配置的云服务器处理器与内存比为1:8,这种配比的云服务器一般适用于数据分析与挖掘,Hadoop、Spark集群和数据库,缓存等内存密集型场景,因此,多为企业级用户选择。目前2核16G配置按量收费最低收费标准为0.54元/小时,按月租用标准收费标准为260.44元/1个月。4核32G配置的阿里云服务器按量收费标准最低为1.08元/小时,按月租用标准收费标准为520.88元/1个月。8核64G配置的阿里云服务器按量收费标准最低为2.17元/小时,按月租用标准收费标准为1041.77元/1个月。本文介绍这些配置的最新租用收费标准与活动价格情况,以供参考。
|
6天前
|
机器学习/深度学习 人工智能 弹性计算
阿里云GPU服务器全解析_GPU价格收费标准_GPU优势和使用说明
阿里云GPU云服务器提供强大的GPU算力,适用于深度学习、科学计算、图形可视化和视频处理等场景。作为亚太领先的云服务商,阿里云GPU云服务器具备高灵活性、易用性、容灾备份、安全性和成本效益,支持多种实例规格,满足不同业务需求。