当前位置: 首页 > news >正文

使用 Python 的 psutil 库进行系统资源监控

在开发应用程序或进行系统管理时,我们常常需要获取系统的资源使用情况,比如 CPU、内存、磁盘等的利用率。
Python 提供了一个非常强大的库 psutil,可以帮助开发者轻松地获取这些信息。本文将介绍 psutil 库的基本使用方法,并展示如何用它来监控系统资源。

1.安装 psutil 库

首先,我们需要安装 psutil 库。可以通过 pip 来安装:

pip install psutil

2.获取 CPU 信息

使用 psutil,我们可以轻松获取 CPU 的利用率、核心数以及每个核心的使用情况。

获取 CPU 使用率

使用 psutil.cpu_percent() 获取整个系统的 CPU 使用率,单位为百分比。我们可以设置 interval 参数来指定时间间隔,例如:

import psutil# 获取 CPU 使用率
cpu_usage = psutil.cpu_percent(interval=1)  # 等待1秒钟后获取数据
print(f"CPU 使用率:{cpu_usage}%")

获取每个 CPU 核心的使用情况

如果你想查看每个 CPU 核心的使用情况,可以使用 psutil.cpu_percent(percpu=True):

cpu_cores_usage = psutil.cpu_percent(interval=1, percpu=True)
print("每个 CPU 核心的使用率:", cpu_cores_usage)

3. 获取内存信息

psutil 还可以帮助我们获取系统的内存使用情况,包括总内存、已用内存、剩余内存等。

获取系统内存使用情况

memory = psutil.virtual_memory()
print(f"总内存: {memory.total / (1024 ** 3):.2f} GB")
print(f"已用内存: {memory.used / (1024 ** 3):.2f} GB")
print(f"可用内存: {memory.available / (1024 ** 3):.2f} GB")
print(f"内存使用率: {memory.percent}%")

获取交换空间(Swap)信息

交换空间是硬盘上用于虚拟内存的区域,可以查看它的使用情况:

swap = psutil.swap_memory()
print(f"交换空间总大小: {swap.total / (1024 ** 3):.2f} GB")
print(f"交换空间已用: {swap.used / (1024 ** 3):.2f} GB")
print(f"交换空间使用率: {swap.percent}%")

4.获取磁盘信息

psutil 还提供了获取磁盘使用情况和磁盘分区信息的功能。

获取磁盘使用情况

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")
print(f"磁盘使用率: {disk_usage.percent}%")

获取磁盘分区信息

disk_partitions = psutil.disk_partitions()
for partition in disk_partitions:print(f"磁盘分区: {partition.device}")print(f"挂载点: {partition.mountpoint}")print(f"文件系统类型: {partition.fstype}")

5.获取网络信息

psutil 还可以用于监控系统的网络连接和带宽使用情况。

获取网络接口信息

net_if_addrs = psutil.net_if_addrs()
for interface, addrs in net_if_addrs.items():print(f"网络接口: {interface}")for addr in addrs:print(f"  地址: {addr.address}, 类型: {addr.family}")

获取网络流量统计信息

net_io_counters = psutil.net_io_counters()
print(f"发送的字节数: {net_io_counters.bytes_sent}")
print(f"接收的字节数: {net_io_counters.bytes_recv}")

6.获取进程信息

psutil 还提供了获取系统中运行的进程信息的能力。通过 psutil.process_iter() 可以遍历所有进程,查看进程的 CPU 和内存使用情况。

获取所有进程的基本信息

for proc in psutil.process_iter(['pid', 'name', 'username', 'cpu_percent', 'memory_percent']):print(f"进程ID: {proc.info['pid']}")print(f"进程名称: {proc.info['name']}")print(f"进程用户: {proc.info['username']}")print(f"CPU 使用率: {proc.info['cpu_percent']}%")print(f"内存使用率: {proc.info['memory_percent']}%")

7.监控系统资源并报警

我们可以结合 psutil 提供的资源监控功能,写一个简单的脚本来实时监控 CPU 和内存的使用情况,并在超出阈值时发送报警。

import psutil
import time# 设置阈值
cpu_threshold = 80
memory_threshold = 80while True:cpu_usage = psutil.cpu_percent(interval=1)memory_usage = psutil.virtual_memory().percentif cpu_usage > cpu_threshold:print(f"警告:CPU 使用率过高!当前使用率:{cpu_usage}%")if memory_usage > memory_threshold:print(f"警告:内存使用率过高!当前使用率:{memory_usage}%")time.sleep(5)

psutil 是一个非常强大的库,能够帮助我们获取系统的各种资源使用情况,无论是监控 CPU、内存、磁盘还是网络,psutil 都提供了方便的接口。
而且,它的跨平台特性使得它可以在 Windows、Linux 和 macOS 上使用。
通过结合 psutil,你可以编写出高效的系统监控脚本,帮助你进行系统管理和性能优化。

http://www.xdnf.cn/news/871597.html

相关文章:

  • Webpack搭建本地服务器
  • Unity3D 逻辑代码性能优化策略
  • Linux kill 暂停命令
  • 跟着deepseek浅学分布式事务(2) - 两阶段提交(2PC)
  • 人工智能:网络安全的“智能守护者”
  • 录制mp4
  • Kali Linux 安全工具解析
  • Ros(控制机器人运动)
  • .NET 原生驾驭 AI 新基建实战系列(四):Qdrant ── 实时高效的向量搜索利器
  • JVMTI 在安卓逆向工程中的应用
  • 【Oracle】存储过程
  • 纹理压缩格式优化
  • OpenCV 自带颜色表实现各种滤镜
  • 【Netty源码分析总结】
  • 使用 Unstructured 开源库快速入门指南
  • 机器学习:聚类算法
  • Python爬虫:trafilatura 的详细使用(快速提取正文和评论以及结构,转换为 TXT、CSV 和 XML)
  • Day44打卡 @浙大疏锦行
  • 01-Redis介绍与安装
  • pyqt5 安装失败
  • 查看服务应用是否有跑起来命令
  • 机器学习算法分类
  • 3D旋转动态爱心 - Python创意代码
  • MySQL ACID 面试深度解析:原理、实现与面试实战
  • Pytest+Selenium UI自动化测试实战实例
  • MCP:AI应用的通用接口,如何重塑大模型与外部系统的连接?
  • 小米又开源了,一个多模态大模型 + 一个生不逢时的推理大模型
  • CppCon 2015 学习:Bridging Languages Cross-Platform
  • 循环链表与循环队列的区分与对比
  • 防火墙iptables项目实战