Python系统监控模块psutil功能与经典用法分析
简介
Psutil 是一个跨平台的库,可以实现在不同的操作系统(Linux、Windows、MacOS等)下查看CPU、内存、磁盘、网络等系统资源,以及操作进程信息和系统运行状态等。这使得Psutil成为一个重要的系统监控工具,也是很多Python监控和自动化工具必备的模块之一。
安装
在Python环境下使用pip或conda包管理器都可以很方便地安装Psutil模块:
pip install psutil
或者
conda install psutil
功能
Psutil模块提供了非常丰富的功能,包括:
- 获取CPU的核心数、使用率百分比、时间、负载等信息
- 获取内存占用率、使用量、可用量、swap分区信息等
- 获取磁盘分区信息、磁盘IO读写速率、磁盘空间使用情况等
- 获取系统启动时间、用户列表、进程ID、进程命令行、内存使用率、CPU使用率、线程数等
- 获取网络的监控信息、网络连接列表、网络IO流量统计等
Psutil模块提供的API如此丰富,可以满足很多监控和自动化场景的需求,比如实现自动清理磁盘空间、排查进程进入僵尸状态等。
经典用法
下面分别使用两个示例来展示如何使用Psutil模块。
示例一:监控系统资源
import psutil
# 获取CPU的核心数
core_num = psutil.cpu_count(logical=False)
print('CPU Core Number:', core_num)
# 获取CPU的使用率
cpu_percent = psutil.cpu_percent(interval=1)
print('CPU Percent:', cpu_percent, '%')
# 获取内存的使用率以及MB数量
total_mem = psutil.virtual_memory().total / 1024 / 1024
available_mem = psutil.virtual_memory().available / 1024 / 1024
used_mem = total_mem - available_mem
mem_percent = psutil.virtual_memory().percent
print('Memory Usage:', round(mem_percent, 2), '%', used_mem, '/', total_mem, 'MB')
# 获取磁盘IO读写速率
disk_read_rate = psutil.disk_io_counters().read_bytes / 1024 / 1024
disk_write_rate = psutil.disk_io_counters().write_bytes / 1024 / 1024
print('Disk IO Reading:', round(disk_read_rate, 2), 'MB/s', 'Disk IO Writing:', round(disk_write_rate, 2), 'MB/s')
示例二:监控某个进程的资源占用情况
import psutil
# 获取某个进程PID
proc_name = 'Chrome'
for proc in psutil.process_iter(['pid', 'name']):
if proc_name in proc.info['name']:
pid = proc.info['pid']
print(f'"{proc_name}" Process ID:', pid)
# 获取某个进程CPU和内存的使用率
p = psutil.Process(pid)
cpu_percent = p.cpu_percent(interval=1)
mem_percent = p.memory_percent()
print(f'"{proc_name}" CPU:', cpu_percent, '%', f'"{proc_name}" Memory:', mem_percent, '%')
总结
Psutil是一个极其强大的系统监控模块,无论是从功能还是跨平台性上都有很高的优势。实际使用中,可以根据需要选择不同的API去获取系统或进程的资源占用信息,从而实现监控系统状态、自动化任务等内容。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python系统监控模块psutil功能与经典用法分析 - Python技术站