Python脚本获取CPU内存状态信息

作者:IT技术圈子 浏览量:1254   发表于 2023-09-22 21:14 标签:

在IT运维中,通常需要对系统的运行状态进行监控并及时告警,以便排查和规避风险。

Python中提供了相应的类库用于获取系统相关状态信息,方便了运维的监控。


一、psutil类库简介

psutil类库官方文档地址:

https://pypi.org/project/psutil

psutil(进程和系统实用程序)是一个跨平台库,用于检索Python中运行的进程和系统利用率(CPU、内存、磁盘、网络、传感器)的信息。

它主要用于系统监控、分析和限制进程资源以及管理正在运行的进程。它实现了经典UNIX命令行工具提供的许多功能,如ps、top、iotop、lsof、netstat、ifconfig、free等。

二、psutil类库安装

pip install psutil

三、通过psutil获取系统状态信息

获取CPU信息

import psutil

# CPU物理核心数
cpu_count_physical = psutil.cpu_count(logical=False)
print(f"物理核心数:{cpu_count_physical}")

# CPU逻辑核心数
cpu_count = psutil.cpu_count(logical=True)
print(f"逻辑核心数:{cpu_count}")

# CPU的使用率
cpu_percent = psutil.cpu_percent(interval=1)
print(f"CPU使用率:{cpu_percent}%")

获取内存信息

# 物理内存总量
total_memory = psutil.virtual_memory().total
print("物理内存总量:",total_memory,"bytes(字节)")

# 可用内存总量
available_memory = psutil.virtual_memory().available
print("可用内存总量:",available_memory,"bytes(字节)")

# 内存使用率
memory_percent = psutil.virtual_memory().percent
print("内存使用率:",memory_percent,"%")

获取磁盘分区信息

# 磁盘分区
disk_partitions = psutil.disk_partitions()
print("磁盘分区",disk_partitions)

获取网卡信息

# 网卡IP地址信息
net_if_addrs = psutil.net_if_addrs()
print("网卡IP地址信息",net_if_addrs)

四、完整Python代码

import psutil
# CPU物理核心数
cpu_count_physical = psutil.cpu_count(logical=False)
print("物理核心数:" ,cpu_count_physical)

# CPU逻辑核心数
cpu_count = psutil.cpu_count(logical=True)
print("逻辑核心数:",cpu_count)

# CPU的使用率
cpu_percent = psutil.cpu_percent(interval=1)
print("CPU使用率:",cpu_percent,"%")

# 物理内存总量
total_memory = psutil.virtual_memory().total
print("物理内存总量:",total_memory,"bytes(字节)")

# 可用内存总量
available_memory = psutil.virtual_memory().available
print("可用内存总量:",available_memory,"bytes(字节)")

# 内存使用率
memory_percent = psutil.virtual_memory().percent
print("内存使用率:",memory_percent,"%")

# 磁盘分区
disk_partitions = psutil.disk_partitions()
print("磁盘分区",disk_partitions)

# 网卡IP地址信息
net_if_addrs = psutil.net_if_addrs()
print("网卡IP地址信息",net_if_addrs)

以上代码主要是获取了系统状态信息,但获取信息不是最终目的,而是根据实际业务需求确定是录入数据库用以分析、实时看板展示、还是告警通知等等。针对这些业务需求还需要做额外的工作。


以上列举的是比较基本的使用方法,psutil还有很多更高级的功能及用法,具体参见官方的psutil文档。