python擷取系統狀態psutil模組

來源:互聯網
上載者:User

標籤:python   import   python擷取系統狀態   psutil   

python關於擷取當前系統的狀態
系統效能資訊模組 psutil  #可跨平台
psutil是一個跨平台庫,輕鬆擷取系統啟動並執行進程和系統利用率
能實現ps、top、lso、nice、netstat、ifconfig、who、df、kill、free
ionice、iostat、iotop、uptime、pidof、tty、taskset、pmap 這些命令的功能
首先確定下當前系統有沒有psutil模組
import psutil
如果有的話,就直接匯入模組成功,如果沒有,就會提示錯誤
然後到官網上下載psutil-2.0.0.tar.gz源碼包
tar -zxf psutil-2.0.0.tar.gz & cd psutil-2.0.0
python setup.py install
讀取cpu的整個資訊
import psutil
psutil.cpu_times()  #顯示cpu的整個資訊
擷取單項值
psutil.cpu_times() .user   #如果要只但看那個的話就在後邊加上.xxx就行了
擷取cpu的邏輯個數
psutil.cpu_count()
擷取cpu的物理個數
psutil.cpu_count( logical=False )
讀取記憶體資訊
linux系統記憶體利用率資訊涉及to-tal(記憶體總數),used(以使用記憶體),free(空閑記憶體),buffers(緩衝使用數)
cache(緩衝使用數),swap(交換分區使用數),分別使用psutil.virtual_memory()與psuti.swap_memory()方法擷取
import psuti
mem = psuti.virtual_memory()  #擷取記憶體的完整資訊
mem.total    #擷取記憶體總數
mem.free     #擷取閒置記憶體資訊
擷取swap分區資訊
psutil.swap_memory()
讀取磁碟參數
磁碟利用率使用psutil.disk_usage方法擷取,磁碟IO資訊包括read_count(讀IO數),write_count(寫IO數)
read_bytes(IO寫位元組數),read_time(磁碟讀時間),write_time(磁碟寫時間),這些IO資訊用psutil.disk_io_counters()
擷取磁碟的完整資訊
psutil.disk_partitions()
擷取分區表的參數
psutil.disk_usage(‘/‘)   #擷取/分區的狀態
擷取硬碟IO總個數
psutil.disk_io_counters()
擷取單個分區IO個數
psutil.disk_io_counters(perdisk=True)    #perdisk=True參數擷取單個分區IO個數
讀取網路資訊
網路資訊與磁碟IO資訊類似,涉及到幾個關鍵點,包括byes_sent(發送位元組數),byte_recv=xxx(接受位元組數),
pack-ets_sent=xxx(發送位元組數),pack-ets_recv=xxx(接收資料包數),這些網路資訊用psutil.net_io_counters()
psutil.net_io_counters()   #擷取網路總IO資訊
psutil.net_io_counters(pernic=True)     #pernic=True輸出網路每個介面資訊
擷取當前系統使用者登入資訊
psutil.users()
擷取開機時間
import psutil, datetime
psutil.boot_time()    #以linux時間格式返回
datetime.datetime.fromtimestamp(psutil.boot_time ()).strftime("%Y-%m-%d %H: %M: %S") #轉換成自然時間格式

系統進程管理
擷取當前系統的進程資訊,擷取當前英語程式的運行狀態,包括進程的啟動時間,查看設定CPU親和度,記憶體使用量率,IO資訊
socket串連,線程數等
擷取進程資訊
psutil模組在擷取進程方面有很好的支援,使用psutil.pids()方法擷取所有進程的PID,
使用psutil.Process()方法擷取單個進程的名稱,路徑狀態等
查看系統全部進程
psutil.pids()
查看單個進程
p = psutil.Process(2423)
p.name()   #進程名
p.exe()    #進程的bin路徑
p.cwd()    #進程的工作目錄絕對路徑
p.status()   #進程狀態
p.create_time()  #進程建立時間
p.uids()    #進程uid資訊
p.gids()    #進程的gid資訊
p.cpu_times()   #進程的cpu時間資訊,包括user,system兩個cpu資訊
p.cpu_affinity()  #get進程cpu親和度,如果要設定cpu親和度,將cpu號作為參考就好
p.memory_percent()  #進程記憶體利用率
p.memory_info()    #進程記憶體rss,vms資訊
p.io_counters()    #進程的IO資訊,包括讀寫IO數字及參數
p.connectios()   #返回進程列表
p.num_threads()  #進程開啟的線程數
聽過psutil的Popen方法啟動應用程式,可以跟蹤程式的相關資訊
from subprocess import PIPE
p = psutil.Popen(["/usr/bin/python", "-c", "print(‘hello‘)"],stdout=PIPE)
p.name()
p.username()

本文出自 “鬥月” 部落格,請務必保留此出處http://douyue.blog.51cto.com/10174393/1654865

python擷取系統狀態psutil模組

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.