1. 程式人生 > >Python 主機狀態監控模組:psutil

Python 主機狀態監控模組:psutil

這幾天畢設需要加一個主機監控的功能,然後發現了一個 python 的跨平臺的主機監控模組:psutil。

安裝

pip install psutil

常用功能

因為畢設中只用到了 CPU,記憶體,磁碟這三個屬性,但是這個庫能獲得的狀態不止這些,還有網路,感測器和各種系統屬性。只寫下自己用到的,其他的文件介紹的挺全面。

CPU

psutil.cpu_times(percpu=False)

cpu_times 函式接受一個引數,percpu,預設為 False。

>>> psutil.cpu_times()
scputimes(user=33335.82, nice=0.0, system=35253.52, idle=405130.12)

執行之後將返回 user mode 和 kernel mode 的 CPU 時間(user,system),以及 CPU 空轉的時間(idle)。

如果加上 percpu 引數,之後,將返回每個核心的資訊:

>>> psutil.cpu_times(percpu=True)
[scputimes(user=12113.43, nice=0.0, system=14012.23, idle=92520.62), scputimes(user=4881.28, nice=0.0, system=4959.2, idle=108794.75), scputimes(user=11446.36, nice=0.0, system=11263.96, idle=95924.97), scputimes(user=4969.93, nice=0.0, system=5093.61, idle=108571.62)]

如果只是計算 CPU 的利用率的話,psutil.cpu_percent() 就夠解決問題,cpu_percent 可以傳遞一個間隔引數,來計算一定間隔內的 CPU 利用率:

>>> psutil.cpu_percent(1)
13.7

記憶體

因為我只需要計算記憶體的使用率,所以只用到了 virtual_memory 方法。這個方法返回的引數很多,不過也是一目瞭然。

>>> psutil.virtual_memory()
svmem(total=17179869184L, available=4261830656L, percent=75.2, used=13366374400L, free=2298265600L, active=9087324160L, inactive=1963565056L, wired=2315485184L)

磁碟

disk_partitions 方法可以檢視磁碟的使用情況,會返回一個 list,包含了比較全面的資訊:

>>> psutil.disk_partitions()
[sdiskpart(device='/dev/disk1', mountpoint='/', fstype='hfs', opts='rw,local,rootfs,dovolfs,journaled,multilabel'), sdiskpart(device='/dev/disk0s3', mountpoint='/Volumes/Recovery HD', fstype='hfs', opts='rw,local,dovolfs,dontbrowse,journaled,multilabel')]

當然,以上只是提到了最簡單的功能,還有很多使用的函式可以選擇。


歡迎到微信裡去當吃瓜群眾