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内存信息

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

  

  

【Python】 系统配置/进程等信息查看 psutil的更多相关文章

  1. psutil:系统、进程,信息都在我的掌握之中

    获取cpu的逻辑数量 import psutil print(psutil.cpu_count()) # 12 获取CPU的物理核心数 import psutil print(psutil.cpu_c ...

  2. nginx查看进程连接信息

    linux 中查看当前请求连接的进程统计信息 root@VM-24-181-ubuntu:/# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) ...

  3. python爬虫之天气预报网站--查看最近(15天)的天气信息(正则表达式)

    python爬虫之天气预报网站--查看最近(15天)的天气信息(正则表达式) 思路: 1.首先找到一个自己想要查看天气预报的网站,选择自己想查看的地方,查看天气(例:http://www.tianqi ...

  4. linux下查看运行进程详细信息

    通过ps及top命令查看进程信息时,只能查到相对路径,查不到的进程的详细信息,如绝对路径等.这时,我们需要通过以下的方法来查看进程的详细信息: Linux在启动一个进程时,系统会在/proc下创建一个 ...

  5. Linux查看进程堆栈信息命令

    jps -lvm #查看进程IDjstack -l <进程ID> # 查看进程堆栈信息

  6. Python当前进程信息 (os包)

    Python当前进程信息 (os包) 我们在Linux的概念与体系,多次提及进程的重要性.Python的os包中有查询和修改进程信息的函数.学习Python的这些工具也有助于理解Linux体系. (o ...

  7. linux 查看运行进程详细信息

    Linux在启动一个进程时,系统会在/proc下创建一个以PID命名的文件夹,在该文件夹下会有我们的进程的信息 通过ll或ls –l命令即可查看. ll /proc/PID cwd符号链接的是进程运行 ...

  8. Python之进程

    进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基本执行实体:在当代 ...

  9. Python之进程 3 - 进程池和multiprocess.Poll

    一.为什么要有进程池? 在程序实际处理问题过程中,忙时会有成千上万的任务需要被执行,闲时可能只有零星任务.那么在成千上万个任务需要被执行的时候,我们就需要去创建成千上万个进程么?首先,创建进程需要消耗 ...

随机推荐

  1. MFC: 获得关机消息;阻止Windows关机

    WM_QUERYENDSESSION消息是Windows向你询问Windows能否关闭,WM_ENDSESSION消息表示提示你Windows即将关闭.故当应用程序退出时, WM_QUERYENDSE ...

  2. 工业级GBDT算法︱微软开源 的LightGBM(R包正在开发....)

    看完一篇介绍文章后,第一个直觉就是这算法已经配得上工业级属性.日前看到微软已经公开了这一算法,而且已经发开python版本,本人觉得等hadoop+Spark这些平台配齐之后,就可以大规模宣传啦~如果 ...

  3. 嵌入式Linux引导过程之1.3——Xloader的sys_init

    上一篇文章对XLOADER_ENTRY进行了分析,看到其中调用的第一个标号就是sys_init,本文就对这个标号对应的代码段进行粗略的分析,这里我也还有好多没有搞明白的,就先留着,日后慢慢明白,先把自 ...

  4. dojo省份地市级联之地市Dao接口类(四)

    dojo省份地市级联之地市Dao接口类 CityDao.java: /** * 地市 */ package com.you.dao; import java.util.List; import com ...

  5. jsp页面报错(一)

    jsp页面报错 1.错误位置 <form action="../page/areaType.action" method="POST"> <j ...

  6. Java之split方法

    Java之split方法 1.间隔号"." (1)str.split(".") String str = "10.156.35.87"; S ...

  7. linux中mysql命令方式备份数据的问题

    这几天公司新出了个组件化的项目,里面需要用到mysql数据库相关的技术,由于之前一直用的mongodb,所以mysql几乎忘光了,于是只能在linux虚拟机中重新开始学习. 基本的增删改查还好,但是在 ...

  8. maven项目转eclipse

    很多国外的开源项目是用maven编译的,对于我们比较熟悉eclipse开发的童鞋来说,能转成.project是最好不过了. 很简单,装好maven后,在项目目录打开命令行,输入 mvn eclipse ...

  9. 利用scrapy模拟登录知乎

    闲来无事,写一个模拟登录知乎的小demo. 分析网页发现:登录需要的手机号,密码,_xsrf参数,验证码 实现思路: 1.获取验证码 2.获取_xsrf 参数 3.携带参数,请求登录 验证码url : ...

  10. 让你的微信小程序具有在线支付功能

    前言 最近需要在微信小程序中用到在线支付功能,于是看了一下官方的文档,发现要在小程序里实现微信支付还是很方便的,如果你以前开发过服务号下的微信支付,那么你会发现其实小程序里的微信支付和服务号里的开发过 ...