【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内存信息
以上函数返回的都是一些对象,访问对象的属性可以进一步获得更精细的信息。
【Python】 系统配置/进程等信息查看 psutil的更多相关文章
- psutil:系统、进程,信息都在我的掌握之中
获取cpu的逻辑数量 import psutil print(psutil.cpu_count()) # 12 获取CPU的物理核心数 import psutil print(psutil.cpu_c ...
- nginx查看进程连接信息
linux 中查看当前请求连接的进程统计信息 root@VM-24-181-ubuntu:/# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) ...
- python爬虫之天气预报网站--查看最近(15天)的天气信息(正则表达式)
python爬虫之天气预报网站--查看最近(15天)的天气信息(正则表达式) 思路: 1.首先找到一个自己想要查看天气预报的网站,选择自己想查看的地方,查看天气(例:http://www.tianqi ...
- linux下查看运行进程详细信息
通过ps及top命令查看进程信息时,只能查到相对路径,查不到的进程的详细信息,如绝对路径等.这时,我们需要通过以下的方法来查看进程的详细信息: Linux在启动一个进程时,系统会在/proc下创建一个 ...
- Linux查看进程堆栈信息命令
jps -lvm #查看进程IDjstack -l <进程ID> # 查看进程堆栈信息
- Python当前进程信息 (os包)
Python当前进程信息 (os包) 我们在Linux的概念与体系,多次提及进程的重要性.Python的os包中有查询和修改进程信息的函数.学习Python的这些工具也有助于理解Linux体系. (o ...
- linux 查看运行进程详细信息
Linux在启动一个进程时,系统会在/proc下创建一个以PID命名的文件夹,在该文件夹下会有我们的进程的信息 通过ll或ls –l命令即可查看. ll /proc/PID cwd符号链接的是进程运行 ...
- Python之进程
进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基本执行实体:在当代 ...
- Python之进程 3 - 进程池和multiprocess.Poll
一.为什么要有进程池? 在程序实际处理问题过程中,忙时会有成千上万的任务需要被执行,闲时可能只有零星任务.那么在成千上万个任务需要被执行的时候,我们就需要去创建成千上万个进程么?首先,创建进程需要消耗 ...
随机推荐
- canvas API总结
从简单的基本图形,到复杂炫酷的动画,通过canvas元素获取的2D图形渲染上下文CanvasRenderingContext2D,能够使用丰富的API来进行图形绘制.这篇文章将会总结在之前的canva ...
- 6.2 PowerPC处理器如何处理MSI中断请求
PowerPC处理器使用OpenPIC中断控制器或者MPIC中断控制器,处理外部中断请求.其中MPIC中断控制器基于OpenPIC中断控制器,但是作出了许多增强,目前Freescale新推出的Powe ...
- linux之x86裁剪移植---字符界面sdl开发入门
linux下有没有TurboC2.0那样的画点.线.圆的图形函数库,有没有grapihcs.h,或者与之相对应或相似的函数库是什么?有没有DirectX这样的游戏开发库?SDL就是其中之一. SDL( ...
- LINUX下printf输出字体的特效
在学习LINUX网络编程的时候我们做了一个聊天系统,当时为了界面更漂亮点,于是在百度上搜索了下关于printf()函数的用法,和大家分享下: 给pr ...
- TI AM335X处理器介绍
AM335X是美国TI(德州仪器)公司基于 ARM Cortex-A8内核的AM335X微处理器,在图像.图形处理.外设方面进行了增强,并全面支持诸如 EtherCAT 和 PROFIBUS等工业接口 ...
- JavaScript向select下拉框中添加和删除元素
JavaScript向select下拉框中添加和删除元素 1.说明 a 利用append()方法向下拉框中添加元素 b 利用remove()方法移除下拉框中最后一个元素 2.设计源码 < ...
- org.hibernate.MappingException:Unknown entity:java.util.ArrayList
1.错误描述 [CQ] ERROR [http-apr-8888-exec-3] com.opensymphony.xwork2.util.logging.commons.CommonsLogger. ...
- github上的文件比对
Skip to content This repository Pull requests Issues Marketplace Explor ...
- 【BZOJ2337】Xor和路径(高斯消元)
[BZOJ2337]Xor和路径(高斯消元) 题面 BZOJ 题解 我应该多学点套路: 对于xor之类的位运算,要想到每一位拆开算贡献 所以,对于每一位拆开来看 好了,既然是按位来算 我们就只需要计算 ...
- LightOJ1336 Sigma Function
题意 求和运算是一种有趣的操作,它来源于古希腊字母σ,现在我们来求一个数字的所有因子之和.例如σ(24)=1+2+3+4+6+8+12+24=60.对于小的数字求和是非常的简单,但是对于大数字求和就比 ...