1. 程式人生 > >python-psutil模塊

python-psutil模塊

字節 硬件 磁盤信息 shadow sock 功能 read 限制 簡單的

psutil是一個跨平臺庫,能夠輕松實現獲取系統運行的進程和系統利用率信息。它主要應用於系統監控,分析和限制系統資源及進程管理。它實現了同等命令行工具提供的功能,如ps、top、lsof、netstat等。。通常我們獲取操作系統信息往往采用編寫shell來實現,比如獲取物理內存總大小以及已經使用大小,shell命令如下:
技術分享圖片
看看使用python的psutil模塊如何實現
技術分享圖片

8bit(位)=1Byte(字節)
1024Byte(字節)=1KB
1024KB=1MB
1024MB=1GB
1024GB=1TB

獲取系統性能信息
采集系統的基本性能信息包括CPU、內存、磁盤、網絡等,可以完整描述當前系統的運行狀態及質量。

1、采集CPU信息
可以使用psutil.cpu_times()方法可以非常簡單的得到這些信息,同時也可以獲取CPU的硬件相關信息,比如CPU的物理個數與邏輯個數,例如:
技術分享圖片

2、采集內存信息
Linux系統的內存利用率信息涉及total(內存總數)、used(已使用的內存數)、free(空閑內存數)、buffer(緩沖使用數)、cache(緩存使用數)、swap(交換分區使用數)等,分別可以使用psutil.virtual_memory()與psutil.swap_memory()方法獲取信息,例如:
技術分享圖片

3、采集磁盤信息
在系統的所有磁盤信息中,我們比較關註的是磁盤的利用率和IO信息,其中磁盤利用率用psutil.disk_usage方法獲取。磁盤IO信息包括read_count(讀IO數)、write_count(寫IO數)、read_bytes(IO讀字節數)、write_bytes(IO寫字節數)、read_time(磁盤讀時間)、write_time(磁盤寫時間)等,這些信息可以通過psutil.disk_io_counters()獲取。

技術分享圖片

4、網絡信息
系統的網絡信息與磁盤IO類似,涉及幾個關鍵點,包括bytes_sent(發送字節數)、bytes_recv(接收字節數)、packets_sent(發送數據包數)、packets_recv(接收數據包數)等。這些網絡信息使用psutil.net_io_counters()方法獲取。
技術分享圖片

5、獲取用戶登錄、開機時間等信息
技術分享圖片

6、系統進程的管理方法
獲得當前系統的進程信息,可以讓我們得知應用程序的運行狀態,包括進程的啟動時間、查看或設置CPU親和度、內存使用率、IO信息、socket連接、線程數,這些信息可以呈現出指定進程是否存活、資源利用情況。
技術分享圖片
技術分享圖片

7、popen類的使用
psutil提供的popen類的作用是獲取用戶啟動的應用程序進程信息,以便追蹤程序進程的運行狀態。

技術分享圖片

python-psutil模塊