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中的2to3转换工具使用示例
Jun 12 Python
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
Feb 14 Python
Python爬虫包BeautifulSoup实例(三)
Jun 17 Python
python3第三方爬虫库BeautifulSoup4安装教程
Jun 19 Python
解决python通过cx_Oracle模块连接Oracle乱码的问题
Oct 18 Python
对Python生成汉字字库文字,以及转换为文字图片的实例详解
Jan 29 Python
Django处理多用户类型的方法介绍
May 18 Python
Python实现二叉树前序、中序、后序及层次遍历示例代码
May 18 Python
pytorch numpy list类型之间的相互转换实例
Aug 18 Python
python 窃取摄像头照片的实现示例
Jan 08 Python
Flask处理Web表单的实现方法
Jan 31 Python
Python网络编程之ZeroMQ知识总结
Apr 25 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
东方红 - 来复式再生机的修复
2021/03/02 无线电
PHP手机号码归属地查询代码(API接口/mysql)
2012/09/04 PHP
PHP判断图片格式的七种方法小结
2013/06/03 PHP
PHP多维数组遍历方法(2种实现方法)
2015/12/10 PHP
PHP面试常用算法(推荐)
2016/07/22 PHP
javascript实现的像java、c#之类的sleep暂停的函数代码
2010/03/04 Javascript
js取滚动条的尺寸的函数代码
2011/11/30 Javascript
GridView中获取被点击行中的DropDownList和TextBox中的值
2013/07/18 Javascript
javascript实现简单的Map示例介绍
2013/12/23 Javascript
Javascript中arguments对象详解
2014/10/22 Javascript
jQuery实现拖动调整表格单元格大小的代码实例
2015/01/13 Javascript
谈谈我对JavaScript中typeof和instanceof的深入理解
2015/12/25 Javascript
Google 地图叠加层实例讲解
2016/08/06 Javascript
jQuery如何封装输入框插件
2016/08/19 Javascript
jQuery表单对象属性过滤选择器实例详解
2016/09/13 Javascript
iOS + node.js使用Socket.IO框架进行实时通信示例
2017/04/14 Javascript
webpack公共组件引用路径简化小技巧
2018/06/15 Javascript
对angularJs中ng-style动态改变样式的实例讲解
2018/09/30 Javascript
ES6中异步对象Promise用法详解
2019/07/31 Javascript
简单了解微信小程序 e.target与e.currentTarget的不同
2019/09/27 Javascript
layui实现给某一列加点击事件
2019/10/26 Javascript
在漏洞利用Python代码真的很爽
2007/08/26 Python
跟老齐学Python之编写类之四再论继承
2014/10/11 Python
浅谈Python中函数的参数传递
2016/06/21 Python
python版学生管理系统
2018/01/10 Python
对Python中DataFrame按照行遍历的方法
2018/04/08 Python
关于keras.layers.Conv1D的kernel_size参数使用介绍
2020/05/22 Python
Python爬虫+Tkinter制作一个翻译软件的示例
2021/02/20 Python
用CSS3来实现社交分享按钮
2014/11/11 HTML / CSS
浅析HTML5的WebSocket与服务器推送事件
2016/02/19 HTML / CSS
老师给学生的表扬信
2014/01/17 职场文书
《大江保卫战》教学反思
2014/04/11 职场文书
数据结构课程设计心得体会
2016/01/15 职场文书
SQL SERVER实现连接与合并查询
2022/02/24 SQL Server
《宝可梦》动画制作25周年到来 官方发布特别纪念视频
2022/04/01 日漫
MySQL8.0 Undo Tablespace管理详解
2022/06/16 MySQL