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 相关文章推荐
Python3实现Web网页图片下载
Jan 28 Python
Python利用前序和中序遍历结果重建二叉树的方法
Apr 27 Python
Python+OpenCV目标跟踪实现基本的运动检测
Jul 10 Python
python读取txt文件中特定位置字符的方法
Dec 24 Python
PyQt4实时显示文本内容GUI的示例
Jun 14 Python
pyqt5 使用cv2 显示图片,摄像头的实例
Jun 27 Python
python实现连续变量最优分箱详解--CART算法
Nov 22 Python
Python values()与itervalues()的用法详解
Nov 27 Python
Pytorch通过保存为ONNX模型转TensorRT5的实现
May 25 Python
Django修改app名称和数据表迁移方案实现
Sep 17 Python
python中xlrd模块的使用详解
Feb 01 Python
在python中读取和写入CSV文件详情
Jun 28 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
15种PHP Encoder的比较
2007/03/06 PHP
在同一窗体中使用PHP来处理多个提交任务
2008/05/08 PHP
ajax+php打造进度条代码[readyState各状态说明]
2010/04/12 PHP
PHP 动态生成静态HTML页面示例代码
2014/01/15 PHP
PHP无限极分类函数的实现方法详解
2017/04/15 PHP
PHP获取php,mysql,apche的版本信息及更多服务器信息
2021/03/09 PHP
写给想学习Javascript的朋友一点学习经验小结
2010/11/23 Javascript
jquery如何把参数列严格转换成数组实现思路
2013/04/01 Javascript
JavaScript获取页面上被选中文字的方法技巧
2015/03/13 Javascript
JavaScript DOM基础
2015/04/13 Javascript
Node.js+Express配置入门教程
2016/05/19 Javascript
详解JavaScript跨域总结与解决办法
2016/10/31 Javascript
基于JavaScript实现熔岩灯效果导航菜单
2017/01/04 Javascript
Javascript之深入浅出prototype
2017/02/06 Javascript
基于iScroll实现下拉刷新和上滑加载效果
2017/07/18 Javascript
JS插件clipboard.js实现一键复制粘贴功能
2020/12/04 Javascript
swiper.js插件实现pc端文本上下滑动功能示例
2018/12/03 Javascript
「中高级前端面试」JavaScript手写代码无敌秘籍(推荐)
2019/04/08 Javascript
Vue render函数实战之实现tabs选项卡组件
2019/04/22 Javascript
javscript 数组扁平化的实现
2020/02/03 Javascript
vue-cli点击实现全屏功能
2020/03/07 Javascript
python+pyqt5实现KFC点餐收银系统
2019/01/24 Python
python实现静态web服务器
2019/09/03 Python
Python3 读取Word文件方式
2020/02/13 Python
python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例
2020/03/01 Python
python mysql中in参数化说明
2020/06/05 Python
pycharm软件实现设置自动保存操作
2020/06/08 Python
Brasty罗马尼亚:购买手表、香水、化妆品、珠宝
2020/04/21 全球购物
静态成员和非静态成员的区别
2012/05/12 面试题
大学生求职简历的自我评价
2013/10/14 职场文书
参观考察邀请函范文
2014/01/29 职场文书
网吧消防安全责任书
2014/07/29 职场文书
刑事法律意见书
2015/06/04 职场文书
2015年学校总务工作总结
2015/07/20 职场文书
Redis Cluster 集群搭建你会吗
2021/08/04 Redis
利用Python读取微信朋友圈的多种方法总结
2021/08/23 Python