14.1. psutil模块¶
获取系统信息
14.1.1. 源码下载地址¶
https://pypi.python.org/packages/source/p/psutil/psutil-2.0.0.tar.gz --no-check-certificate
14.1.2. 安装¶
psutil的源码安装步骤如下:
#wget https://pypi.python.org/packages/source/p/psutil/psutil-2.0.0.tar.gz --no-check-certificate
# tar -xzvf psutil-2.0.0.tar.gz
# cd psutil-2.0.0
# python setup.py install
pip安装:
pip install psutil # 安装
import psutil
dir(psutil)
14.1.3. CPU¶
#使用cpu_times方法获取CPU完整信息,需要显示所有逻辑CPU信息,
#指定方法变量percpu=True即可,如psutil.cpu_times(percpu=True)
>>> psutil.cpu_times()
#获取单项数据信息,如用户user的CPU时间比
scputimes(user=9.44, nice=0.0, system=5.52, idle=709.19, iowait=11.05, irq=0.0, softirq=0.1, steal=0.0, guest=0.0, guest_nice=0.0)
>>> psutil.cpu_times().user
>>> psutil.cpu_count() #获取CPU逻辑个数
2
>>> psutil.cpu_count(logical=False) #获取CPU物理个数
1
14.1.4. 内存¶
psutil.virtual_memory() # 内存详细信息
psutil.virtual_memory().total # 内存总大小
>>> mem=psutil.virtual_memory()
>>> mem.free #获取空闲内存数
7906521088
>>> psutil.swap_memory() #获取swap分区信息
sswap(total=0, used=0, free=0, percent=0.0, sin=0, sout=0)
14.1.5. 磁盘¶
磁盘利用率使用psutil.disk_usage方法获取。
磁盘IO信息包括read_count(读IO数)、write_count(写IO数)、read_bytes(IO读字节
数)、write_bytes(IO写字节数)、read_time(磁盘读时间)、
write_time(磁盘写时间)等。这些IO信息可以使用
psutil.disk_io_counters()获取
psutil.disk_partitions() # 获取磁盘信息
>>> psutil.disk_usage('/') # 获取分区的使用情况
sdiskusage(total=42139451392, used=1964945408, free=38010351616, percent=4.9)
psutil.disk_io_counters() # 磁盘IO信息
14.1.6. 网络¶
>>> psutil.net_io_counters() #获取网络总的IO信息
snetio(bytes_sent=276237, bytes_recv=2402401, packets_sent=1927, packets_recv=3367, errin=0, errout=0, dropin=0, dropout=0)
>>> psutil.net_io_counters(pernic=True) #输出每个接口的IO信息
{'lo': snetio(bytes_sent=0, bytes_recv=0, packets_sent=0, packets_recv=0, errin=0, errout=0, dropin=0, dropout=0), 'eth0': snetio(bytes_sent=279405, bytes_recv=2406031, packets_sent=1959, packets_recv=3412, errin=0, errout=0, dropin=0, dropout=0)}
14.1.7. 其他信息¶
>>> psutil.users()
[suser(name='root', terminal='pts/0', host='124.65.241.154', started=1545964544.0, pid=3524)]
>>>
>>> psutil.boot_time()
1545964445.0
>>> import datetime
>>> datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H:%M:%S")
'2018-12-28 10:34:05'
14.1.8. 系统进程管理方法¶
psutil模块在获取进程信息方面也提供了很好的支持,包括使用
psutil.pids()方法获取所有进程PID,使用psutil.Process()方法获取
单个进程的名称、路径、状态、系统资源利用率等信息
# 列出所有进程的PID
>>> psutil.pids()
[1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 38, 39, 47, 48, 49, 50, 51, 52, 65, 66, 105, 269, 645, 704, 709, 715, 726, 797, 1295, 1334, 1360, 1366, 1437, 1460, 1471, 2658, 2704, 2727, 2729, 2732, 2736, 2746, 2750, 2756, 2781, 2782, 3028, 3091, 3092, 3167, 3256, 3462, 3489, 3522, 3524, 3728]
#实例化一个对象,参数为进程ID
>>> p = psutil.Process(3728)
#进程名
>>> p.name()
'python'
#进程bin路径
>>> p.exe()
'/usr/bin/python2.7'
#进程工作目录绝对路径
>>> p.cwd()
'/root'
#进程状态
>>> p.status()
'running'
#进程创建时间,时间戳格式
>>> p.create_time()
1545964714.07
#进程uid信息
>>> p.uids()
puids(real=0, effective=0, saved=0)
#进程gid信息
>>> p.gids()
pgids(real=0, effective=0, saved=0)
#进程CPU时间,包括user、system两个时间
>>> p.cpu_times()
pcputimes(user=0.06, system=0.02, children_user=0.0, children_system=0.0)
#进程内存利用率
>>> p.memory_percent()
0.1266047843123937
#进程开启线程数
>>> p.num_threads()
1
Python三方库仓库中的说明 ## 更多参考
示例参考https://github.com/giampaolo/psutil
模块说明参考官网http://psutil.readthedocs.org/en/latest/