psutil 模块
一、psutil简介
psutil是一个开源且跨平台的库,能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。它主要应用于系统监控,分析和限制系统资源及进程的管理。它实现了同等命令行工具提供的功能,如ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、iostat、iotop、uptime、pidof、tty、taskset、pmap等。
在Python中获取系统信息的另一个好办法是使用psutil这个第三方模块。还可以跨平台使用,支持Linux/UNIX/OSX/Windows等,是系统管理员和运维小伙伴不可或缺的必备模块。
Works with Python versions from 2.4 to 3.X.
二、安装psutil模块????CentOS安装psutil包:
????python版本:5.8
wget https://pypi.python.org/packages/source/p/psutil/psutil-5.8.0.tar.gz
tar zxvf psutil-5.8.0.tar.gz
cd psutil-5.8.0
yum -y install python-devel (如果提示缺少python.h头文件,执行此命令。)
python setup.py install
????Windos安装psutil包:
root@shawn:~# pip3 install psutil
Collecting psutil
Downloading psutil-5.8.0-cp38-cp38-manylinux2010_x86_64.whl (296 kB)
|████████████████████████████████| 296 kB 20 kB/s
Installing collected packages: psutil
Successfully installed psutil-5.8.0
三、使用psutil模块
1.获取CPU信息:
1.1使用psutil.cpu_times()方法使用psutil.cpu_times()获取CPU的完整信息>>> import psutil
>>> psutil.cpu_times()
scputimes(user=733.23, nice=2.62, system=122.87, idle=19414.35, iowait=29.46, irq=0.0, softirq=34.18, steal=0.0, guest=0.0, guest_nice=0.0)获取单个数据,如用户的cpu时或io等待时间。>>> psutil.cpu_times().user
793.19
>>> psutil.cpu_times().iowait
31.79
1.2psutil.cpu_count()获取CPU个数使用psutil.cpu_count()获取CPU逻辑个数#cpu_count(,[logical]):默认返回逻辑CPU的个数,当设置logical的参数为False时,返回物理CPU的个数。
>>> psutil.cpu_count()
8
使用psutil.cpu_count(logical=False)获取CPU的物理个数,默认logical值为True>>> psutil.cpu_count(logical=False)
8
1.3psutil.getloadavg()获取平均系统负载使用psutil.getloadavg()可以获取平均系统负载,会以元组的形式返回最近1、5和15分钟内的平均系统负载。???? 在Windows上,这是通过使用Windows API模拟的,该API产生一个线程,该线程保持在后台运行,并每5秒更新一次结果,从而模仿UNIX行为。 因此,在Windows上,第一次调用此方法,在接下来的5秒钟内,它将返回无意义的(0.0,0.0,0.0)元组。
>>> psutil.getloadavg()
(1.22, 1.41, 1.38)
1.4、psutil.cpu_percent()获取CPU使用率cpu_percent(,[percpu],[interval]):返回CPU的利用率interval:指定的是计算cpu使用率的时间间隔,interval不为0时,则阻塞时显示interval执行的时间内的平均利用率
percpu:指定是选择总的使用率或者每个cpu的使用率,percpu为True时显示所有物理核心的利用率????1.指定的是计算cpu使用率的时间间隔
>>> for x in range(10):
... psutil.cpu_percent(interval=1)
...
2.4
2.5
2.7
2.3
2.5
2.2
2.0
2.2
2.4
2.2
????2.实现类似top命令的CPU使用率,每秒刷新一次,累计10次:
>>> for x in range(10):
... psutil.cpu_percent(interval=1,percpu=True)
...
[1.0, 3.1, 5.0, 4.0, 0.0, 4.0, 3.0, 2.0]
...
[1.0, 1.0, 6.1, 3.1, 2.0, 2.1, 0.0, 0.0]
[2.0, 1.0, 6.0, 4.9, 1.0, 5.1, 1.0, 1.0]
1.5psutil.cpu_stats()获取CPU的统计信息cpu_stats()以命名元组的形式返回CPU的统计信息,包括上下文切换,中断,软中断和系统调用次数。>>> psutil.cpu_stats()
scpustats(ctx_switches=3928927, interrupts=2319133, soft_interrupts=1974116, syscalls=0)
1.6、psutil.cpu_freq()获取CPU频率cpu_freq([percpu]):返回cpu频率>>> psutil.cpu_freq()
scpuf