Python psutil模块全面指南:系统监控与进程管理实战

Hazel
Hazel
发布时间:2026-10-15| 5人浏览过
原创

本文详细介绍Python中psutil跨平台系统监控库的安装与核心用法。涵盖获取用户信息、CPU、内存、磁盘、网络IO及系统进程管理等关键API,提供完整代码示例,帮助开发者实现系统资源监控与进程控制。

psutil模块简介与平台支持

psutil(Process and System Utilities)是一个跨平台的Python库,用于获取运行中进程和系统利用率(包括CPU、内存、磁盘、网络及传感器)的相关信息。它主要应用于系统监视、分析以及限制进程资源,同时支持对正在运行的进程进行管理。该库实现了类似经典UNIX命令行工具的功能,如ps、top、iotop、lsof、netstat、ifconfig和free等提供的能力。

psutil支持多种操作系统平台,包括Linux、Windows、macOS、FreeBSD、OpenBSD、NetBSD、Sun Solaris以及AIX等。

psutil模块安装

安装psutil模块非常简单,只需在终端执行以下命令即可:


pip install psutil

系统基本信息获取

获取用户系统基本信息,包括当前登录用户和系统启动时间。


import psutil
import datetime

print("当前用户:", psutil.users())
print("当前系统时间:", psutil.boot_time())  # 以时间戳格式返回)
print(datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H: %M: %S"))  # 转换成自然时间格式

系统内存监控

获取系统内存使用情况,包括总内存、已用内存、空闲内存及使用百分比。


mem = psutil.virtual_memory()
print("系统内存全部信息:", mem)
mem_total = float(mem.total)
mem_used = float(mem.used)
mem_free = float(mem.free)
mem_percent = float(mem.percent)

print(f"系统总计内存:{mem_total}")
print(f"系统已经使用内存:{mem_used}")
print(f"系统空闲内存:{mem_free}")
print(f"系统内存使用率:{mem_percent}")

CPU与交换内存监控

获取CPU相关信息,包括CPU时间统计、逻辑核心数量以及交换内存(swap)状态。


print("CPU汇总信息:", psutil.cpu_times())
print("cpu逻辑个数:", psutil.cpu_count())
print("swap内存信息:", psutil.swap_memory())

磁盘分区与IO监控

获取磁盘相关信息,包括磁盘分区列表、指定分区的空间使用情况以及磁盘读写IO计数器。


print("获取磁盘的完整信息:", psutil.disk_partitions())
print("获取分区表的参数:", psutil.disk_usage('/'))  # 获取/分区的状态
print("获取硬盘IO总个数:", psutil.disk_io_counters())
print("获取单个分区IO个数:", psutil.disk_io_counters(perdisk=True))  # perdisk=True参数获取单个分区IO个数

网络IO统计

获取网络IO统计信息,包括总的网络字节收发量。


print("获取网络总IO信息:", psutil.net_io_counters())

系统进程列表管理

获取系统进程管理信息,列出所有正在运行的进程ID。


print("查看系统全部进程:", psutil.pids())

单个进程详细信息查询

获取单个特定进程的详细信息,包括进程名、可执行文件路径、状态、创建时间、CPU时间、内存利用率、内存详情(RSS/VMS)、IO统计、线程数等。


pid_info = psutil.Process(1200)
print(pid_info.name())  # 进程名
print(pid_info.exe())  # 进程的bin路径
print(pid_info.status())  # 进程状态
print(pid_info.create_time())  # 进程创建时间
print(pid_info.cpu_times())  # 进程的cpu时间信息,包括user,system两个cpu信息
print(pid_info.memory_percent())  # 进程内存利用率
print(pid_info.memory_info())  # 进程内存rss,vms信息
print(pid_info.io_counters())  # 进程的IO信息,包括读写IO数字及参数
print(pid_info.num_threads())  # 进程开启的线程数

完整代码示例与运行结果

以下是整合上述各项功能的完整Python源码示例:


import psutil
import datetime

# 用户,系统相关:
print("当前用户:", psutil.users())
print("当前系统时间:", psutil.boot_time())  # 以linux时间格式返回)
print(datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H: %M: %S"))  # 转换成自然时间格式

# 内存相关:
mem = psutil.virtual_memory()
print("系统内存全部信息:", mem)
mem_total = float(mem.total)
mem_used = float(mem.used)
mem_free = float(mem.free)
mem_percent = float(mem.percent)

print(f"系统总计内存:{mem_total}")
print(f"系统已经使用内存:{mem_used}")
print(f"系统空闲内存:{mem_free}")
print(f"系统内存使用率:{mem_percent}")

# CPU相关:
print("CPU汇总信息:", psutil.cpu_times())
print("cpu逻辑个数:", psutil.cpu_count())
print("swap内存信息:", psutil.swap_memory())

# 磁盘相关:
print("获取磁盘的完整信息:", psutil.disk_partitions())
print("获取分区表的参数:", psutil.disk_usage('/'))  # 获取/分区的状态
print("获取硬盘IO总个数:", psutil.disk_io_counters())
print("获取单个分区IO个数:", psutil.disk_io_counters(perdisk=True))  # perdisk=True参数获取单个分区IO个数

# 网络相关:
print("获取网络总IO信息:", psutil.net_io_counters())

# 系统进程管理:
print("查看系统全部进程:", psutil.pids())

# 单个进程的详细信息:
pid_info = psutil.Process(1200)
print(pid_info.name())  # 进程名
print(pid_info.exe())  # 进程的bin路径
print(pid_info.status())  # 进程状态
print(pid_info.create_time())  # 进程创建时间
print(pid_info.cpu_times())  # 进程的cpu时间信息,包括user,system两个cpu信息
print(pid_info.memory_percent())  # 进程内存利用率
print(pid_info.memory_info())  # 进程内存rss,vms信息
print(pid_info.io_counters())  # 进程的IO信息,包括读写IO数字及参数
print(pid_info.num_threads())  # 进程开启的线程数

运行上述代码后,将输出当前系统的各项监控数据,具体结果取决于运行环境。

至此,关于Python中psutil模块的使用介绍完毕。如需了解更多相关技术内容,建议查阅本站过往文章或继续浏览后续更新。感谢大家的支持!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。