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 相关文章推荐
python中使用urllib2获取http请求状态码的代码例子
Jul 07 Python
python使用自定义user-agent抓取网页的方法
Apr 15 Python
给Python中的MySQLdb模块添加超时功能的教程
May 05 Python
Python django使用多进程连接mysql错误的解决方法
Oct 08 Python
Python 实现两个列表里元素对应相乘的方法
Nov 14 Python
Python时间序列处理之ARIMA模型的使用讲解
Apr 02 Python
对Python中画图时候的线类型详解
Jul 07 Python
pytorch实现用Resnet提取特征并保存为txt文件的方法
Aug 20 Python
Python字典生成式、集合生成式、生成器用法实例分析
Jan 07 Python
细数nn.BCELoss与nn.CrossEntropyLoss的区别
Feb 29 Python
Python转换字典成为对象,可以用"."方式访问对象属性实例
May 11 Python
Jmeter调用Python脚本实现参数互相传递的实现
Jan 22 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
header导出Excel应用示例
2014/01/24 PHP
Yii操作数据库的3种方法
2014/03/11 PHP
ThinkPHP CURD方法之field方法详解
2014/06/18 PHP
php实现RSA加密类实例
2015/03/26 PHP
PHP执行SQL文件并将SQL文件导入到数据库
2015/09/17 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
JavaScript CSS菜单功能 改进版
2008/12/20 Javascript
在模板页面的js使用办法
2010/04/01 Javascript
JavaScript中的正则表达式简明总结
2014/04/04 Javascript
JavaScript针对网页节点的增删改查用法实例
2015/02/02 Javascript
JavaScript 定时器 SetTimeout之定时刷新窗口和关闭窗口(代码超简单)
2016/02/26 Javascript
Node.js 日志处理模块log4js
2016/08/28 Javascript
vue父子组件的嵌套的示例代码
2017/09/08 Javascript
关于js对textarea换行符的处理方法浅析
2018/08/03 Javascript
基于vue.js组件实现分页效果
2018/12/29 Javascript
从零学python系列之从文件读取和保存数据
2014/05/23 Python
python 删除大文件中的某一行(最有效率的方法)
2017/08/19 Python
在Python中执行系统命令的方法示例详解
2017/09/14 Python
python+selenium实现163邮箱自动登陆的方法
2017/12/31 Python
django js实现部分页面刷新的示例代码
2018/05/28 Python
Python下调用Linux的Shell命令的方法
2018/06/12 Python
python3.5绘制随机漫步图
2018/08/27 Python
结合OpenCV与TensorFlow进行人脸识别的实现
2019/10/10 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
2019/12/19 Python
python GUI库图形界面开发之PyQt5中QWebEngineView内嵌网页与Python的数据交互传参详细方法实例
2020/02/26 Python
使用CSS3实现圆角,阴影,透明
2014/12/23 HTML / CSS
儿科护士自我鉴定
2013/10/14 职场文书
大一学生的职业生涯规划书范文
2014/01/19 职场文书
人民教师求职自荐信
2014/03/12 职场文书
法人授权委托书格式
2014/04/08 职场文书
副主任竞聘演讲稿
2014/08/18 职场文书
酒店周年庆活动方案
2014/08/21 职场文书
试用期转正工作总结2015
2015/05/28 职场文书
单位工资证明范本
2015/06/12 职场文书
环保守法证明
2015/06/24 职场文书
2016年校长新年寄语
2015/08/17 职场文书