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统计文本字符串里单词出现频率的方法
May 26 Python
Python处理PDF及生成多层PDF实例代码
Apr 24 Python
python编程培训 python培训靠谱吗
Jan 17 Python
Python实现的多叉树寻找最短路径算法示例
Jul 30 Python
在django view中给form传入参数的例子
Jul 19 Python
pytorch 修改预训练model实例
Jan 18 Python
利用Tensorflow的队列多线程读取数据方式
Feb 05 Python
keras的siamese(孪生网络)实现案例
Jun 12 Python
pandas apply多线程实现代码
Aug 17 Python
详解numpy.ndarray.reshape()函数的参数问题
Oct 13 Python
对象析构函数__del__在Python中何时使用
Mar 22 Python
ubuntu安装jupyter并设置远程访问的实现
Mar 31 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中return 和 exit 、break和contiue 区别与用法
2012/04/09 PHP
解析如何修改phpmyadmin中的默认登陆超时时间
2013/06/25 PHP
大家都应该掌握的PHP关联数组使用技巧
2015/12/25 PHP
关于js注册事件的常用方法
2013/04/03 Javascript
jquery动态加载select下拉框示例代码
2013/12/10 Javascript
js操作模态窗口及父子窗口间相互传值示例
2014/06/09 Javascript
jQuery焦点控制图层展示延迟隐藏的方法
2015/03/09 Javascript
JS中的eval 为什么加括号
2016/04/13 Javascript
KnockoutJS 3.X API 第四章之事件event绑定
2016/10/10 Javascript
jQuery页面弹出框实现文件上传
2017/02/09 Javascript
nuxt+axios解决前后端分离SSR的示例代码
2017/10/24 Javascript
JS判断字符串是否为整数的方法--简单的正则判断
2018/07/23 Javascript
Vue 实现列表动态添加和删除的两种方法小结
2018/09/07 Javascript
python读取html中指定元素生成excle文件示例
2014/04/03 Python
Python中的条件判断语句与循环语句用法小结
2016/03/21 Python
Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)
2017/08/23 Python
Python3实现的字典、列表和json对象互转功能示例
2018/05/22 Python
基于tensorflow加载部分层的方法
2018/07/26 Python
Python使用POP3和SMTP协议收发邮件的示例代码
2019/04/16 Python
Python 限定函数参数的类型及默认值方式
2019/12/24 Python
Python发送手机动态验证码代码实例
2020/02/28 Python
python剪切视频与合并视频的实现
2020/03/03 Python
python绘制高斯曲线
2021/02/19 Python
Python3爬虫RedisDump的安装步骤
2021/02/20 Python
用canvas实现图片滤镜效果附演示
2013/11/05 HTML / CSS
KIEHL’S科颜氏官方旗舰店:源自美国的顶级护肤品牌
2018/06/07 全球购物
实用求职信范文分享
2013/12/25 职场文书
马智宇婚礼主持词
2014/03/22 职场文书
2015国际残疾人日活动总结
2015/03/24 职场文书
学校德育工作总结2015
2015/05/11 职场文书
入党转正申请报告
2015/05/15 职场文书
海上钢琴师观后感
2015/06/03 职场文书
关于践行三严三实的心得体会
2016/01/05 职场文书
2016年“节能宣传周”活动总结
2016/04/05 职场文书
基于Python的EasyGUI学习实践
2021/05/07 Python
分布式Redis Cluster集群搭建与Redis基本用法
2022/02/24 Redis