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中MySQLdb模块用法实例
Nov 10 Python
python PIL模块与随机生成中文验证码
Feb 27 Python
浅谈python为什么不需要三目运算符和switch
Jun 17 Python
Python标准库06之子进程 (subprocess包) 详解
Dec 07 Python
Python2.7环境Flask框架安装简明教程【已测试】
Jul 13 Python
利用Python实现原创工具的Logo与Help
Dec 03 Python
使用urllib库的urlretrieve()方法下载网络文件到本地的方法
Dec 19 Python
用django设置session过期时间的方法解析
Aug 05 Python
python FTP批量下载/删除/上传实例
Dec 22 Python
pytorch: Parameter 的数据结构实例
Dec 31 Python
python编程进阶之异常处理用法实例分析
Feb 21 Python
Python json读写方式和字典相互转化
Apr 18 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
用PHPdig打造属于你自己的Google[图文教程]
2007/02/14 PHP
浅析php面向对象public private protected 访问修饰符
2013/06/30 PHP
php foreach如何跳出两层循环(详解)
2016/11/05 PHP
PHP+swoole+linux实现系统监控和性能优化操作示例
2019/04/15 PHP
解决tp5在nginx下修改配置访问的问题
2019/10/16 PHP
JavaScript.The.Good.Parts阅读笔记(一)假值与===运算符
2010/11/16 Javascript
jQuery Tools tab(幻灯片)
2012/07/14 Javascript
实现placeholder效果的方案汇总
2015/06/11 Javascript
浅谈javascript:两种注释,声明变量,定义函数
2016/09/29 Javascript
JavaScript闭包_动力节点Java学院整理
2017/06/27 Javascript
JavaScript编写棋盘覆盖代码详解
2017/08/28 Javascript
原生JS实现的简单小钟表功能示例
2018/08/30 Javascript
JS散列表碰撞处理、开链法、HashTable散列示例
2019/02/08 Javascript
微信小程序自定义扫码功能界面的实现代码
2020/07/02 Javascript
JavaScript 监听组合按键思路及代码实现
2020/07/28 Javascript
微信小程序实现日历签到
2020/09/21 Javascript
Vue+Bootstrap收藏(点赞)功能逻辑与具体实现
2020/10/22 Javascript
[44:33]EG vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python创建只读属性对象的方法(ReadOnlyObject)
2013/02/10 Python
Python中的集合类型知识讲解
2015/08/19 Python
Python 读取某个目录下所有的文件实例
2018/06/23 Python
详解opencv Python特征检测及K-最近邻匹配
2019/01/21 Python
详解python破解zip文件密码的方法
2020/01/13 Python
基于keras 模型、结构、权重保存的实现
2020/01/24 Python
基于python tkinter的点名小程序功能的实例代码
2020/08/22 Python
Python爬取微信小程序通用方法代码实例详解
2020/09/29 Python
如何使用 Flask 做一个评论系统
2020/11/27 Python
CSS实现聊天气泡效果
2020/04/26 HTML / CSS
Too Faced官网:美国知名彩妆品牌
2017/03/07 全球购物
美国真皮手袋品牌:GiGi New York
2017/03/10 全球购物
澳大利亚儿童鞋在线:The Trybe
2019/07/16 全球购物
班长岗位职责
2013/11/10 职场文书
经典促销广告词大全
2014/03/19 职场文书
python使用openpyxl库读写Excel表格的方法(增删改查操作)
2021/05/02 Python
Win11怎么进入安全模式?Windows 11进入安全模式的方法
2021/11/21 数码科技
Python经常使用的一些内置函数
2022/04/11 Python