• python---psutil


    系统性能信息模块psutil

      psutil是一个跨平台库,能够轻松实现获取系统运行的进程和系统利用率(CPU,内存,磁盘,网络等)信息,主要应用于系统监控,分析和限制系统资源及进程的管理,它实现了同等命令行工具提供的功能,如ps,top,lsof,netstat,ifconfig,who,df,kill,free,nice等.支持32位,和64位的Linux,Windows,OS X,FreeBSD等操作系统。

    #CentOS6.4安装psutil
    
    #pip安装
    #pip3 install psutil
    

    获取系统性能信息

    1 cpu信息
    #Linux系统cpu利用率有以下几个部分
    #User Time,执行用户进程的时间百分比
    #System Time,执行内核进程和中断的时间百分比
    #Wait IO,由于IO等待使cpu处于idle(空闲)状态的时间百分比
    #Idle,cpu处于空闲状态的时间百分比
    
    >>> import psutil
    #获取cpu完成信息
    >>> psutil.cpu_times()
    scputimes(user=29.36, nice=0.0, system=26.59, idle=9619.35, iowait=64.78, irq=0.5, softirq=1.67, steal=0.0, guest=0.0)
    
    #获取用户user的cpu时间比
    >>> psutil.cpu_times().user
    34.54
    
    #获取cpu逻辑个数
    >>> psutil.cpu_count()
    4
    
    #获取cpu物理个数
    >>> psutil.cpu_count(logical=False)
    4
    
    2 内存信息
    #Linux系统的内存利用率信息涉及
    #total 内存总数
    #used 已使用的内存数
    #free 空闲内存数
    #buffers 缓冲使用数
    #cache 缓存使用数
    #swap 交换分区使用数 等
    #使用 psutil.virtual_memory()与psutil.memory()方法获取
    
    #获取内存完整信息
    >>>mem = psutil.virtual_memory()
    >>> mem
    svmem(total=1961488384, available=1483986944, percent=24.3, used=341475328, free=941473792, active=677801984, inactive=212774912, buffers=32038912, cached=646500352, shared=4116480)
    
    #获取内存总数
    >>> mem.total
    1961488384
    
    #获取空闲内存数
    >>> mem.free
    941473792
    
    #获取SWAP分区信息
    >>> psutil.swap_memory()
    sswap(total=2147475456, used=0, free=2147475456, percent=0.0, sin=0, sout=0)
    
    3 磁盘信息
    #磁盘利用率使用psutil.disk_usage()方法获取
    #IO信息 
    #read_count 读IO数
    #write_count 写IO数
    #read_bytes IO读字节数
    #write_bytes IO写字节数
    #read_time 磁盘读时间
    #write_time 磁盘写时间
    #使用psutil.disk_io_counters()获取
    
    #获取磁盘完整信息
    >>> psutil.disk_partitions()
    [sdiskpart(device='/dev/sda3', mountpoint='/', fstype='ext4', opts='rw'), sdiskpart(device='/dev/sda1', mountpoint='/boot', fstype='ext4', opts='rw')]
    
    #获取/分区使用情况
    >>> psutil.disk_usage('/')
    sdiskusage(total=18506760192, used=4438568960, free=13128093696, percent=25.3)
    
    #获取硬盘总IO数
    >>> psutil.disk_io_counters()
    
    4 网络信息
    #bytes_sent 发送字节数
    #bytes_recv 接收字节数
    #packets_sent 发送数据包数
    #packest_recv 接收数据包数
    #使用psutil.net_io_counters()获取
    >>> psutil.net_io_counters()
    
    
    5 其他系统信息
    #psutil模块还支持获取用户登录,开机时间等信息
    #显示当前登录系统的用户信息
    >>> psutil.users()
    
    #获取开机时间
    >>> psutil.boot_time()
    

    系统进程管理方法

    psutil在获取进程信息方面也提供了很好的支持,包括使用psutil.pids()方法获取所有PID,使用psutil.Process()方法获取单个进程的名称,路径,系统资源利用率等信息。

    #列出所有进程的PID
    >>> psutil.pids()
    
    #实例化一个Process对象,参数为一个PID
    >>>p = psutil.Process(3197)
    
    #进程名
    >>> p.name()
    'python3'
    
    #进程bin路径
    >>> p.exe()
    '/opt/python3/bin/python3.5'
    
    #进程工作绝对路径
    >>> p.cwd()
    
    #进程状态
    >>> p.status()
    
    #进程创建时间
    >>> p.create_time()
    
    #uid信息
    >>> p.uids()
    
    #gid信息
    >>> p.gids()
    
    #进程cpu时间,包括user,system两个时间
    >>> p.cpu_times()
    
    #进程内存利用率
    >>> p.memory_percent()
    
    #进程内存rss,vms信息
    >>> p.memory_info()
    
    #进程IO信息
    >>> p.io_counters()
    
    #进程开启的线程数
    >>> p.num_threads()
    

      

  • 相关阅读:
    理解闭包
    .net 应用程序执行过程
    Lambda 表达式
    栈的应用
    C# string
    自包含 与 自描述
    C# 值类型 与 引用类型
    C# 装箱 与 拆箱
    sql server分页的两种方法比较
    九月天开博日志
  • 原文地址:https://www.cnblogs.com/xiao1/p/6164204.html
Copyright © 2020-2023  润新知