歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Python系統信息模塊psutil

Python系統信息模塊psutil

日期:2017/3/1 9:28:25   编辑:Linux編程

psutil模塊能夠獲取系統運行的進程和系統利用率。包括:CPU,內存,磁盤,網絡等信息。一般用於系統的監控,分析和限制系統資源和進程的管理。

首先下載安裝psutil:
wget https://pypi.python.org/packages/source/p/psutil/psutil-2.0.0.tar.gz
tar zxvf psutil-2.0.0.tar.gz
cd psutil-2.0.0
python setup.py install

安裝出錯信息:
error:command 'gcc' failed with exit status 1

解決方法:
yum install gcc python-devel -y

一、查看內存總量和使用量
>>>import psutil
>>>mem = psutil.virtual_memory()
>>>mem.total,mem.used
(1968566272L,371720192L)

二、獲取系統性能信息

1.cpu信息
2.User Time:執行用戶進程的時間百分比
3.System Time:執行內核進程和中斷的時間百分比
4.Wait IO 由於IO等待而使CPU處於idle空閒狀態的時間百分比
5.Idle,CPU處於idle狀態的時間百分比
我們使用python的psutil.cpu_times()方法可以簡單的得到這些信息,同時可以獲取CPU的硬件相關信息,比如CPU的物理個數和邏輯個數,例子如下:

>>>psutil.cpu_times()
scputimes(user=7.9100000000000001,nice=0.0, system=13.41, idle=645.64999999999998, iowait=5.1500000000000004,irq=0.33000000000000002, softirq=0.32000000000000001, steal=0.0, guest=0.0)
>>>psutil.cpu_times().user #獲取user的cpu時間比
8.0099999999999998
>>>psutil.cpu_count() #獲取cpu的邏輯個數
1
>>>psutil.cpu_count(logical=False) #獲取CPU的物理個數
1

#內存信息
>>>mem = psutil.virtual_memory()
>>>mem
svmem(total=1968566272L,available=1779888128L, percent=9.5999999999999996, used=372531200L,free=1596035072L, active=225411072, inactive=77631488, buffers=10407936L,cached=173445120)
>>>mem.total
1968566272L
>>>mem.free
1596035072L
>>>psutil.swap_memory()
sswap(total=2147479552L,used=0L, free=2147479552L, percent=0.0, sin=0, sout=0)
>>>

#磁盤信息
>>>mem = psutil.disk_partitions()
>>>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=18682343424,used=2136817664, free=15589699584, percent=11.4)
>>>psutil.disk_io_counters()
sdiskio(read_count=4895,write_count=2763, read_bytes=173164544, write_bytes=44500992, read_time=8461,write_time=12124)
>>>

#網絡信息
>>>psutil.net_io_counters()
snetio(bytes_sent=708988,bytes_recv=4904912, packets_sent=4577, packets_recv=5314, errin=0, errout=0,dropin=0, dropout=0)
>>>psutil.net_io_counters(pernic=True)
{'lo':snetio(bytes_sent=0, bytes_recv=0, packets_sent=0, packets_recv=0, errin=0,errout=0, dropin=0, dropout=0), 'eth1': snetio(bytes_sent=711716,bytes_recv=4908234, packets_sent=4601, packets_recv=5352, errin=0, errout=0,dropin=0, dropout=0)}

#其他系統信息
>>>psutil.users()
[SUSEr(name='root',terminal='pts/0', host='192.168.1.5', started=1434034432.0)]
>>>psutil.boot_time()
1434034443.0

無需操作系統直接運行 Python 代碼 http://www.linuxidc.com/Linux/2015-05/117357.htm

CentOS上源碼安裝Python3.4 http://www.linuxidc.com/Linux/2015-01/111870.htm

《Python核心編程 第二版》.(Wesley J. Chun ).[高清PDF中文版] http://www.linuxidc.com/Linux/2013-06/85425.htm

《Python開發技術詳解》.( 周偉,宗傑).[高清PDF掃描版+隨書視頻+代碼] http://www.linuxidc.com/Linux/2013-11/92693.htm

Python腳本獲取Linux系統信息 http://www.linuxidc.com/Linux/2013-08/88531.htm

在Ubuntu下用Python搭建桌面算法交易研究環境 http://www.linuxidc.com/Linux/2013-11/92534.htm

Python 語言的發展簡史 http://www.linuxidc.com/Linux/2014-09/107206.htm

Python 的詳細介紹:請點這裡
Python 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved