系统性能信息模块psutil

1,psutil简介

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

2,psutil安装

 #wget https://pypi.python.org/pypi/psutil/版本

 #解压

 #cd 切换到目录

 #python setup.py  install

3,psutil获取系统性能信息

3.1,获取cpu信息

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

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

wait IO

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

常用方法:

 import psutil

 psutil.cpu_times()   #使用该方法获取完整cpu信息,需要显示所有逻辑cpu信息。

 psutil.cpu_times(percpu=True)   #指定方法变量

 psutil.cpu_times().user  #获取单项数据信息

 psutil.cpu_count()# 获取cpu逻辑个数

 psutil.cpu_count(logical=False)  #获取cpu的物理个数

3.2获取磁盘信息

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

常用方法如下:

 psutil.disk_partitions()  #获取磁盘完整信息

 psutil.disk_usage   #获取磁盘利用率,分区使用情况

 psutil.disk_io_counters()   #获取磁盘总的IO个数

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

3.3,获取网络信息

 其中主要包含几点bytes_sent(发送字节数),bytes_recv,packets_sent(发送数据包数),packets_recv等

 如下常用方法

 psutil.net_io_counters()   #获取总的网络IO数默认为pernic=False

 psutil.net_io_counters(pernic=True)  #输出每个网络接口IO信息  

3.4,内存信息

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

如下常用的;

 mem=psutil.virtual_memory()    #获取内存完整信息

 psutil.swap_memory()    #获取swap分区信息

 men.total

 mem.free  .......

3.5,关于其他的一些信息

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

如下

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

。。。。。

4,获取进程信息

 psutil.pids()  #获取所有进程PID

 psutil.Process()  #获取单个进程的名称,路径,状态,系统资源利用率等信息

 首先实例化

 p=psutil.Process(2424) 

 p.name()    #进程名

 p.exe()    #进程bin的路径

 p.cwd()    #进程工作目录绝对路径

 p.status()    #进程状态

 p.uids()/gids()    #获取进程的uid,gid

 p.cpu_times()    #进程cpu的时间信息

 p.memory_percent()   #进程内存利用率

 p.memory_info()    #进程内存rss,vms信息

 p.num_threads()   #进程开启的线程数

 p.io_counters()    #进程IO信息,包括读写IO数以及字节数

5,popen的简单使用

如下

 import psutil

 from subprocess import PIPE

 p = psutil.Popen(['/usr/bin/python','-c','print('hello')'],stdout=PIPE)   #通过该方法Popen启动程序,可以跟踪程序运行的所有相关信息

 例如

 p.name()  

 p.username()

 p.communicate()  #输出的结果

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

初探psutil的更多相关文章

  1. 初探领域驱动设计(2)Repository在DDD中的应用

    概述 上一篇我们算是粗略的介绍了一下DDD,我们提到了实体.值类型和领域服务,也稍微讲到了DDD中的分层结构.但这只能算是一个很简单的介绍,并且我们在上篇的末尾还留下了一些问题,其中大家讨论比较多的, ...

  2. CSharpGL(8)使用3D纹理渲染体数据 (Volume Rendering) 初探

    CSharpGL(8)使用3D纹理渲染体数据 (Volume Rendering) 初探 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码 ...

  3. 从273二手车的M站点初探js模块化编程

    前言 这几天在看273M站点时被他们的页面交互方式所吸引,他们的首页是采用三次加载+分页的方式.也就说分为大分页和小分页两种交互.大分页就是通过分页按钮来操作,小分页是通过下拉(向下滑动)时异步加载数 ...

  4. JavaScript学习(一) —— 环境搭建与JavaScript初探

    1.开发环境搭建 本系列教程的开发工具,我们采用HBuilder. 可以去网上下载最新的版本,然后解压一下就能直接用了.学习JavaScript,环境搭建是非常简单的,或者说,只要你有一个浏览器,一个 ...

  5. .NET文件并发与RabbitMQ(初探RabbitMQ)

    本文版权归博客园和作者吴双本人共同所有.欢迎转载,转载和爬虫请注明原文地址:http://www.cnblogs.com/tdws/p/5860668.html 想必MQ这两个字母对于各位前辈们和老司 ...

  6. React Native初探

    前言 很久之前就想研究React Native了,但是一直没有落地的机会,我一直认为一个技术要有落地的场景才有研究的意义,刚好最近迎来了新的APP,在可控的范围内,我们可以在上面做任何想做的事情. P ...

  7. psutil 模块

    psutil.pids()查看单个进程p = psutil.Process(2423) p.name()   #进程名p.exe()    #进程的bin路径p.cwd()    #进程的工作目录绝对 ...

  8. python之系统性能信息模块psutil

    系统性能信息模块psutil 跨平台库 轻松实现获取系统运行的进程和系统利用率(包括CPU.内存.磁盘.网络等)信息. 主要用于系统监控,分析和限制系统资源及进程的管理 实现同等命令行工具提供的功能( ...

  9. 【手把手教你全文检索】Apache Lucene初探

    PS: 苦学一周全文检索,由原来的搜索小白,到初次涉猎,感觉每门技术都博大精深,其中精髓亦是不可一日而语.那小博猪就简单介绍一下这一周的学习历程,仅供各位程序猿们参考,这其中不涉及任何私密话题,因此也 ...

随机推荐

  1. Appium学习实践(一)简易运行Appium

    环境: Appium 1.4.13 OS X  10.10.5 真机已安装app,或者未安装,通过ipa文件来安装,并启动Appium Inspector 点击Appium中的放大镜后,自动运行App ...

  2. jquery.roundabout.js实现3D图片层叠旋转木马切换

    最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js. 兼容性如图: html结构代码: <div id="featured-area& ...

  3. Ubuntu 14.04 下 Chromium 出现 未安装Adobe Flash Player 问题解决

    Ubuntu 14.04 中,其他浏览器在安装Adobe Flash插件后可以播放视频及音乐,但是Chromium浏览器则会提示缺少Adobe Flash 插件. 原因:之前Chromium使用Net ...

  4. SQL——查询考试

    一.            设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表( ...

  5. Java的jar文件安装成windows 服务

    Java的jar文件安装成windows 服务: 1.下载:nssm,复制到jar文件目录下 2. jar文件目录下创建bat文件[run.bat],内容为[java -jar 文件名.jar] 3. ...

  6. C语言操作内存

    炒了个栗子 #include <stdio.h> #define N1 (5) #define N2 (7) #define N3 (3) int main(){ int *ip; int ...

  7. workqueue机制分析之process_one_work分析

    工作者线程不断执行,从work_poll结构中卸下一个work, 然后进入函数process_one_work 来执行这个work. process_one_work(struct worker *w ...

  8. salt yum安装lamp

    在批量安装软件前,先找台测试机yum装一遍,看是否报错等,是否依赖包全等 .         本次我们在dev环境下搞. 先看一下已搞成功的目录结构         定义dev环境的第二个好处     ...

  9. [java]java语言初探 servlet+jsp架构

    <<head first java>> https://www.tutorialspoint.com/jsp/jsp_architecture.htm JSP Processi ...

  10. Spring Security笔记:使用数据库进行用户认证(form login using database)

    在前一节,学习了如何自定义登录页,但是用户名.密码仍然是配置在xml中的,这样显然太非主流,本节将学习如何把用户名/密码/角色存储在db中,通过db来实现用户认证 一.项目结构 与前面的示例相比,因为 ...