python 獲取cpu、內存、硬盤等實時信息 psutil


psutil是一個跨平台庫,能夠輕松實現獲取系統運行的進程和系統利用率(CPU,內存,磁盤,網絡等)信息,主要應用於系統監控,分析和限制系統資源及進程的管理,它實現了同等命令行工具提供的功能,如ps,top,lsof,netstat,ifconfig,who,df,kill,free,nice等.支持32位,和64位的Linux,Windows,OS X,FreeBSD等操作系統。

 1 1 cpu信息
 2 #Linux系統cpu利用率有以下幾個部分
 3 #User Time,執行用戶進程的時間百分比
 4 #System Time,執行內核進程和中斷的時間百分比
 5 #Wait IO,由於IO等待使cpu處於idle(空閑)狀態的時間百分比
 6 #Idle,cpu處於空閑狀態的時間百分比
 7  
 8 import psutil
 9 #獲取cpu完成信息
10 print psutil.cpu_times()
11 >>> scputimes(user=29.36, nice=0.0, system=26.59, idle=9619.35, iowait=64.78, irq=0.5, softirq=1.67, steal=0.0, guest=0.0)
12 
13 print type(psutil.cpu_times())
14 >>> <class 'psutil._pslinux.scputimes'>
15 # user () 從系統啟動開始累計到當前時刻,用戶態的CPU時間,不包含 nice值為負進程。
16 # nice () 從系統啟動開始累計到當前時刻,nice值為負的進程所占用的CPU時間
17 # system () 從系統啟動開始累計到當前時刻,核心時間
18 # idle () 從系統啟動開始累計到當前時刻,除IO等待時間以外其它等待時間
19 # iowait () 從系統啟動開始累計到當前時刻,IO等待時間
20 # irq () 從系統啟動開始累計到當前時刻,硬中斷時間
21 # softirq () 從系統啟動開始累計到當前時刻,軟中斷時間
22 
23 # CPU使用率計算
24 CPU在t1到t2時間段總的使用時間 = ( user2+ nice2+ system2+ idle2+ iowait2+ irq2+ softirq2) - ( user1+ nice1+ system1+ idle1+ iowait1+ irq1+ softirq1)
25 CPU在t1到t2時間段空閑使用時間 = (idle2 - idle1)
26 CPU在t1到t2時間段即時利用率 =  1 - CPU空閑使用時間 / CPU總的使用時間
27 
28 # 
29 print psutil.cpu_percent(interval=20,percpu=False)
30 >>> 3.7
31 interval:代表時間(秒),在這段時間內的cpu使用率
32 percpu:選擇總的使用率還是每個cpu的使用率。False為總體,True為單個,返回列表
33 
34 #獲取cpu邏輯個數
35 print psutil.cpu_count()
36 >>> 56
37 # 計算方式:單個cpu核數*cpu個數*2(cpu cores 這個規格值,如果支持並開啟ht)
38 # ht:intel的超線程技術(HT), 可以在邏輯上再分一倍數量的cpu core出來
39 
40 
41 #獲取cpu物理個數
42 psutil.cpu_count(logical=False)
43 >>> 28
44 # 計算方式:單個cpu核數*cpu個數

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM