告別繁瑣,用 psutil 簡化你的 Python 系統監控任務
在日常的開發工作中,系統監控是不可或缺的一部分。無論你是需要監控服務器的CPU使用率、內存占用情況,還是跟蹤網絡連接,及時掌握系統的狀態都是至關重要的。然而,傳統的監控方式往往涉及復雜的工具和冗長的配置,耗時且容易出錯。那么,如何在Python中簡化這一過程呢?答案就是——psutil。
什么是psutil?
psutil,全名為Process and System Utilities,是一個跨平臺的Python庫,用于方便地獲取系統運行時的信息。無論是CPU、內存、磁盤、網絡、還是系統進程狀態,psutil都能通過簡潔的API一手掌握。
為什么選擇psutil?
- 輕量且功能強大:psutil庫非常輕量,不會給你的系統帶來額外的負擔,同時它提供了豐富的功能,幾乎涵蓋了所有你能想到的系統監控需求。
- 跨平臺支持:無論你是在Windows、Linux還是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,它一定會成為你得力的助手。!
腳本獲取方式
上述腳本已經上傳上傳到gitee,有需要的小伙伴可以自行獲取。gitee上的倉庫主要是分享一些工作中常用的腳本。小伙伴可以frok或者watch倉庫,這樣有更新可以及時關注到。