zoukankan      html  css  js  c++  java
  • 初探psutil

     系统性能信息模块psutil

    1,psutil简介

    psutil是一个跨平台能够轻松获取系统的进程和系统利用率,主要应用在系统监控,分析和限制系统资源以及进程管理。它实现了很多系统管理的命令,如ps,lsof,netstat,who,free,uptime,tty.......,能够很方便的为我们管理系统。

    2,psutil安装

    1 #wget https://pypi.python.org/pypi/psutil/版本
    2 
    3 #解压
    4 
    5 #cd 切换到目录
    6 
    7 #python setup.py  install


    3,psutil获取系统性能信息

    3.1,获取cpu信息

    user time  执行用户进程的时间百分比:

    system time 执行内核进程和中断的时间百分比;

    wait IO

    Idle  cpu处于空闲状态的时间百分比

     常用方法:

     1 import psutil
     2 
     3 psutil.cpu_times()   #使用该方法获取完整cpu信息,需要显示所有逻辑cpu信息。
     4 
     5 psutil.cpu_times(percpu=True)   #指定方法变量
     6 
     7 psutil.cpu_times().user  #获取单项数据信息
     8 
     9 psutil.cpu_count()# 获取cpu逻辑个数
    10 
    11 psutil.cpu_count(logical=False)  #获取cpu的物理个数

    3.2获取磁盘信息

    在系统管理中我们,我们对于磁盘信息更加关注磁盘利用率,以及IO信息

    常用方法如下:

    1 psutil.disk_partitions()  #获取磁盘完整信息
    2 
    3 psutil.disk_usage   #获取磁盘利用率,分区使用情况
    4 
    5 psutil.disk_io_counters()   #获取磁盘总的IO个数
    6 
    7 psutil.disk_io_counters(perdisk=True)   #获取单个分区IO个数

     3.3,获取网络信息

    1 其中主要包含几点bytes_sent(发送字节数),bytes_recv,packets_sent(发送数据包数),packets_recv等
    2 
    3 如下常用方法
    4 
    5 psutil.net_io_counters()   #获取总的网络IO数默认为pernic=False
    6 
    7 psutil.net_io_counters(pernic=True)  #输出每个网络接口IO信息  

    3.4,内存信息

    内存信息我们主要关注,total,used,free,buffers,cache,swap,

    如下常用的;

    1 mem=psutil.virtual_memory()    #获取内存完整信息
    2 
    3 psutil.swap_memory()    #获取swap分区信息
    4 
    5 men.total
    6 
    7 mem.free  .......

    3.5,关于其他的一些信息

    如还支持获取用户登陆,开机时间等等信息

    如下

    psutil.users()    #获取当前系统的用户信息

    。。。。。

    4,获取进程信息

     1 psutil.pids()  #获取所有进程PID
     2 
     3 psutil.Process()  #获取单个进程的名称,路径,状态,系统资源利用率等信息
     4 
     5 首先实例化
     6 
     7 p=psutil.Process(2424) 
     8 
     9 p.name()    #进程名
    10 
    11 p.exe()    #进程bin的路径
    12 
    13 p.cwd()    #进程工作目录绝对路径
    14 
    15 p.status()    #进程状态
    16 
    17 p.uids()/gids()    #获取进程的uid,gid
    18 
    19 p.cpu_times()    #进程cpu的时间信息
    20 
    21 p.memory_percent()   #进程内存利用率
    22 
    23 p.memory_info()    #进程内存rss,vms信息
    24 
    25 p.num_threads()   #进程开启的线程数
    26 
    27 p.io_counters()    #进程IO信息,包括读写IO数以及字节数

    5,popen的简单使用

    如下

     1 import psutil
     2 
     3 from subprocess import PIPE
     4 
     5 p = psutil.Popen(['/usr/bin/python','-c','print('hello')'],stdout=PIPE)   #通过该方法Popen启动程序,可以跟踪程序运行的所有相关信息
     6 
     7 例如
     8 
     9 p.name()  
    10 
    11 p.username()
    12 
    13 p.communicate()  #输出的结果

    ..............更多,如上边。。。。

  • 相关阅读:
    【TS】535- 7个超好用的 TypeScript 新功能
    【学习】一起加入重学 TypeScript 学习小组
    17.5W秒级交易峰值下的混合云弹性架构之路
    微服务架构:spring cloud之服务注册和服务发现
    消息队列服务RabbitMQ 和Kafka对比
    微服务架构:spring cloud简介
    2016 年度码云热门项目排行榜 TOP 10
    Netflix Conductor : 一个微服务的编排器
    Java 9的这一基本功能,你可能从未听过
    使用 Docker 搭建 Java Web 运行环境
  • 原文地址:https://www.cnblogs.com/Dicky-Zhang/p/5211296.html
Copyright © 2011-2022 走看看