告别繁琐,用 psutil 简化你的 Python 系统监控任务

上一篇 / 下一篇  2024-08-23 14:10:38

  在日常的开发工作中,系统监控是不可或缺的一部分。无论你是需要监控服务器的CPU使用率、内存占用情况,还是跟踪网络连接,及时掌握系统的状态都是至关重要的。然而,传统的监控方式往往涉及复杂的工具和冗长的配置,耗时且容易出错。那么,如何在Python中简化这一过程呢?答案就是——psutil。
  什么是psutil?
  psutil,全名为Process and System Utilities,是一个跨平台的Python库,用于方便地获取系统运行时的信息。无论是CPU、内存、磁盘、网络、还是系统进程状态,psutil都能通过简洁的API一手掌握。
  为什么选择psutil?
  ·轻量且功能强大:psutil库非常轻量,不会给你的系统带来额外的负担,同时它提供了丰富的功能,几乎涵盖了所有你能想到的系统监控需求。
  · 跨平台支持:无论你是在WindowsLinux还是macOS上开发,psutil都能无缝运行。
  · 简单易用的API:相比于其他工具,psutil的API设计得非常直观、易用。只需几行代码,就可以完成复杂的系统监控任务。
  安装psutil
  安装psutil非常简单,你可以使用Python的包管理工具pip来快速安装。在命令行中执行以下命令即可:
  pip install psutil
  该命令会自动下载并安装psutil及其所有依赖库。一旦安装完成,你就可以在Python脚本中导入psutil库并开始使用它来获取各种系统信息了。
安装成功返回信息
  基础功能一览
  让我们通过一些简单的例子,看看psutil如何简化系统监控任务。
  (1) 获取CPU信息
  import psutil
  # 获取CPU的使用率
  cpu_usage = psutil.cpu_percent(interval=1)
  print(f"当前CPU使用率: {cpu_usage}%")
  # 获取每个CPU的使用率
  cpu_usage_per_cpu = psutil.cpu_percent(interval=1, percpu=True)
  print(f"每个CPU的使用率: {cpu_usage_per_cpu}")
  上述代码执行成功后,如下图所示:
获取CPU信息
  (2) 内存监控
  # 获取虚拟内存信息
  virtual_memory = psutil.virtual_memory()
  print(f"总内存: {virtual_memory.total / (1024**3):.2f} GB")
  print(f"已使用内存: {virtual_memory.used / (1024**3):.2f} GB")
  print(f"剩余内存: {virtual_memory.available / (1024**3):.2f} GB")
  上述代码执行成功后,如下图所示:
内存监控
  (3) 磁盘使用情况
  # 获取磁盘分区信息
  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")
  上述代码执行成功后,如下图所示:
磁盘使用情况
  (4) 网络监控
  # 获取网络IO信息
  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")
  上述代码执行成功后,如下图所示:
网络监控
  (5) 进程管理
  除了基础的系统资源监控,psutil还提供了强大的进程管理功能,你可以轻松获取、操作系统进程。
  # 获取当前运行的进程列表
  processes = psutil.pids()
  for pid in processes:
      p = psutil.Process(pid)
      print(f"PID: {pid}, 名称: {p.name()}, 状态: {p.status()}")
  你还可以通过psutil终止进程、查看进程的资源占用情况等等。与手动编写复杂的系统监控脚本相比,psutil让这一切变得更加简单直观。如下图所示:
进程管理
  系统巡检
  通过利用Python的psutil库,我们能够实时监测主机,精确获取系统的CPU负载、内存占用、磁盘I/O、网络流量等关键健康指标。结合自动化工具,还可以对业务系统的主机资源利用率进行批量巡检,实现高效的系统管理和维护。巡检结果如下图:
巡检结果
  总结
  对于开发者来说,简化系统监控任务意味着节省时间、降低错误率,并提高工作效率。psutil作为一款轻量级且功能强大的工具,不仅让Python开发者能够更方便地实现系统监控,还能通过其丰富的API满足各种复杂的监控需求。如果你还在为繁琐的系统监控任务而烦恼,不妨试试psutil,它一定会成为你得力的助手。!

TAG: 软件开发 Python

 

评分:0

我来说两句

Open Toolbar