zoukankan      html  css  js  c++  java
  • python---psutil模块

    一 psutil介绍

    psutil是一个跨平台库(http://code.google.com/p/psutil/),能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。它主要应用于系统监控,分析和限制系统资源及进程的管理。它实现了同等命令行工具提供的功能,如ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、iostat、iotop、uptime、pidof、tty、taskset、pmap等。目前支持32位和64位的Linux、Windows、OS X、FreeBSD和Sun Solaris等操作系统!

    二 安装

    如果之前安装的是anaconda,会默认安装这个模块,如果没有安装这个模块,在Aanconda Prompt下键入如下命令:

    pip install psutil

    三 简单使用

    3.1 cpu相关

    (1)导入库:

    import psutil

    (2)查看cpu所有信息

    psutil.cpu_times()

     结果为:

    scputimes(user=76906.46874999999, system=33997.828125, idle=800137.46875, interrupt=2147.96875, dpc=1190.53125)

    (3)显示cpu所有逻辑信息

    psutil.cpu_times(percpu=True)

     结果为:

    [scputimes(user=20561.71875, system=8715.92187499997, idle=198832.46875, interrupt=403.40625, dpc=252.578125),
     scputimes(user=18980.359375, system=9183.12499999997, idle=199946.359375, interrupt=1056.1875, dpc=587.1875),
     scputimes(user=19787.015625, system=8323.140625, idle=199999.6875, interrupt=199.84375, dpc=109.125),
     scputimes(user=17736.828125, system=7840.343749999971, idle=202532.671875, interrupt=492.609375, dpc=245.5)]

    (4)查看用户的cpu时间比

    psutil.cpu_times().user

    结果为:

    11684.4

    (5) 查看cpu逻辑个数

    psutil.cpu_count()

    结果为

    (5)查看cpu物理个数

    psutil.cpu_count(logical=False)

    结果为:

     2

    3.2查看系统内存

    (1)系统内存的所有信息

    >>> import psutil
    >>> mem = psutil.virtual_memory()
    >>> mem
    

    结果为;

    svmem(total=1040662528, available=175054848, percent=83.2, used=965718016, free=74944512, active=566755328, inactive=59457536, buffers=9342976, cached=90767360)

    (2)系统总计内存

    mem.total

    结果为:

    1040662528

    (3)系统已经使用内存

    mem.used

    结果为:

    965718016

    (4)系统空闲内存

    mem.free

    结果为:

    112779264

    (5)获取swap内存信息

    psutil.swap_memory()

    结果为:

    sswap(total=0, used=0, free=0, percent=0, sin=0, sout=0)

    3.3 读取磁盘参数

    磁盘利用率使用psutil.disk_usage方法获取。

    (1)获取磁盘IO信息

    包括read_count(读IO数),write_count(写IO数),read_bytes(IO写字节数),read_time(磁盘读时间),write_time(磁盘写时间),命令如下:

    psutil.disk_io_counters()

    (2)获取磁盘的完整信息

    psutil.disk_partitions()

    (3)获取分区表的参数

    psutil.disk_usage('/')

    (4)获取硬盘IO总个数

    psutil.disk_io_counters()

    (5)获取单个分区IO个数

    psutil.disk_io_counters(perdisk=True)    #perdisk=True参数获取单个分区IO个数

    3.4 读取网络信息

    (1)获取网络总IO信息

    与磁盘IO信息类似,涉及到几个关键点,包括byes_sent(发送字节数),byte_recv=xxx(接受字节数),pack-ets_sent=xxx(发送字节数),pack-ets_recv=xxx(接收数据包数)。

    psutil.net_io_counters()  

    (2)输出网络每个接口信息

    psutil.net_io_counters(pernic=True)     #pernic=True

    (3)获取当前系统用户登录信息

    psutil.users()

    3.5 获取开机时间

    psutil.boot_time() #以linux时间格式返回
    
    datetime.datetime.fromtimestamp(psutil.boot_time ()).strftime("%Y-%m-%d %H: %M: %S") #转换成自然时间格式

    3.6 系统进程管理

    获取当前系统的进程信息,获取当前程序的运行状态,包括进程的启动时间,查看设置CPU亲和度,内存使用率,IO信息,socket连接,线程数等!
    (1)查看系统全部进程

    psutil.pids()

    (2)查看单个进程

    p = psutil.Process(2423) 
    p.name()   #进程名
    p.exe()    #进程的bin路径
    p.cwd()    #进程的工作目录绝对路径
    p.status()   #进程状态
    p.create_time()  #进程创建时间
    p.uids()    #进程uid信息
    p.gids()    #进程的gid信息
    p.cpu_times()   #进程的cpu时间信息,包括user,system两个cpu信息
    p.cpu_affinity()  #get进程cpu亲和度,如果要设置cpu亲和度,将cpu号作为参考就好
    p.memory_percent()  #进程内存利用率
    p.memory_info()    #进程内存rss,vms信息
    p.io_counters()    #进程的IO信息,包括读写IO数字及参数
    p.connectios()   #返回进程列表
    p.num_threads()  #进程开启的线程数
    听过psutil的Popen方法启动应用程序,可以跟踪程序的相关信息
    from subprocess import PIPE
    p = psutil.Popen(["/usr/bin/python", "-c", "print('hello')"],stdout=PIPE)
    p.name()
    p.username()

    参考:python笔记之psutil模块

  • 相关阅读:
    401. Binary Watch
    46. Permutations
    61. Rotate List
    142. Linked List Cycle II
    86. Partition List
    234. Palindrome Linked List
    19. Remove Nth Node From End of List
    141. Linked List Cycle
    524. Longest Word in Dictionary through Deleting
    android ListView详解
  • 原文地址:https://www.cnblogs.com/Terrypython/p/10178614.html
Copyright © 2011-2022 走看看