psutil:Python 系统监控的基础设施
psutil:Python 系统监控的基础设施
写 Python 的人,迟早会遇到需要查看系统资源的场景。CPU 满负荷了,内存快见底了,磁盘快没空间了。psutil 就是专门解决这些问题的库。从 2009 年发布至今,它已经成了 Python 生态中系统监控领域引用最广的第三方包。

跨平台,一个接口覆盖所有系统
psutil 全称 Process and System Utilities。支持 Linux、Windows、macOS、FreeBSD、NetBSD、OpenBSD、Solaris 和 AIX。同一套代码在不同系统上结果一致。
CPU 占用率:
>>> psutil.cpu_percent(interval=1, percpu=True)
[4.0, 6.9, 3.7, 9.2]
内存信息:
>>> psutil.virtual_memory()
svmem(total=10367352832, available=6472179712, percent=37.6, ...)
磁盘分区、网络连接、传感器温度、电池状态,都有对应函数。命令行工具 ps、top、free、netstat、ifconfig 能做的事,psutil 在 Python 里都能做。
进程管理,比解析 /proc 方便得多
psutil 的 Process 类可以获取任意进程的信息:
>>> p = psutil.Process(7055)
>>> p.name()
'python3'
>>> p.memory_info()
pmem(rss=3164160, vms=4410163, ...)
>>> p.net_connections(kind='tcp')
process_iter() 可以遍历所有进程做批量处理。写监控脚本或自动化运维工具时,比自己解析 /proc 文件系统省事得多。
330 万月下载量,生态地位稳固
psutil 排在 PyPI 下载量前 100,每月超过 3.3 亿次下载。GitHub 上有 76 万以上仓库依赖它,PyPI 上有 1.5 万个包以它为基础。

很多监控工具和运维框架底层都依赖 psutil。即使你没直接装过它,也可能在间接使用。
安装与协议
pip install psutil
BSD-3 协议,商业使用没有限制。官方文档站点有完整的 API 参考和用例,覆盖了日常开发需要用到的绝大多数功能。
对 Python 开发者来说,psutil 属于那种可能平时想不起来,但真需要查系统状态时最直接的选择。服务器出问题,打开 Python 交互环境,几行代码就能拿到系统全貌。
时想不起来,但真需要查系统状态时最直接的选择。服务器出问题,打开 Python 交互环境,几行代码就能拿到系统全貌。
更多推荐



所有评论(0)