初探psutil
系统性能信息模块psutil
1,psutil简介
psutil是一个跨平台能够轻松获取系统的进程和系统利用率,主要应用在系统监控,分析和限制系统资源以及进程管理。它实现了很多系统管理的命令,如ps,lsof,netstat,who,free,uptime,tty.......,能够很方便的为我们管理系统。
2,psutil安装
1 #wget https://pypi.python.org/pypi/psutil/版本 2 3 #解压 4 5 #cd 切换到目录 6 7 #python setup.py install
3,psutil获取系统性能信息
3.1,获取cpu信息
user time 执行用户进程的时间百分比:
system time 执行内核进程和中断的时间百分比;
wait IO
Idle cpu处于空闲状态的时间百分比
常用方法:
1 import psutil 2 3 psutil.cpu_times() #使用该方法获取完整cpu信息,需要显示所有逻辑cpu信息。 4 5 psutil.cpu_times(percpu=True) #指定方法变量 6 7 psutil.cpu_times().user #获取单项数据信息 8 9 psutil.cpu_count()# 获取cpu逻辑个数 10 11 psutil.cpu_count(logical=False) #获取cpu的物理个数
3.2获取磁盘信息
在系统管理中我们,我们对于磁盘信息更加关注磁盘利用率,以及IO信息
常用方法如下:
1 psutil.disk_partitions() #获取磁盘完整信息 2 3 psutil.disk_usage #获取磁盘利用率,分区使用情况 4 5 psutil.disk_io_counters() #获取磁盘总的IO个数 6 7 psutil.disk_io_counters(perdisk=True) #获取单个分区IO个数
3.3,获取网络信息
1 其中主要包含几点bytes_sent(发送字节数),bytes_recv,packets_sent(发送数据包数),packets_recv等 2 3 如下常用方法 4 5 psutil.net_io_counters() #获取总的网络IO数默认为pernic=False 6 7 psutil.net_io_counters(pernic=True) #输出每个网络接口IO信息
3.4,内存信息
内存信息我们主要关注,total,used,free,buffers,cache,swap,
如下常用的;
1 mem=psutil.virtual_memory() #获取内存完整信息 2 3 psutil.swap_memory() #获取swap分区信息 4 5 men.total 6 7 mem.free .......
3.5,关于其他的一些信息
如还支持获取用户登陆,开机时间等等信息
如下
psutil.users() #获取当前系统的用户信息
。。。。。
4,获取进程信息
1 psutil.pids() #获取所有进程PID 2 3 psutil.Process() #获取单个进程的名称,路径,状态,系统资源利用率等信息 4 5 首先实例化 6 7 p=psutil.Process(2424) 8 9 p.name() #进程名 10 11 p.exe() #进程bin的路径 12 13 p.cwd() #进程工作目录绝对路径 14 15 p.status() #进程状态 16 17 p.uids()/gids() #获取进程的uid,gid 18 19 p.cpu_times() #进程cpu的时间信息 20 21 p.memory_percent() #进程内存利用率 22 23 p.memory_info() #进程内存rss,vms信息 24 25 p.num_threads() #进程开启的线程数 26 27 p.io_counters() #进程IO信息,包括读写IO数以及字节数
5,popen的简单使用
如下
1 import psutil 2 3 from subprocess import PIPE 4 5 p = psutil.Popen(['/usr/bin/python','-c','print('hello')'],stdout=PIPE) #通过该方法Popen启动程序,可以跟踪程序运行的所有相关信息 6 7 例如 8 9 p.name() 10 11 p.username() 12 13 p.communicate() #输出的结果
..............更多,如上边。。。。