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.5仿微软计算器程序
Mar 30 Python
Python中类的初始化特殊方法
Dec 01 Python
一篇文章快速了解Python的GIL
Jan 12 Python
python线程池threadpool使用篇
Apr 27 Python
Python smtplib实现发送邮件功能
May 22 Python
django rest framework 数据的查找、过滤、排序的示例
Jun 25 Python
在PyCharm的 Terminal(终端)切换Python版本的方法
Aug 02 Python
Django之使用内置函数和celery发邮件的方法示例
Sep 16 Python
Python大数据之使用lxml库解析html网页文件示例
Nov 16 Python
Python实现LR1文法的完整实例代码
Oct 25 Python
matplotlib之属性组合包(cycler)的使用
Feb 24 Python
详解Python为什么不用设计模式
Jun 24 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数据采集的详解
2013/06/02 PHP
jquery 分页控件实现代码
2009/11/30 Javascript
Jquery Ajax请求代码(2)
2011/01/07 Javascript
关于query Javascript CSS Selector engine
2013/04/12 Javascript
浅谈JavaScript函数参数的可修改性问题
2013/12/05 Javascript
使用js显示当前时间示例
2014/03/02 Javascript
高性能JavaScript DOM编程(1)
2015/08/11 Javascript
JavaScript驾驭网页-获取网页元素
2016/03/24 Javascript
详解js的六大数据类型
2016/12/27 Javascript
VueJs单页应用实现微信网页授权及微信分享功能示例
2017/07/26 Javascript
详解 vue.js用法和特性
2017/10/15 Javascript
JS实现导出Excel的五种方法详解【附源码下载】
2018/03/15 Javascript
Vue项目路由刷新的实现代码
2019/04/17 Javascript
vue-resource:jsonp请求百度搜索的接口示例
2019/11/09 Javascript
JS实现关闭小广告特效
2021/01/29 Javascript
Nuxt的路由动画效果案例
2020/11/06 Javascript
使用go和python递归删除.ds store文件的方法
2014/01/22 Python
简单学习Python多进程Multiprocessing
2017/08/29 Python
python3爬取各类天气信息
2018/02/24 Python
详解Python中如何写控制台进度条的整理
2018/03/07 Python
在python win系统下 打开TXT文件的实例
2018/04/29 Python
Python实现随机生成任意数量车牌号
2020/01/21 Python
Python列表去重复项的N种方法(实例代码)
2020/05/12 Python
tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this T
2020/06/22 Python
基于canvas使用贝塞尔曲线平滑拟合折线段的方法
2018/01/10 HTML / CSS
加拿大当代时尚服饰、配饰和鞋类专业零售商和制造商:LE CHÂTEAU
2017/10/06 全球购物
Scotch Porter官方网站:男士美容产品
2020/08/31 全球购物
怎样有效的进行自我评价
2013/10/06 职场文书
学习十八届三中全会精神实施方案
2014/02/17 职场文书
大学生职业生涯十年规划书范文
2014/09/17 职场文书
全国法制宣传日活动总结2014
2014/11/01 职场文书
2015小学五年级班主任工作总结
2015/05/21 职场文书
2015银行年终工作总结范文
2015/05/26 职场文书
大学生十八大感想
2015/08/11 职场文书
趣味运动会口号
2015/12/24 职场文书
Java移除无效括号的方法实现
2021/08/07 Java/Android