系列文章
https://blog.csdn.net/cpen_web/category_11089219.html
● 介绍
● process and system utilities
● 能够轻松的实现获取系统运行的进程和系统利用率(CPU、内存、磁盘、网络等)信息,主要应用于系统监控
● 实现了同等命令命令行实现的功能:ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、iostat、iotop、uptime、pidof、tty、taskset、pmap等
● 跨平台:linux、windows、OS X、FreeBSD和Sun Solaris等
● 主要功能包含:CPU、磁盘、内存、网络、进程
● 安装
● 源码安装:git clone https://github.com/giampaolo/psutil.git
cd psutil
python3 setup.py install
● 先安装相关库:yum install python3-devel,(用yum list |grep python|grep dev 找到包名), pip3 install psutil
● 导入使用模块:import psutil
[root@cPen_B ~]# yum list |grep python |grep dev
python36-devel.x86_64 3.6.8-2.module_el8.1.0+245+c39af44f @AppStream
[root@cPen_B ~]# yum install python36-devel.x86_64
[root@cPen_B ~]# pip3 install psutil
● 获取系统基本信息
○ 1、CPU
● psutil.cpu_count(,[logical]):默认返回逻辑CPU的个数,当设置logical的参数为False时,返回物理CPU的个数
● psutil.cpu_percent(,[percpu],[interval]):返回CPU的利用率,percpu为True时显示所有物理核心的利用率,interval不为0时,则阻塞时显示interval执行的时间内的平均利用率
● psutil.cpu_times(,[percpu]):以命名元组(namedtuple)的形式返回cpu的时间花费,percpu=True表示获取每个CPU的时间花费
user:执行用户进程的时间
system:执行内核进程时间
idle:闲置的时间
iowait:等待io操作的时间
irp:硬中断时间
softirq:软中断时间
● psutil.cpu_times_percent(,[percpu]):功能和cpu_times大致相同,返回耗时比例
● psutil.cpu_stats(): 以命名元组的形式返回CPU的统计信息,包括上下文切换,中断,软中断和系统调用次数
ctx_switches:上下文切换次数
interrupts:中断次数
soft_interrupts:软中断次数
syscalls:系统调用次数,linux上始终为0
● psutil.cpu_freq(): 返回cpu频率
# 示例1:返回CPU个数
>>> import psutil
>>> psutil.cpu_count() # 注:返回逻辑CPU个数
2
>>> psutil.cpu_count(logical=False) # 注:返回物理CPU个数
2
# 示例2:CPU使用率 百分比利用率
>>> psutil.cpu_percent()
0.1
# 示例3:cpu_times
>>> psutil.cpu_times() # 注:花费的时间占用总时间的百分比
scputimes(user=105.27, nice=0.1, system=81.87, idle=69229.05, iowait=11.17, irq=0.0, softirq=<