在日常的开发工作中,系统监控是不可或缺的一部分。无论你是需要监控服务器的CPU使用率、内存占用情况,还是跟踪网络连接,及时掌握系统的状态都是至关重要的。然而,传统的监控方式往往涉及复杂的工具和冗长的配置,耗时且容易出错。那么,如何在Python中简化这一过程呢?答案就是——psutil。
什么是psutil?
psutil,全名为Process and System Utilities,是一个跨平台的Python库,用于方便地获取系统运行时的信息。无论是CPU、内存、磁盘、网络、还是系统进程状态,psutil都能通过简洁的API一手掌握。
为什么选择psutil?
- 轻量且功能强大:psutil库非常轻量,不会给你的系统带来额外的负担,同时它提供了丰富的功能,几乎涵盖了所有你能想到的系统监控需求。
- 跨平台支持:无论你是在Windows、Linux还是macOS上开发,psutil都能无缝运行。
- 简单易用的API:相比于其他工具,psutil的API设计得非常直观、易用。只需几行代码,就可以完成复杂的系统监控任务。
安装psutil
安装psutil非常简单,你可以使用Python的包管理工具pip来快速安装。在命令行中执行以下命令即可:
pip install psutil
该命令会自动下载并安装psutil及其所有依赖库。一旦安装完成,你就可以在Python脚本中导入psutil库并开始使用它来获取各种系统信息了。
安装成功返回信息
基础功能一览
让我们通过一些简单的例子,看看psutil如何简化系统监控任务。
(1) 获取CPU信息
import psutil
# 获取CPU的使用率
cpu_usage = psutil.cpu_percent(interval=1)
print(f"当前CPU使用率: {cpu_usage}%")
# 获取每个CPU的使用率
cpu_usage_per_cpu = psutil.cpu_percent(interval=1, percpu=True)
print(f"每个CPU的使用率: {cpu_usage_per_cpu}")
上述代码执行成功后,如下图所示:
获取CPU信息
(2) 内存监控
# 获取虚拟内存信息
virtual_memory = psutil.virtual_memory()
print(f"总内存: {virtual_memory.total / (1024**3):.2f} GB")
print(f"已使用内存: {virtual_memory.used / (1024**3):.2f} GB")
print(f"剩余内存: {virtual_memory.available / (1024**3):.2f} GB")
上述代码执行成功后,如下图所示:
内存监控
(3) 磁盘使用情况
# 获取磁盘分区信息
disk_usage = psutil.disk_usage('/')
print(f"磁盘总容量: {disk_usage.total / (1024**3):.2f} GB")
print(f"已使用: {disk_usage.used / (1024**3):.2f} GB")
print(f"剩余空间: {disk_usage.free / (1024**3):.2f} GB")
上述代码执行成功后,如下图所示:
磁盘使用情况
(4) 网络监控
# 获取网络IO信息
net_io = psutil.net_io_counters()
print(f"发送字节数: {net_io.bytes_sent / (1024**2):.2f} MB")
print(f"接收字节数: {net_io.bytes_recv / (1024**2):.2f} MB")
上述代码执行成功后,如下图所示:
网络监控
(5) 进程管理
除了基础的系统资源监控,psutil还提供了强大的进程管理功能,你可以轻松获取、操作系统进程。
# 获取当前运行的进程列表
processes = psutil.pids()
for pid in processes:
p = psutil.Process(pid)
print(f"PID: {pid}, 名称: {p.name()}, 状态: {p.status()}")
你还可以通过psutil终止进程、查看进程的资源占用情况等等。与手动编写复杂的系统监控脚本相比,psutil让这一切变得更加简单直观。如下图所示:
进程管理
系统巡检
通过利用Python的psutil库,我们能够实时监测主机,精确获取系统的CPU负载、内存占用、磁盘I/O、网络流量等关键健康指标。结合自动化工具,还可以对业务系统的主机资源利用率进行批量巡检,实现高效的系统管理和维护。巡检结果如下图:
巡检结果
总结
对于开发者来说,简化系统监控任务意味着节省时间、降低错误率,并提高工作效率。psutil作为一款轻量级且功能强大的工具,不仅让Python开发者能够更方便地实现系统监控,还能通过其丰富的API满足各种复杂的监控需求。如果你还在为繁琐的系统监控任务而烦恼,不妨试试psutil,它一定会成为你得力的助手。!
脚本获取方式
上述脚本已经上传上传到gitee,有需要的小伙伴可以自行获取。gitee上的仓库主要是分享一些工作中常用的脚本。小伙伴可以frok或者watch仓库,这样有更新可以及时关注到。