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代码来绘制彭罗斯点阵的教程
Apr 03 Python
Python实现基于权重的随机数2种方法
Apr 28 Python
Python3字符串学习教程
Aug 20 Python
浅谈python import引入不同路径下的模块
Jul 11 Python
python实现壁纸批量下载代码实例
Jan 25 Python
Python之批量创建文件的实例讲解
May 10 Python
Python中flatten( )函数及函数用法详解
Nov 02 Python
详解Python连接MySQL数据库的多种方式
Apr 16 Python
十行代码使用Python写一个USB病毒
Jun 21 Python
Django 全局的static和templates的使用详解
Jul 19 Python
利用python生成照片墙的示例代码
Apr 09 Python
Python实现打包成库供别的模块调用
Jul 13 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
成本8450万,票房仅2亿,口碑两极分化,又一部DC电影扑街了
2020/04/09 欧美动漫
检查url链接是否已经有参数的php代码 添加 ? 或 &
2010/02/09 PHP
Zend的Registry机制的使用说明
2013/05/02 PHP
php+mysql不用递归实现的无限级分类实例(非递归)
2014/07/08 PHP
YII2.0之Activeform表单组件用法实例
2016/01/09 PHP
Laravel框架基于ajax和layer.js实现无刷新删除功能示例
2019/01/17 PHP
laravel-admin的多级联动方法
2019/09/30 PHP
JavaScript 创建运动框架的实现代码
2013/05/08 Javascript
JavaScript获取网页中第一个链接ID的方法
2015/04/03 Javascript
简介JavaScript中Boolean.toSource()方法的使用
2015/06/05 Javascript
JavaScript 正则表达式中global模式的特性
2016/02/25 Javascript
JSON对象 详解及实例代码
2016/10/18 Javascript
HTML5+jQuery实现搜索智能匹配功能
2017/03/24 jQuery
bootstrap弹出层的多种触发方式
2017/05/10 Javascript
React BootStrap用户体验框架快速上手
2018/03/06 Javascript
通过JS深度判断两个对象字段相同
2019/06/14 Javascript
jquery实现自定义树形表格的方法【自定义树形结构table】
2019/07/12 jQuery
微信分享invalid signature签名错误踩过的坑
2020/04/11 Javascript
python启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
2009/04/09 Python
python中stdout输出不缓存的设置方法
2014/05/29 Python
Flask数据库迁移简单介绍
2017/10/24 Python
python里dict变成list实例方法
2019/06/26 Python
python函数调用,循环,列表复制实例
2020/05/03 Python
Python之变量类型和if判断方式
2020/05/05 Python
学python最电脑配置有要求么
2020/07/05 Python
Python系统公网私网流量监控实现流程
2020/11/23 Python
Python爬虫+tkinter界面实现历史天气查询的思路详解
2021/02/22 Python
python在协程中增加任务实例操作
2021/02/28 Python
Linux如何压缩可执行文件
2014/03/27 面试题
垃圾回收的优点和原理
2014/05/16 面试题
财务部绩效考核方案
2014/05/04 职场文书
故宫英文导游词
2015/01/31 职场文书
初中毕业生自我评价
2015/03/02 职场文书
通知范文怎么写
2015/04/16 职场文书
新店开张宣传语
2015/07/13 职场文书
python中字符串String及其常见操作指南(方法、函数)
2022/04/06 Python