[Python Study Notes]psutil模塊
阿新 • • 發佈:2018-02-13
reads kill buffers 發送數據包 系統性能 bsd 功能 virt share
系統性能信息模塊psutil
psutil是一個跨平臺庫,能夠輕松實現獲取系統運行的進程和系統利用率(CPU,內存,磁盤,網絡等)信息,主要應用於系統監控,分析和限制系統資源及進程的管理,它實現了同等命令行工具提供的功能,如ps,top,lsof,netstat,ifconfig,who,df,kill,free,nice等.支持32位,和64位的Linux,Windows,OS X,FreeBSD等操作系統。
1 cpu信息 #Linux系統cpu利用率有以下幾個部分 #User Time,執行用戶進程的時間百分比 #System Time,執行內核進程和中斷的時間百分比 #Wait IO,由於IO等待使cpu處於idle(空閑)狀態的時間百分比 #Idle,cpu處於空閑狀態的時間百分比 >>> import psutil #獲取cpu完成信息 >>> psutil.cpu_times() 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) #獲取用戶user的cpu時間比 >>> psutil.cpu_times().user 34.54 #獲取cpu邏輯個數 >>> psutil.cpu_count() 4 #獲取cpu物理個數 >>> psutil.cpu_count(logical=False) 4 2 內存信息 #Linux系統的內存利用率信息涉及 #total 內存總數 #used 已使用的內存數 #free 空閑內存數 #buffers 緩沖使用數 #cache 緩存使用數 #swap 交換分區使用數 等 #使用 psutil.virtual_memory()與psutil.memory()方法獲取 #獲取內存完整信息 >>>mem = psutil.virtual_memory() >>> mem svmem(total=1961488384, available=1483986944, percent=24.3, used=341475328, free=941473792, active=677801984, inactive=212774912, buffers=32038912, cached=646500352, shared=4116480) #獲取內存總數 >>> mem.total 1961488384 #獲取空閑內存數 >>> mem.free 941473792 #獲取SWAP分區信息 >>> psutil.swap_memory() sswap(total=2147475456, used=0, free=2147475456, percent=0.0, sin=0, sout=0) 3 磁盤信息 #磁盤利用率使用psutil.disk_usage()方法獲取 #IO信息 #read_count 讀IO數 #write_count 寫IO數 #read_bytes IO讀字節數 #write_bytes IO寫字節數 #read_time 磁盤讀時間 #write_time 磁盤寫時間 #使用psutil.disk_io_counters()獲取 #獲取磁盤完整信息 >>> psutil.disk_partitions() [sdiskpart(device=‘/dev/sda3‘, mountpoint=‘/‘, fstype=‘ext4‘, opts=‘rw‘), sdiskpart(device=‘/dev/sda1‘, mountpoint=‘/boot‘, fstype=‘ext4‘, opts=‘rw‘)] #獲取/分區使用情況 >>> psutil.disk_usage(‘/‘) sdiskusage(total=18506760192, used=4438568960, free=13128093696, percent=25.3) #獲取硬盤總IO數 >>> psutil.disk_io_counters() 4 網絡信息 #bytes_sent 發送字節數 #bytes_recv 接收字節數 #packets_sent 發送數據包數 #packest_recv 接收數據包數 #使用psutil.net_io_counters()獲取 >>> psutil.net_io_counters() 5 其他系統信息 #psutil模塊還支持獲取用戶登錄,開機時間等信息 #顯示當前登錄系統的用戶信息 >>> psutil.users() #獲取開機時間 >>> psutil.boot_time()
系統進程管理方法
psutil在獲取進程信息方面也提供了很好的支持,包括使用psutil.pids()方法獲取所有PID,使用psutil.Process()方法獲取單個進程的名稱,路徑,系統資源利用率等信息。
#列出所有進程的PID >>> psutil.pids() #實例化一個Process對象,參數為一個PID >>>p = psutil.Process(3197) #進程名 >>> p.name() ‘python3‘ #進程bin路徑 >>> p.exe() ‘/opt/python3/bin/python3.5‘ #進程工作絕對路徑 >>> p.cwd() #進程狀態 >>> p.status() #進程創建時間 >>> p.create_time() #uid信息 >>> p.uids() #gid信息 >>> p.gids() #進程cpu時間,包括user,system兩個時間 >>> p.cpu_times() #進程內存利用率 >>> p.memory_percent() #進程內存rss,vms信息 >>> p.memory_info() #進程IO信息 >>> p.io_counters() #進程開啟的線程數 >>> p.num_threads()
[Python Study Notes]psutil模塊