psutil 模块概述
psutil 是一个强大的跨平台 python 库,主要用于系统监控、性能分析和进程管理。它提供了类似 ps、top、lsof 等命令的功能,支持获取 cpu、内存、磁盘、网络等系统资源的使用情况。
支持的系统
psutil 支持大多数操作系统,包括 linux、windows、macos、freebsd 和 solaris 等,可以获取系统运行信息,如 cpu 使用率、内存状态、磁盘读写数据、网络吞吐量等。
安装 psutil
使用以下命令可以在任何系统中安装 psutil:
# 使用 pip 安装 pip install psutil
使用示例
cpu 信息获取
获取 cpu 时间的使用情况:
import psutil
# 获取详细的 cpu 时间信息
cpu_times = psutil.cpu_times()
print("用户模式时间:", cpu_times.user)
print("系统模式时间:", cpu_times.system)计算 cpu 使用率(可以指定间隔时间):
cpu_percent = psutil.cpu_percent(interval=1)
print(f"当前 cpu 使用率:{cpu_percent}%")内存信息获取
可以通过 virtual_memory() 方法来获取内存的总量、可用量及占用率。
mem = psutil.virtual_memory()
print(f"总内存:{mem.total / (1024 ** 3):.2f} gb")
print(f"已用内存:{mem.used / (1024 ** 3):.2f} gb")
print(f"剩余内存:{mem.available / (1024 ** 3):.2f} gb")
print(f"内存使用率:{mem.percent}%")磁盘信息获取
disk_partitions() 和 disk_usage() 函数可以查看系统磁盘分区信息及分区使用情况:
# 获取系统分区信息
partitions = psutil.disk_partitions()
for partition in partitions:
usage = psutil.disk_usage(partition.mountpoint)
print(f"分区:{partition.device}")
print(f"总容量:{usage.total / (1024 ** 3):.2f} gb")
print(f"已用容量:{usage.used / (1024 ** 3):.2f} gb")
print(f"剩余容量:{usage.free / (1024 ** 3):.2f} gb")
print(f"使用率:{usage.percent}%")网络信息获取
net_io_counters() 方法可获取系统网络的总流量,可以加上 pernic=true 参数获取每个网卡的流量:
net_io = psutil.net_io_counters()
print(f"发送数据:{net_io.bytes_sent / (1024 ** 2):.2f} mb")
print(f"接收数据:{net_io.bytes_recv / (1024 ** 2):.2f} mb")进程管理功能
psutil 提供了全面的进程管理功能,可以查看系统中所有进程 id,获取进程的相关信息,并控制进程的状态。
查看系统进程
获取系统所有进程 id:
pids = psutil.pids()
print("系统中所有的进程 id:", pids)获取进程详情
以某个特定进程 id(如 1234)为例,查看进程的详细信息:
pid = 1234
process = psutil.process(pid)
print("进程名称:", process.name())
print("进程状态:", process.status())
print("进程使用的内存:", process.memory_info().rss / (1024 ** 2), "mb")示例脚本:监控系统资源
以下是一个完整的脚本示例,用于获取系统硬件信息,如 cpu 使用率、内存和磁盘情况:
import psutil
import datetime
# 获取系统启动时间
boot_time = datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%y-%m-%d %h:%m:%s")
print("系统启动时间:", boot_time)
# cpu 使用率
print(f"cpu 使用率:{psutil.cpu_percent(interval=1)}%")
# 内存信息
mem = psutil.virtual_memory()
print(f"内存总量:{mem.total / (1024 ** 3):.2f} gb")
print(f"已用内存:{mem.used / (1024 ** 3):.2f} gb")
print(f"剩余内存:{mem.available / (1024 ** 3):.2f} gb")
# 磁盘使用信息
disk_usage = psutil.disk_usage('/')
print(f"磁盘总量:{disk_usage.total / (1024 ** 3):.2f} gb")
print(f"磁盘已用:{disk_usage.used / (1024 ** 3):.2f} gb")
print(f"磁盘剩余:{disk_usage.free / (1024 ** 3):.2f} gb")以下是 psutil 模块的总结:
总结
psutil 模块是一个强大且易于使用的 python 库,专为系统监控、资源管理和进程控制设计。通过它可以跨平台地获取 cpu、内存、磁盘、网络等系统资源的实时信息,同时还能便捷地管理系统进程。
核心功能
- cpu 管理:获取 cpu 使用率、核心数、时间等信息。
- 内存管理:查看系统内存的总量、可用量及使用情况。
- 磁盘管理:查看磁盘分区、使用率及 i/o 情况。
- 网络管理:获取网络的发送、接收数据总量和连接信息。
- 进程管理:支持列出系统进程,获取进程状态、资源使用情况等。
使用场景
psutil 广泛应用于性能监控、系统日志记录、数据分析工具、自动化运维等场景。它不仅帮助用户快速搭建监控脚本,还能用于调试和系统诊断,是开发者和运维人员的重要工具。
主要优点
- 跨平台支持,兼容主流操作系统。
- api 丰富,支持几乎所有系统资源的获取。
- 简单易用,函数调用直观,文档完善。
到此这篇关于python psutil 模块概述的文章就介绍到这了,更多相关python psutil 模块内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论