用psutil库统计系统性能

来源:互联网 发布:数控编程员岗位职责 编辑:程序博客网 时间:2024/05/16 23:43

psutil库能统计系统的cpu,内存,磁盘,网络等信息,主要用于监控,分析和进程管理。
psutil大小单位一般是字节。

内存

总体内存信息

mem = psutil.virtual_memory()

输出结果包含:total、available、percent、used、free

想知道具体某一项的结果可以用:

mem.totalmem.usedmem.free

获取swap分区的信息

psutil.swap_memory()

输出结果包括:total、used、free、percent、sin、sout


CPU

CPU主要查看:

1、执行用户进程的时间百分比(User Time)
2、执行内核进程和中断的时间百分比(System time)
3、由于IO等待使CPU处于空闲状态时间百分比(Wait IO)
4、空闲状态时间百分比(Idle)

获取cpu总体的信息

cpuinfo = psutil.cpu_times()    

输出结果包括:user、system、idle、interrupt、dpc

获取每一个cpu的信息

cpuinfo = psutil.cpu_times(percpu=True) 

想知道某一项的结果可以用

cpuinfo.user

获取CPU的逻辑个数和物理个数

psutil.cpu_count()  # 逻辑个数
psutil.cpu_count(logical=False)     # 物理个数

物理个数 × 每个cpu的核数 = 逻辑个数

磁盘

获取磁盘完整信息

psutil.disk_partitions()

输出包括:device、mountpoint、fstype、opts

获取分区使用情况

psutil.disk_usage('/')

获取磁盘的IO个数,读写信息

psutil.disk_io_counters()

获取单个分区IO个数,读写信息

psutil.disk_io_counters(perdisk=True)

网络

获取网络总的io信息

psutil.net_io_counters()

输出包括:bytes_sent、bytes_recv、packets_sent、packets_recv、errin、errout、dropin、dropout

获取每个网络接口的ip信息

print psutil.net_io_counters(pernic=True)

其他信息

获取当前登录用户的信息

psutil.users()

输出包括:name、terminal、host、started、pid

获取开机时间

psutil.boot_time()      #  返回时间戳

转换成自然格式可以用(要是用datetime模块):

datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H:%M:%S")