Python3.6 环境下 psutil 模块安装与系统监控实战

Luna
Luna
发布时间:2026-10-11| 3人浏览过
原创

本文详解 Python3.6 环境下 psutil 模块的安装方法及核心功能。psutil 是跨平台系统监控库,可获取 CPU、内存、磁盘及网络利用率。文章提供 Windows 下安装 .whl 文件的步骤,并展示通过 psutil 获取 CPU 时间、物理/逻辑核心数、内存使用量、磁盘 IO 及网络统计信息的完整代码示例,适用于系统资源分析与进程管理。

psutil 模块简介与安装

psutil 是一个跨平台的 Python 库,用于在 Python 中获取进程和系统利用率信息,包括 CPU、内存、磁盘、网络等。它常被用于系统监控、资源分析及进程管理,功能上类似于 Linux 下的 ps、top 和 lsof 等命令行工具。该库支持 32 位和 64 位的 Linux、Windows 及 OS X 等系统。

在 Windows 10 环境下使用 Python 3.6 时,通常需要通过 pip 安装对应的 .whl 文件。以下是具体的安装命令与输出示例:

D:\Program Files\python\Scripts>pip.exe install D:\python\psutil-5.2.2-cp36-cp36m-win_amd64.whl 
Processing d:\python\psutil-5.2.2-cp36-cp36m-win_amd64.whl 
Installing collected packages: psutil 
Successfully installed psutil-5.2.2 

CPU 监控功能

通过 psutil 可以获取 CPU 的所有逻辑信息,包括用户、系统、空闲及等待时间等。以下代码展示了如何查看 CPU 时间、逻辑核心数及物理核心数:

import psutil
# 查看 cpu 所有信息
>>> psutil.cpu_times()
scputimes(user=11677.09, nice=57.93, system=148675.58, idle=2167147.79, iowait=260828.48, irq=7876.28, softirq=0.0, steal=3694.59, guest=0.0, guest_nice=0.0)

若需查看每个 CPU 核心的时间比,可设置 percpu=True:

>>> psutil.cpu_times(percpu=True)
[scputimes(user=11684.17, nice=57.93, system=148683.01, idle=2168982.08, iowait=260833.18, irq=7882.35, softirq=0.0, steal=3697.3, guest=0.0, guest_nice=0.0)]

获取单个用户时间值及核心数量(逻辑与物理):

>>> psutil.cpu_times().user
11684.4
>>> psutil.cpu_count()
1
>>> psutil.cpu_count(logical=False)
1

内存与 Swap 监控

psutil 可获取系统总计内存、已使用内存及空闲内存等详细信息。以下代码展示了如何获取系统内存状态:

>>> import psutil
>>> mem = psutil.virtual_memory()
>>> mem
#系统内存的所有信息
svmem(total=1040662528, available=175054848, percent=83.2, used=965718016, free=74944512, active=566755328, inactive=59457536, buffers=9342976, cached=90767360)

分别提取总内存、已用内存和空闲内存:

>>> mem.total
1040662528
>>> mem.used
965718016
>>> mem.free
112779264

此外,还可以获取 Swap 内存信息:

>>> psutil.swap_memory()
sswap(total=0, used=0, free=0, percent=0, sin=0, sout=0)

磁盘与网络监控

使用 psutil 可以获取磁盘利用率、分区表参数及硬盘 IO 总个数。以下代码展示了如何获取磁盘完整信息及单个分区的 IO 个数:

psutil.disk_io_counters()
psutil.disk_partitions()
psutil.disk_usage('/')  #获取/分区的状态
psutil.disk_io_counters()
psutil.disk_io_counters(perdisk=True)  #perdisk=True参数获取单个分区IO个数

网络信息包括发送/接收字节数、包数等。获取网络总 IO 信息及每个接口的详细信息:

psutil.net_io_counters() 
psutil.net_io_counters(pernic=True)   #pernic=True

系统用户与进程管理

psutil 还可以获取当前系统用户登录信息及系统进程信息。以下代码展示了如何获取系统用户及进程列表:

psutil.users()
psutil.pids()

通过 psutil.Process 可以查看单个进程的详细信息,包括进程名、路径、状态、创建时间、CPU 亲和度、内存利用率及 IO 信息等:

p = psutil.Process(2423) 
p.name()  #进程名
p.exe()  #进程的bin路径
p.cwd()  #进程的工作目录绝对路径
p.status()  #进程状态
p.create_time() #进程创建时间
p.uids()  #进程uid信息
p.gids()  #进程的gid信息
p.cpu_times()  #进程的cpu时间信息,包括user,system两个cpu信息
p.cpu_affinity() #get进程cpu亲和度,如果要设置cpu亲和度,将cpu号作为参考就好
p.memory_percent() #进程内存利用率
p.memory_info()  #进程内存rss,vms信息
p.io_counters()  #进程的IO信息,包括读写IO数字及参数
p.connectios()  #返回进程列表
p.num_threads() #进程开启的线程数

此外,通过 psutil 的 Popen 方法可以启动应用程序并跟踪程序的相关信息:

from subprocess import PIPE
p = psutil.Popen(["/usr/bin/python", "-c", "print('hello')"],stdout=PIPE)
p.name()
p.username()

以上就是 Python3.6 环境下 psutil 模块安装与系统监控的详细内容,更多关于 Python 系统资源监控的资料请关注本站其它相关文章!

相关标签:

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

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 算法库。