標籤:品質 應用程式 擷取資訊 模組 python 記憶體 process bit 記憶體使用量率
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模組