zoukankan      html  css  js  c++  java
  • 系统基础信息模块psutil之系统进程管理方法篇

    一、简介

    获取当前系统的进程信息,可以让运维人员得知应用程序的运行状态,包括进程的启动时间、查看或设置CPU的亲和度,内存使用率、IO信息、socket连接、线程数等,这些信息可以呈现出指定进程是否存活,资源利用情况,为开发人员的代码优化、问题定位提供很好的数据参考。

    (1)进程信息

    psutil模块在获取进程信息方面也提供了很好的支持,包括使用psutil.pids()方法获取所有进程的PID,使用psutil.Process()方法获取单个进程的名称、路径、状态、系统资源利用率等信息,具体见下面的操作例子:

     解释:

    方法 作用
    psutil.pids() 列出所有进程的PID(进程号)
    p = psutil.Process(pid_number) 实例化一个Process对象,参数为一进程的PID(进程号)
    p.name() 进程名
    p.exe() 进程的bin路径(有的程序没有)
    p.cwd() 进程工作目录绝对路径
    p.status() 进程状态
    p.create_time() 进程创建时间(以时间戳格式显示)
    p.uids() 进程uid信息(用户id)
    p.gids() 进程gid信息(组id)
    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() 进程开启的线程数

    (2)popen类的使用

    psutil提供的popen类的作用是获取用户启动的应用程序的进程信息,以便跟踪程序进程的运行状态。具体实现方法如下:

    # 导入相关库
    
    import psutil
    
    from subprocess import PIPE
    
    # 实例化一个对象,使用Popen类调用Python并打印Hello
    
    p = psutil.Popen([“/usr/bin/python”, “-c”, “print(‘hello’)”],stdout=PIPE)
    
    # 进程名称
    
    p.name()
    
    ‘python’
    
    # 用户名称
    
    p.username()
    
    ‘root’
    
    # 输出交谈信息
    
    p.communicate()
    
    (b’hello
    ’, None)
    
    其他用法请参见:https://psutil.readthedocs.io/en/latest/
  • 相关阅读:
    redo log 转csdn之ppp_10001
    Kafka的topic的partitions数的选取
    log4j:WARN No appenders could be found for logger
    HBase统计表的行数
    /bin/bash: /us/rbin/jdk1.8.0/bin/java: No such file or directory
    HBase shell命令
    Linux按名字杀死进程
    Kafka常用命令
    Plugin 'mavenassemblyplugin:' not found
    Linux搜索指定目录中所有文件的内容
  • 原文地址:https://www.cnblogs.com/liujunjun/p/13475045.html
Copyright © 2011-2022 走看看