溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python運(yùn)維開發(fā)之psutil庫的使用詳解

發(fā)布時(shí)間:2020-09-15 16:31:13 來源:腳本之家 閱讀:141 作者:BrownFly 欄目:開發(fā)技術(shù)

介紹

psutil能夠輕松實(shí)現(xiàn)獲取系統(tǒng)運(yùn)行的進(jìn)程和系統(tǒng)利用率。

導(dǎo)入模塊

import psutils

獲取系統(tǒng)性能信息

CPU信息

使用cpu_times()方法獲取CPU的完整信息:

>>> psutil.cpu_times()

獲取單項(xiàng)數(shù)據(jù),例如用戶user的CPU時(shí)間比:

>>> psutil.cpu_times().user

獲取CPU的個(gè)數(shù):

>>> psutil.cpu_count() # 默認(rèn)logical=True,獲取邏輯個(gè)數(shù)
>>> psutil.cpu_count(logical=False) # 獲取CPU的物理個(gè)數(shù)

內(nèi)存信息

獲取物理內(nèi)存總大小和已使用內(nèi)存:

>>> mem = psutil.virtual_memory()
>>> mem   # 顯示所有的參數(shù)
>>> mem.total # 總內(nèi)存
>>> mem.used  # 已使用內(nèi)存
>>> mem.free  # 獲取空閑內(nèi)存數(shù) 
>>> psutil.swap_memory() # 獲取SWAP分區(qū)信息

磁盤信息

獲取磁盤完整信息:

>>> psutil.disk_partitions()

獲取分區(qū)的使用情況:

>>> psutil.disk_usage('C:/') # 里面參數(shù)為所在磁盤分區(qū)

獲取硬盤總的IO個(gè)數(shù):

>>> psutil.disk_io_counters()
>>> psutil.disk_io_counters(perdisk=True) # 獲取單個(gè)分區(qū)的IO個(gè)數(shù)

網(wǎng)絡(luò)信息

獲取網(wǎng)絡(luò)總的IO信息:

>>> psutil.net_io_counters()
>>> psutil.net_io_counters(pernic=True) # 輸出單個(gè)網(wǎng)絡(luò)接口的IO信息

其他系統(tǒng)信息

返回當(dāng)前登錄系統(tǒng)的用戶信息:

>>> psutil.users()

獲取開機(jī)時(shí)間:

>>> psutil.boot_time() # 以Linux時(shí)間戳格式返回
# 如果想要轉(zhuǎn)換成自然時(shí)間格式:
>>> datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H:%M:%S")

進(jìn)程管理

進(jìn)程信息

列出所有進(jìn)程PID

>>> psutil.pids()

實(shí)例化進(jìn)程對(duì)象

>>> p = psutil.Process(716)
>>> p.name() # 進(jìn)程名
>>> p.exe() # 進(jìn)程bin路徑
>>> p.cwd() # 進(jìn)程工作目錄的絕對(duì)路徑
>>> p.status() # 進(jìn)程狀態(tài)
>>> p.create_time() # 進(jìn)程創(chuàng)建時(shí)間
>>> p.uids() # 進(jìn)程uid信息
>>> p.gids() # 進(jìn)程gid信息
>>> p.cpu_times() # 進(jìn)程CPU時(shí)間信息
>>> p.cpu_affinity() # get進(jìn)程的親和度
>>> p.memory_percent() # 進(jìn)程內(nèi)存使用率
>>> p.num_threads() # 進(jìn)程開啟的線程數(shù)

popen類的使用

popen類可以獲取用戶啟動(dòng)的應(yīng)用程序進(jìn)程信息。

>>> p = putil.Popen(["/usr/bin/python","-c","print('Hello')"],stdout=subprocess.PIPE)
>>> p.name()
>>> p.username() # 創(chuàng)建進(jìn)程的用戶
>>> p.communicate()
('hello\n',None)
>>> p.cpu_times() # 得到進(jìn)程運(yùn)行的CPU時(shí)間

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI