Python的psutil模块怎么使用

1. psutil模块介绍

psutil是一个跨平台的Python库,用于检索运行中的进程和系统资源利用率(如CPU,内存,磁盘和网络)。该模块提供了对进程和系统资源使用情况的实时更新,能够帮助我们监视系统性能并实现资源管理。

2. psutil模块的安装

使用pip工具可以很容易地安装psutil模块,具体方法如下:

pip install psutil

3. 获取CPU的使用情况

3.1 获取CPU逻辑核心数量

我们可以通过调用psutil.cpu_count()函数获取CPU的逻辑核心数量,该函数的返回值为整数,表示CPU的逻辑核心数。

import psutil

logical_cpu_count = psutil.cpu_count()

print("Logical CPU count:", logical_cpu_count)

输出结果:

Logical CPU count: 8

3.2 获取CPU的使用率

我们还可以通过调用psutil.cpu_percent()函数获取CPU的使用率,该函数的参数interval表示获取CPU使用率的时间间隔,默认为1秒。

import psutil

import time

while True:

cpu_usage = psutil.cpu_percent(interval=1)

print(f"Current CPU usage: {cpu_usage}%")

time.sleep(1)

输出结果:

Current CPU usage: 12.1%

Current CPU usage: 7.0%

Current CPU usage: 10.3%

Current CPU usage: 6.9%

注意:使用psutil.cpu_percent()函数时需要注意,在Linux系统下,如果使用的是psutil版本较低的话,该函数会返回CPU所有核心的平均使用率,而不是各核心的使用率。如果需要获取各核心的使用率,需要使用psutil.cpu_percent(percpu=True)函数。

4. 获取内存的使用情况

4.1 获取内存的使用量

我们可以通过调用psutil.virtual_memory()函数获取系统内存的使用情况,该函数返回一个namedtuple对象,包含了系统内存的各种参数。

import psutil

memory_info = psutil.virtual_memory()

print("Memory available:", memory_info.available)

print("Memory total:", memory_info.total)

print("Memory used:", memory_info.used)

输出结果:

Memory available: 10659685376

Memory total: 17084741632

Memory used: 6425056256

4.2 获取交换分区的使用情况

我们还可以通过调用psutil.swap_memory()函数获取系统交换分区的使用情况,该函数返回一个namedtuple对象,包含了交换分区的各种参数。

import psutil

swap_info = psutil.swap_memory()

print("Swap available:", swap_info.free)

print("Swap total:", swap_info.total)

print("Swap used:", swap_info.used)

输出结果:

Swap available: 4115180032

Swap total: 4294963200

Swap used: 179783168

5. 监控进程的使用情况

psutil模块还可以用于获取进程的使用情况,具体操作如下:

5.1 获取进程列表

我们可以通过调用psutil.pids()函数获取当前所有进程的PID列表。

import psutil

pid_list = psutil.pids()

print(pid_list)

输出结果:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ..., 7475, 7476, 7477, 7478, 7481]

5.2 获取指定进程的使用情况

我们可以通过调用psutil.Process(pid)函数获取指定进程的使用情况,该函数的参数pid为需要获取使用情况的进程的PID。

import psutil

# 获取指定PID进程的使用情况

process = psutil.Process(7244)

print(process.name()) # 获取进程名称

print(process.cpu_percent(interval=1)) # 获取CPU使用率

print(process.memory_info().rss) # 获取内存使用量

输出结果:

firefox

9.8

57661440

6. 其他功能

6.1 获取系统启动时间

我们可以通过调用psutil.boot_time()函数获取系统启动时间(以秒为单位)。

import psutil

boot_time = psutil.boot_time()

print(boot_time)

输出结果:

1627534188.0

6.2 获取磁盘分区的使用情况

我们可以通过调用psutil.disk_partitions()函数获取所有磁盘分区的使用情况,该函数的返回值是一个namedtuple对象的列表。

import psutil

partitions_list = psutil.disk_partitions()

for partition in partitions_list:

print("Device:", partition.device)

print("Mount point:", partition.mountpoint)

print("File system type:", partition.fstype)

print("Usage:", psutil.disk_usage(partition.mountpoint))

输出结果:

Device: C:\\

Mount point: C:\\

File system type: NTFS

Usage: sdiskusage(total=249952401408, used=193447303424, free=56505107968, percent=77.4)

Device: D:\\

Mount point: D:\\

File system type: NTFS

Usage: sdiskusage(total=64719792128, used=43547801600, free=21171990528, percent=67.3)

...

总结

本文介绍了如何使用psutil模块来监控系统资源的使用情况。通过调用不同的函数,我们可以获取CPU、内存、磁盘等各种资源的使用情况,也可以监控进程的使用情况。psutil模块提供的这些功能可以帮助我们快速定位系统性能瓶颈,并实现对系统资源的有效管理以提高系统的响应速度和稳定性。

后端开发标签