Python利用PsUtil實(shí)現(xiàn)實(shí)時監(jiān)控系統(tǒng)狀態(tài)
PSUtil是一個跨平臺的Python庫,用于檢索有關(guān)正在運(yùn)行的進(jìn)程和系統(tǒng)利用率(CPU,內(nèi)存,磁盤,網(wǎng)絡(luò),傳感器)的信息。
它可以跨平臺使用,在Linux,Windows和macOS上都能運(yùn)行。
在本文中,我們將深入研究如何使用PSUtil模塊來監(jiān)控系統(tǒng)的各種資源。本文包括以下主題:
1.安裝psutil模塊
首先,我們需要安裝psutil模塊??梢允褂靡韵旅顏戆惭b:
pip?install?psutil
2.獲取系統(tǒng)信息
使用psutil.cpu_count()函數(shù)獲取CPU數(shù)量:
import?psutil print("CPU數(shù)量:",?psutil.cpu_count(logical=True))
可以看到,我們使用psutil.cpu_count()函數(shù)獲取了系統(tǒng)中邏輯CPU的數(shù)量。
接下來,我們可以使用psutil.cpu_stats()函數(shù)獲取CPU的統(tǒng)計信息:
import?psutil cpu_stats?=?psutil.cpu_stats() print("CPU統(tǒng)計信息:",?cpu_stats)
3.獲取CPU信息
使用psutil.cpu_percent()函數(shù)獲取CPU使用率:
import?psutil print("CPU使用率:",?psutil.cpu_percent(interval=1))
可以看到,我們使用psutil.cpu_percent()函數(shù)獲取了CPU的使用率。interval參數(shù)指定了時間間隔,單位為秒。
接下來,我們可以使用psutil.cpu_times()函數(shù)獲取CPU的時間信息:
import?psutil cpu_times?=?psutil.cpu_times() print("CPU時間信息:",?cpu_times)
4.獲取內(nèi)存信息
使用psutil.virtual_memory()函數(shù)獲取內(nèi)存信息:
import?psutil memory?=?psutil.virtual_memory() print("內(nèi)存信息:",?memory)
5.獲取磁盤信息
使用psutil.disk_partitions()函數(shù)獲取磁盤分區(qū)信息:
import?psutil partitions?=?psutil.disk_partitions() print("磁盤分區(qū)信息:",?partitions)
可以看到,我們使用psutil.disk_partitions()函數(shù)獲取了系統(tǒng)中的磁盤分區(qū)信息。
接下來,我們可以使用psutil.disk_usage()函數(shù)獲取磁盤使用情況:
import?psutil usage?=?psutil.disk_usage('/') print("磁盤使用情況:",?usage)
6.獲取網(wǎng)絡(luò)信息
使用psutil.net_io_counters()函數(shù)獲取網(wǎng)絡(luò)信息:
import?psutil net_io_counters?=?psutil.net_io_counters() print("網(wǎng)絡(luò)信息:",?net_io_counters)
可以看到,我們使用psutil.net_io_counters()函數(shù)獲取了網(wǎng)絡(luò)的信息,包括發(fā)送和接收的字節(jié)數(shù)。
7.獲取傳感器信息
使用psutil.sensors_temperatures()函數(shù)獲取傳感器信息:
import?psutil sensors_temperatures?=?psutil.sensors_temperatures() print("傳感器信息:",?sensors_temperatures)
可以看到,我們使用psutil.sensors_temperatures()函數(shù)獲取了系統(tǒng)中的傳感器信息。
8.使用psutil進(jìn)行進(jìn)程管理
使用psutil.process_iter()函數(shù)獲取正在運(yùn)行的進(jìn)程:
import?psutil for?process?in?psutil.process_iter(): ????print(process.name())
可以看到,我們使用psutil.process_iter()函數(shù)獲取了正在運(yùn)行的進(jìn)程。
我們可以使用process對象的各種屬性來獲取進(jìn)程的詳細(xì)信息。
使用psutil.Process()函數(shù)獲取特定進(jìn)程的詳細(xì)信息:
import?psutil process_id?=?1234 process?=?psutil.Process(process_id) print(process.name()) print(process.cpu_percent(interval=1)) print(process.memory_info().rss)
9.使用psutil進(jìn)行系統(tǒng)監(jiān)控
使用psutil實(shí)現(xiàn)一個簡單的系統(tǒng)監(jiān)控程序:
import?time import?psutil while?True: ????cpu_usage?=?psutil.cpu_percent(interval=1) ????memory_usage?=?psutil.virtual_memory().percent ????disk_usage?=?psutil.disk_usage('/').percent ????network_usage?=?psutil.net_io_counters().bytes_sent?+?psutil.net_io_counters().bytes_recv ????print("CPU使用率:",?cpu_usage) ????print("內(nèi)存使用率:",?memory_usage) ????print("磁盤使用率:",?disk_usage) ????print("網(wǎng)絡(luò)使用量:",?network_usage) ????time.sleep(1)
可以看到,我們使用psutil實(shí)現(xiàn)了一個簡單的系統(tǒng)監(jiān)控程序,可以實(shí)時監(jiān)控CPU,內(nèi)存,磁盤和網(wǎng)絡(luò)的使用情況。
10.總結(jié)
本文介紹了如何使用psutil模塊來監(jiān)控系統(tǒng)的各種資源。我們可以使用psutil獲取系統(tǒng)信息,CPU信息,內(nèi)存信息,磁盤信息,網(wǎng)絡(luò)信息和傳感器信息。
我們還可以使用psutil進(jìn)行進(jìn)程管理和系統(tǒng)監(jiān)控。psutil是一個非常強(qiáng)大的Python庫,可以幫助我們編寫高效的系統(tǒng)監(jiān)控程序。
到此這篇關(guān)于Python利用PsUtil實(shí)現(xiàn)實(shí)時監(jiān)控系統(tǒng)狀態(tài)的文章就介紹到這了,更多相關(guān)Python PsUtil監(jiān)控系統(tǒng)狀態(tài)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python 實(shí)現(xiàn)多線程的三種方法總結(jié)
這篇文章主要介紹了python 實(shí)現(xiàn)多線程的三種方法總結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04Python實(shí)現(xiàn)剪刀石頭布小游戲(與電腦對戰(zhàn))
這篇文章給大家分享Python基礎(chǔ)實(shí)現(xiàn)與電腦對戰(zhàn)的剪刀石頭布小游戲,練習(xí)if while輸入和輸出,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧2019-12-12找Python安裝目錄,設(shè)置環(huán)境路徑以及在命令行運(yùn)行python腳本實(shí)例
這篇文章主要介紹了找Python安裝目錄,設(shè)置環(huán)境路徑以及在命令行運(yùn)行python腳本實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03python使用selenium實(shí)現(xiàn)批量文件下載
這篇文章主要介紹了python使用selenium實(shí)現(xiàn)批量文件下載,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03python語言中print中加號、減號、乘號的應(yīng)用方式
這篇文章主要介紹了python語言中print中加號、減號、乘號的應(yīng)用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02PyCharm遠(yuǎn)程調(diào)試代碼配置以及運(yùn)行參數(shù)設(shè)置方式
這篇文章主要介紹了PyCharm遠(yuǎn)程調(diào)試代碼配置以及運(yùn)行參數(shù)設(shè)置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01解決Django數(shù)據(jù)庫makemigrations有變化但是migrate時未變動問題
今天小編就為大家分享一篇解決Django數(shù)據(jù)庫makemigrations有變化但是migrate時未變動的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05