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.x和Python2.x的区别介绍
Feb 12 Python
Python中关键字is与==的区别简述
Jul 31 Python
在Python中操作时间之tzset()方法的使用教程
May 22 Python
详解django三种文件下载方式
Apr 06 Python
使用pandas批量处理矢量化字符串的实例讲解
Jul 10 Python
Django如何开发简单的查询接口详解
May 17 Python
python tkinter实现界面切换的示例代码
Jun 14 Python
python pygame实现五子棋小游戏
Oct 26 Python
python 使用while写猜年龄小游戏过程解析
Oct 07 Python
python进行参数传递的方法
May 12 Python
浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)
Jun 04 Python
Python实现查找数据库最接近的数据
Jun 08 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
不用mod_rewrite直接用php实现伪静态化页面代码
2008/10/04 PHP
PHP系列学习之日期函数使用介绍
2012/08/18 PHP
用js判断浏览器是否是IE的比较好的办法
2007/05/08 Javascript
jQuery基础框架浅入剖析
2012/12/27 Javascript
在js中判断checkboxlist(.net控件客户端id)是否有选中
2013/04/11 Javascript
js 金额格式化来回转换示例
2014/02/23 Javascript
javascript屏蔽右键代码
2014/05/15 Javascript
JS实现带缓冲效果打开、关闭、移动一个层的方法
2015/05/09 Javascript
一看就懂:jsonp详解
2015/06/01 Javascript
jquery.Callbacks的实现详解
2016/11/30 Javascript
jquery对所有input type=text的控件赋值实现方法
2016/12/02 Javascript
javascript中对象的定义、使用以及对象和原型链操作小结
2016/12/14 Javascript
js判断iframe中元素是否存在的实现代码
2016/12/24 Javascript
vue无限轮播插件代码实例
2019/05/10 Javascript
Vue.use()在new Vue() 之前使用的原因浅析
2019/08/26 Javascript
Python translator使用实例
2008/09/06 Python
python回调函数的使用方法
2014/01/23 Python
Python计算三角函数之asin()方法的使用
2015/05/15 Python
Python实现的将文件每一列写入列表功能示例【测试可用】
2018/03/19 Python
python 实现在Excel末尾增加新行
2018/05/02 Python
Python学习笔记之图片人脸检测识别实例教程
2019/03/06 Python
PYQT5实现控制台显示功能的方法
2019/06/25 Python
基于python实现计算且附带进度条代码实例
2020/03/31 Python
Python下载网易云歌单歌曲的示例代码
2020/08/12 Python
python 实现音频叠加的示例
2020/10/29 Python
python如何实现递归转非递归
2021/02/25 Python
分享CSS3中必须要知道的10个顶级命令
2012/04/26 HTML / CSS
全球航班旅行搜索网站:Cheapflights
2017/05/19 全球购物
英国著名的小众美容品牌网站:Alyaka
2017/08/08 全球购物
ebookers英国:隶属全球最大的在线旅游公司Expedia
2017/12/28 全球购物
2014年教师节寄语
2014/08/11 职场文书
群众路线党员自我评议范文2014
2014/09/24 职场文书
2014乡镇干部对照检查材料思想汇报
2014/09/26 职场文书
安全伴我行主题班会
2015/08/13 职场文书
Spring Security使用单点登录的权限功能
2022/04/03 Java/Android
td 内容自动换行 table表格td设置宽度后文字太多自动换行
2022/12/24 HTML / CSS