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模块提供的这些功能可以帮助我们快速定位系统性能瓶颈,并实现对系统资源的有效管理以提高系统的响应速度和稳定性。