Python运维开发之psutil库的使用详解


Posted in Python onOctober 18, 2018

介绍

psutil能够轻松实现获取系统运行的进程和系统利用率。

导入模块

import psutils

获取系统性能信息

CPU信息

使用cpu_times()方法获取CPU的完整信息:

>>> psutil.cpu_times()

获取单项数据,例如用户user的CPU时间比:

>>> psutil.cpu_times().user

获取CPU的个数:

>>> psutil.cpu_count() # 默认logical=True,获取逻辑个数
>>> psutil.cpu_count(logical=False) # 获取CPU的物理个数

内存信息

获取物理内存总大小和已使用内存:

>>> mem = psutil.virtual_memory()
>>> mem   # 显示所有的参数
>>> mem.total # 总内存
>>> mem.used  # 已使用内存
>>> mem.free  # 获取空闲内存数 
>>> psutil.swap_memory() # 获取SWAP分区信息

磁盘信息

获取磁盘完整信息:

>>> psutil.disk_partitions()

获取分区的使用情况:

>>> psutil.disk_usage('C:/') # 里面参数为所在磁盘分区

获取硬盘总的IO个数:

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

网络信息

获取网络总的IO信息:

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

其他系统信息

返回当前登录系统的用户信息:

>>> psutil.users()

获取开机时间:

>>> psutil.boot_time() # 以Linux时间戳格式返回
# 如果想要转换成自然时间格式:
>>> datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H:%M:%S")

进程管理

进程信息

列出所有进程PID

>>> psutil.pids()

实例化进程对象

>>> p = psutil.Process(716)
>>> p.name() # 进程名
>>> p.exe() # 进程bin路径
>>> p.cwd() # 进程工作目录的绝对路径
>>> p.status() # 进程状态
>>> p.create_time() # 进程创建时间
>>> p.uids() # 进程uid信息
>>> p.gids() # 进程gid信息
>>> p.cpu_times() # 进程CPU时间信息
>>> p.cpu_affinity() # get进程的亲和度
>>> p.memory_percent() # 进程内存使用率
>>> p.num_threads() # 进程开启的线程数

popen类的使用

popen类可以获取用户启动的应用程序进程信息。

>>> p = putil.Popen(["/usr/bin/python","-c","print('Hello')"],stdout=subprocess.PIPE)
>>> p.name()
>>> p.username() # 创建进程的用户
>>> p.communicate()
('hello\n',None)
>>> p.cpu_times() # 得到进程运行的CPU时间

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Windows下安装python2.7及科学计算套装
Mar 05 Python
Python时间模块datetime、time、calendar的使用方法
Jan 13 Python
Python之web模板应用
Dec 26 Python
Python实现读取机器硬件信息的方法示例
Jun 09 Python
解决tensorflow模型参数保存和加载的问题
Jul 26 Python
Python对CSV、Excel、txt、dat文件的处理
Sep 18 Python
Python Django框架单元测试之文件上传测试示例
May 17 Python
Python 一键获取百度网盘提取码的方法
Aug 01 Python
Python Django Cookie 简单用法解析
Aug 13 Python
简单了解python中的f.b.u.r函数
Nov 02 Python
TensorFlow索引与切片的实现方法
Nov 20 Python
把vgg-face.mat权重迁移到pytorch模型示例
Dec 27 Python
python实现自动登录后台管理系统
Oct 18 #Python
python 对给定可迭代集合统计出现频率,并排序的方法
Oct 18 #Python
python实现简单登陆系统
Oct 18 #Python
Python字典中的键映射多个值的方法(列表或者集合)
Oct 17 #Python
python字典值排序并取出前n个key值的方法
Oct 17 #Python
Python中创建二维数组
Oct 17 #Python
解决Python获取字典dict中不存在的值时出错问题
Oct 17 #Python
You might like
php模拟post上传图片实现代码
2016/06/24 PHP
javascript TextArea动态显示剩余字符
2008/10/22 Javascript
javascript 设置文本框中焦点的位置
2009/11/20 Javascript
jQuery '行 4954 错误: 不支持该属性或方法' 的问题解决方法
2011/01/19 Javascript
js数组循环遍历数组内所有元素的方法
2014/01/18 Javascript
JavaScript自定义数组排序方法
2015/02/12 Javascript
JavaScript截取、切割字符串的技巧
2016/01/07 Javascript
JavaScript sort数组排序方法和自我实现排序方法小结
2016/06/06 Javascript
JS基础随笔(菜鸟必看篇)
2016/07/13 Javascript
基于bootstrap-datetimepicker.js不支持IE8的快速解决方法
2016/11/07 Javascript
JQuery实现图片轮播效果
2017/05/08 jQuery
vue2.0移动端滑动事件vue-touch的实例代码
2018/11/27 Javascript
微信小程序视图控件与bindtap之间的问题的解决
2019/04/08 Javascript
解决vue axios跨域 Request Method: OPTIONS问题(预检请求)
2020/08/14 Javascript
使用scrapy实现爬网站例子和实现网络爬虫(蜘蛛)的步骤
2014/01/23 Python
实例讲解Python中函数的调用与定义
2016/03/14 Python
Python网络爬虫出现乱码问题的解决方法
2017/01/05 Python
python中安装模块包版本冲突问题的解决
2017/05/02 Python
Python3 操作 MySQL 插入一条数据并返回主键 id的实例
2020/03/02 Python
如何使用Pytorch搭建模型
2020/10/26 Python
浏览器实现移动端高性能css3动画(开启gpu加速)
2013/12/23 HTML / CSS
德国体育用品网上商店:SC24.com
2016/08/01 全球购物
Lulu & Georgia官方网站:购买地毯、家具、抱枕、壁纸、床上用品等
2018/03/19 全球购物
应届生煤化工求职信
2013/10/21 职场文书
货代行业个人求职简历的自我评价
2013/10/22 职场文书
经典优秀个人求职信分享
2013/12/12 职场文书
函授毕业自我鉴定
2013/12/19 职场文书
高等教育学自荐书范文
2014/02/10 职场文书
社区工作感言
2014/02/21 职场文书
测量工程专业求职信
2014/02/24 职场文书
分家协议书
2014/04/21 职场文书
2014年教师业务学习材料
2014/05/12 职场文书
教师节慰问信
2015/02/15 职场文书
2015清明节祭奠英烈寄语大全
2015/03/04 职场文书
2015年社区工作总结
2015/04/08 职场文书
MySQL提升大量数据查询效率的优化神器
2022/07/07 MySQL