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实现从字符串中找出字符1的位置以及个数的方法
Aug 25 Python
Python中使用ElementTree解析XML示例
Jun 02 Python
Selenium元素的常用操作方法分析
Aug 10 Python
Python实现全排列的打印
Aug 18 Python
python 利用for循环 保存多个图像或者文件的实例
Nov 09 Python
梅尔倒谱系数(MFCC)实现
Jun 19 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
Oct 25 Python
python pyinstaller打包exe报错的解决方法
Nov 02 Python
tensorflow 实现从checkpoint中获取graph信息
Feb 10 Python
Python实现名片管理系统
Feb 14 Python
使用TFRecord存取多个数据案例
Feb 17 Python
使用sublime text3搭建Python编辑环境的实现
Jan 12 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验证信用卡卡号是否正确函数
2015/05/27 PHP
PHP+Mysql+jQuery实现发布微博程序 php篇
2015/10/15 PHP
php代码调试利器firephp安装与使用方法分析
2018/08/21 PHP
jquery select(列表)的操作(取值/赋值)
2011/03/16 Javascript
js切换div css注意的细节
2012/12/10 Javascript
javascript中clone对象详解
2014/12/03 Javascript
Javascript核心读书有感之语句
2015/02/11 Javascript
JS获得图片alt信息的方法
2015/04/01 Javascript
JQuery核心函数是什么及使用方法介绍
2016/05/03 Javascript
js获取所有checkbox的值的简单实例
2016/05/30 Javascript
浅析JavaScript动画模拟拖拽原理
2016/12/09 Javascript
JavaScript队列的应用实例详解【经典数据结构】
2017/04/12 Javascript
原生JS+Canvas实现五子棋游戏实例
2017/06/19 Javascript
Angular2 组件通信的实例代码
2017/06/23 Javascript
微信小程序仿朋友圈发布动态功能
2018/07/15 Javascript
对vue中methods互相调用的方法详解
2018/08/30 Javascript
Vue和React组件之间的传值方式详解
2019/01/31 Javascript
webpack3升级到webpack4遇到问题总结
2019/09/30 Javascript
jQuery实现手风琴效果(蒙版)
2020/01/11 jQuery
python局部赋值的规则
2013/03/07 Python
使用Python编写一个模仿CPU工作的程序
2015/04/16 Python
Python简单计算给定某一年的某一天是星期几示例
2018/06/27 Python
Python元组知识点总结
2019/02/18 Python
django页面跳转问题及注意事项
2019/07/18 Python
简单了解python 邮件模块的使用方法
2019/07/24 Python
美国领先的户外服装与装备用品店:Moosejaw
2016/08/25 全球购物
J.Crew官网:美国知名休闲服装品牌
2017/05/19 全球购物
ETO男装官方网店:ETO Jeans
2019/02/28 全球购物
若干个Java基础面试题
2015/05/19 面试题
父亲生日宴会答谢词
2014/01/10 职场文书
列车乘务员工作不细心检讨书
2014/10/07 职场文书
高中生逃课检讨书
2014/10/10 职场文书
年底个人总结范文
2015/03/10 职场文书
大学生心理健康教育心得体会
2016/01/12 职场文书
Python下opencv库的安装过程及问题汇总
2021/06/11 Python
Java实现字符串转为驼峰格式的方法详解
2022/07/07 Java/Android