zoukankan      html  css  js  c++  java
  • Python—其它模块

    系统监控模块psutil(第三方模块)

    psutil是一个跨平台的库,用于在Python中检索系统运行的进程和系统利用率(CPU,内存,磁盘,网络,传感器)的信息。
    它主要用于系统监控,性能分析,进程管理。分析和限制流程资源以及运行流程的管理。它实现了UNIX命令行工具提供的许多功能,例如:ps,top,lsof,netstat,ifconfig,who,df,kill,free,nice,ionice,iostat,iotop,uptime,pidof,tty,taskset,pmap等。
    psutil目前支持32位和64位的Linux、Windows、OS X、FreeBSD和Sun Solaris等操作系统。Python版本从2.6到3.6。

    获取CPU信息

    import psutil
    
    print psutil.cpu_times()                # 获取cpu的完整信息
    print psutil.cpu_times().user           # 获取单项cpu的数据信息,如用户user的cpu时间比
    print psutil.cpu_times().iowait         # 获取io等待时间
    
    print psutil.cpu_count()                # 获取cpu逻辑个数
    print psutil.cpu_count(logical=False)   # 获取cpu物理个数
    
    print psutil.cpu_percent()              
    print psutil.cpu_percent(1)             # 获取cpu的使用率

    获取内存信息

    import psutil
    
    # 内存信息的获取主要使用virtual_memory方法。swap使用就用swap_memory方法。
    mem = psutil.virtual_memory()   #使用pstuil.virtual_memory方法获取内存的完整信息
    
    print mem.total/1024/1024  # 获取内存总数
    print mem.used/1024/1024   # 获取内存已经使用的
    print mem.free/1024/1024   # 获取内存剩余

    获取磁盘信息

    import psutil
    
    # 磁盘信息主要有两部分,一个是磁盘的利用率,一个是io,他们分别可以通过disk_usage和disk_io_counters方法获取。
    print psutil.disk_partitions()               # 获取磁盘完整信息
    print psutil.disk_usage('/')                 # 获取整个硬盘的信息
    print psutil.disk_usage('C://')              # 获取分区c的硬盘信息
    print psutil.disk_io_counters()              # 获取硬盘的总io个数、读写信息
    print psutil.disk_io_counters(perdisk=True)  # 获取单个分区IO个数、读写信息

    获取网络信息

    import psutil
    
    # 网络io和磁盘io使用方法差不多,主要使用net_io_counters方法,如果需要获取单个网卡的io信息,加上pernic=True参数。
    print psutil.net_io_counters()            # 获取网络总的IO信息、默认pernic=False
    print psutil.net_io_counters(pernic=True) # 获取每个网卡的io信息
    print psutil.net_connections()            # 获取所有的连接信息

    其他系统信息

    import psutil,datetime
    
    print psutil.boot_time()    # 获取开机时间,为linux格式,可以使用时间戳转换
    print datetime.datetime.fromtimestamp(psutil.boot_time()).strftime('%Y-%m-%d %H:%M:%S') # 转换为自然时间格式
    
    print psutil.users()        # 获取当前登录系统的用户信息
    
    print psutil.pids()         # 获取系统所有进程的pid号  
    p = psutil.Process(1205)    # 查看单个进程,实例化其中的一个pid号
    print p.name()              # 进程名
    print p.exe()               # 进程的bin路径,工作路径
    print p.cwd()               # 进程的工作目录绝对路径
    print p.status()            # 进程的状态
    print p.create_time()       # 进程创建时间、时间戳格式
    print p.gids()           # 进程的gid信息,p.uids():进程的uid信息
    print p.cpu_times        # 进程所占cpu的时间,包括user,system两个cpu时间
    print p.cpu_affinity()   # 进程和cpu的亲和度
    print p.memory_percent() # 进程内存利用率
    print p.memory_info      # 进程内存rss,vms信息
    print p.io_counters()    # 进程io信息,包括读写IO数及字节数
    print p.connections()    # 返回打开进程socket的namedutples列表、包括fs,family,laddr等信息
    print p.num_threads()    # 进程开启的线程数
    
    #通过psutil的popen方法启动的应用程序,可以跟踪该程序的所有相关信息
    from subprocess import PIPE
    # p = psutil.Popen(["/usr/bin/python", "-c", "print('hello')"], stdout=PIPE)
    p = psutil.Popen(["/etc/init.d/mysqld","-c","start"], stdout=PIPE)
    print p.name(),p.username()
    

      

  • 相关阅读:
    Android8.0 启动后台Service
    上周热点回顾(7.20-7.26)团队
    上周热点回顾(7.13-7.19)团队
    上周热点回顾(7.6-7.12)团队
    博客园-阿里云开发者俱乐部上海地区七月份活动通知(2015-07-18)团队
    上周热点回顾(6.29-7.5)团队
    .NET跨平台之旅:借助ASP.NET 5 Beta5的新特性显示CLR与操作系统信息团队
    从一个简单的ASP.NET 5站点开启.NET跨平台之旅团队
    上周热点回顾(6.22-6.28)团队
    云计算之路-阿里云上:9:55-10:08因流量攻击被进黑洞,造成主站不能正常访问团队
  • 原文地址:https://www.cnblogs.com/liuhaidon/p/11725338.html
Copyright © 2011-2022 走看看