zoukankan      html  css  js  c++  java
  • 【Python】 系统配置/进程等信息查看 psutil

    psutil

      原以为psutil只是跟进程有关的一个模块,没想到它其实提供了从CPU到内存各种各样的信息,十分IMBA。记录一下

      我用了pip install psutil安装的这个模块,不过路中遇到了一个坑。原先的虚拟机环境中没有安装gcc所以编译.c文件失败。但是装上之后依然安装模块失败,后来去百度一下发现问题在于没有安装python-devel这个包。于是yum search了一下,安装了python-devel.x86_64这个包后成功安装。

    ■  进程信息查看

      第一次看到psutil就是用了模块下的Process构建的进程对象。

      首先是查看系统中目前的所有进程pid:

    print psutil.pids()

      返回一个列表,内容是当前所有进程的pid。在知道某个特定进程的pid之后,可以使用p = psutil.Process(pid)来得到一个进程对象。这个进程对象相比于subprocess.Popen给出的进程对象有更多的信息。如下:

    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.connections()   #返回进程对象的列表
    p.num_threads()  #进程开启的线程数
    p.username()  #执行用户的名

      另外,psutil也封装了Popen方法,使得进程对象可以跟踪新开的进程。比如:

    from subprocess import PIPE
    p = psutil.Popen(["/usr/bin/python", "-c", "print('hello')"],stdout=PIPE)
    print p.name()
    print p.username()

    ■  获取其他方面的系统信息

      psutil.cpu_count()  返回cpu个数

      psutil.cpu_times()  返回cpu使用时间信息对象,包括用户时间,空转时间等等。这些信息都是属性,可以用.访问

      psutil.boot_time()  返回系统开机的时间

      psutil.users()  返回用户信息

      psutil.net_io_counters()  网卡属性,连接数,流量等信息

      psutil.virtual_memory()  系统内存信息

      psutil.swap_memory()  swap内存信息

      以上函数返回的都是一些对象,访问对象的属性可以进一步获得更精细的信息。

      

      

  • 相关阅读:
    git 有用配置汇总
    C语言:不定长结构体的实现方式
    Linux 错误码
    执行insmod提示 invalid module format
    ARM GIC 系列文章学习(转)
    Android:高通平台Camera HFR Usecase分析
    索引图-查表-颜色缩减
    连通域查找【未完】
    epoll
    手动编译安装tmux
  • 原文地址:https://www.cnblogs.com/franknihao/p/7160533.html
Copyright © 2011-2022 走看看