1. psutil模块简介
psutil是一个跨平台的Python库,用于检索有关运行中计算机系统的信息。它提供了一种简单而便捷的方式来获取CPU使用率、内存使用情况、磁盘活动、网络状态等系统监控信息。通过使用psutil模块,我们可以编写应用程序来监控和管理正在运行的系统。
2. 安装psutil模块
在使用psutil模块之前,我们需要先安装它。psutil模块可以通过pip命令进行安装,打开命令行终端,输入以下命令进行安装:
pip install psutil
3. 获取CPU使用率
psutil模块提供了一个函数psutil.cpu_percent()
,用于获取当前系统的CPU使用率。使用该函数可以监控系统的CPU负载情况。
下面是一个示例,展示了如何使用psutil来获取并打印CPU使用率:
import psutil
# 获取CPU使用率
cpu_usage = psutil.cpu_percent()
print(f"CPU使用率: {cpu_usage}%")
运行上述代码,即可得到当前系统的CPU使用率。
3.1 获取每个CPU核心的使用率
如果我们需要获取每个CPU核心的使用率,可以使用psutil.cpu_percent(percpu=True)
函数,其返回一个列表,每个元素表示一个CPU核心的使用率。
下面是一个示例代码:
import psutil
# 获取每个CPU核心的使用率
cpu_usage = psutil.cpu_percent(percpu=True)
for i, usage in enumerate(cpu_usage):
print(f"CPU核心{i}使用率: {usage}%")
通过遍历列表,我们可以打印出每个CPU核心的使用率。
4. 获取内存使用情况
使用psutil模块的psutil.virtual_memory()
函数可以获取当前系统的内存使用情况。该函数返回一个命名元组,包含了总内存、可用内存、已使用内存、内存使用率等信息。
下面是一个示例代码:
import psutil
# 获取内存使用情况
memory_info = psutil.virtual_memory()
total_memory = memory_info.total
available_memory = memory_info.available
used_memory = memory_info.used
memory_usage = memory_info.percent
print(f"总内存: {total_memory} bytes")
print(f"可用内存: {available_memory} bytes")
print(f"已使用内存: {used_memory} bytes")
print(f"内存使用率: {memory_usage}%")
运行上述代码,即可得到当前系统的内存使用情况。
5. 获取磁盘活动
使用psutil模块的psutil.disk_io_counters()
函数可以获取当前系统的磁盘I/O活动情况。该函数返回一个命名元组,包含了磁盘读取次数、磁盘写入次数、磁盘读取字节数、磁盘写入字节数等信息。
下面是一个示例代码:
import psutil
# 获取磁盘I/O活动情况
disk_info = psutil.disk_io_counters()
read_count = disk_info.read_count
write_count = disk_info.write_count
read_bytes = disk_info.read_bytes
write_bytes = disk_info.write_bytes
print(f"磁盘读取次数: {read_count}")
print(f"磁盘写入次数: {write_count}")
print(f"磁盘读取字节数: {read_bytes} bytes")
print(f"磁盘写入字节数: {write_bytes} bytes")
运行上述代码,即可得到当前系统的磁盘I/O活动情况。
6. 获取网络状态
使用psutil模块的psutil.net_io_counters()
函数可以获取当前系统的网络I/O活动情况。该函数返回一个命名元组,包含了网络接收字节数、网络发送字节数等信息。
下面是一个示例代码:
import psutil
# 获取网络I/O活动情况
net_info = psutil.net_io_counters()
bytes_sent = net_info.bytes_sent
bytes_received = net_info.bytes_recv
print(f"发送字节数: {bytes_sent} bytes")
print(f"接收字节数: {bytes_received} bytes")
运行上述代码,即可得到当前系统的网络I/O活动情况。
7. 结束进程
使用psutil模块的psutil.Process(pid).terminate()
函数可以结束指定pid的进程。
下面是一个示例代码:
import psutil
# 结束进程
pid = 12345
psutil.Process(pid).terminate()
print(f"进程{pid}已结束")
运行上述代码,即可结束指定pid的进程。
8. 总结
通过psutil模块,我们可以方便地获取系统监控信息,包括CPU使用率、内存使用情况、磁盘活动、网络状态等。psutil模块提供了简单而强大的函数来获取这些信息,并且跨平台兼容性也很好。
在编写应用程序时,我们可以使用psutil模块来监控系统状态,根据监控结果来进行调优和管理,以提高系统的性能和稳定性。