详解Python3.6安装psutil模块和功能简介


Posted in Python onMay 30, 2018

一、psutil模块

1. psutil是一个跨平台库,能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。它主要应用于系统监控,分析和限制系统资源及进程的管理。它实现了同等命令行工具提供的功能,如ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、iostat、iotop、uptime、pidof、tty、taskset、pmap等。目前支持32位和64位的Linux、Windows、OS X、FreeBSD和Sun Solaris等操作系统.

psutil下载地址(官网):https://pypi.python.org/pypi/psutil/

psutil下载地址(github): https://github.com/giampaolo/psutil/

2、window10操作系统(Python 3.6开发环境)安装psutil

D:\Program Files\python\Scripts>pip.exe install D:\python\psutil-5.2.2-cp36-cp36m-win_amd64.whl 
Processing d:\python\psutil-5.2.2-cp36-cp36m-win_amd64.whl 
Installing collected packages: psutil 
Successfully installed psutil-5.2.2

psutil.whl文件待上传:

3.使用

获取系统性能信息(CPU,内存,磁盘,网络)

3.1CPU相关

查看cpu信息

import Psutil
#查看cpu所有信息
>>> psutil.cpu_times()
scputimes(user=11677.09, nice=57.93, system=148675.58, idle=2167147.79, iowait=260828.48, irq=7876.28, softirq=0.0, steal=3694.59, guest=0.0, guest_nice=0.0)

显示cpu所有逻辑信息

>>> psutil.cpu_times(percpu=True)
[scputimes(user=11684.17, nice=57.93, system=148683.01, idle=2168982.08, iowait=260833.18, irq=7882.35, softirq=0.0, steal=3697.3, guest=0.0, guest_nice=0.0)]

查看用户的cpu时间比

>>> psutil.cpu_times().user
11684.4

查看cpu逻辑个数

>>> psutil.cpu_count()
1

查看cpu物理个数

>>> psutil.cpu_count(logical=False)
1

3.2查看系统内存

>>> import psutil
>>> mem = psutil.virtual_memory()
>>> mem
#系统内存的所有信息
svmem(total=1040662528, available=175054848, percent=83.2, used=965718016, free=74944512, active=566755328, inactive=59457536, buffers=9342976, cached=90767360)

系统总计内存

>>> mem.total
1040662528

系统已经使用内存

>>> mem.used
965718016

系统空闲内存

>>> mem.free
112779264

获取swap内存信息

>>> psutil.swap_memory()
sswap(total=0, used=0, free=0, percent=0, sin=0, sout=0)

读取磁盘参数

磁盘利用率使用psutil.disk_usage方法获取,

磁盘IO信息包括read_count(读IO数),write_count(写IO数)
read_bytes(IO写字节数),read_time(磁盘读时间),write_time(磁盘写时间),这些IO信息用

psutil.disk_io_counters()

获取磁盘的完整信息

psutil.disk_partitions()

获取分区表的参数

psutil.disk_usage('/')  #获取/分区的状态

获取硬盘IO总个数

psutil.disk_io_counters()

获取单个分区IO个数

psutil.disk_io_counters(perdisk=True)  #perdisk=True参数获取单个分区IO个数

读取网络信息

网络信息与磁盘IO信息类似,涉及到几个关键点,包括byes_sent(发送字节数),byte_recv=xxx(接受字节数),
pack-ets_sent=xxx(发送字节数),pack-ets_recv=xxx(接收数据包数),这些网络信息用

获取网络总IO信息

psutil.net_io_counters()

输出网络每个接口信息

psutil.net_io_counters(pernic=True)   #pernic=True

获取当前系统用户登录信息

psutil.users()

获取开机时间

psutil.boot_time() #以linux时间格式返回

datetime.datetime.fromtimestamp(psutil.boot_time ()).strftime("%Y-%m-%d %H: %M: %S") #转换成自然时间格式

系统进程管理

获取当前系统的进程信息,获取当前程序的运行状态,包括进程的启动时间,查看设置CPU亲和度,内存使用率,IO信息
socket连接,线程数等

获取进程信息

查看系统全部进程

psutil.pids()

查看单个进程

p = psutil.Process(2423) 
p.name()  #进程名
p.exe()  #进程的bin路径
p.cwd()  #进程的工作目录绝对路径
p.status()  #进程状态
p.create_time() #进程创建时间
p.uids()  #进程uid信息
p.gids()  #进程的gid信息
p.cpu_times()  #进程的cpu时间信息,包括user,system两个cpu信息
p.cpu_affinity() #get进程cpu亲和度,如果要设置cpu亲和度,将cpu号作为参考就好
p.memory_percent() #进程内存利用率
p.memory_info()  #进程内存rss,vms信息
p.io_counters()  #进程的IO信息,包括读写IO数字及参数
p.connectios()  #返回进程列表
p.num_threads() #进程开启的线程数
听过psutil的Popen方法启动应用程序,可以跟踪程序的相关信息
from subprocess import PIPE
p = psutil.Popen(["/usr/bin/python", "-c", "print('hello')"],stdout=PIPE)
p.name()
p.username()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中的魔法方法深入理解
Jul 09 Python
Python使用爬虫猜密码
Feb 19 Python
matplotlib中legend位置调整解析
Dec 19 Python
Django+Ajax+jQuery实现网页动态更新的实例
May 28 Python
详解pandas中MultiIndex和对象实际索引不一致问题
Jul 23 Python
Django如何实现上传图片功能
Aug 16 Python
python 采用paramiko 远程执行命令及报错解决
Oct 21 Python
python GUI库图形界面开发之PyQt5窗口布局控件QStackedWidget详细使用方法
Feb 27 Python
详解numpy.ndarray.reshape()函数的参数问题
Oct 13 Python
selenium与xpath之获取指定位置的元素的实现
Jan 26 Python
python在协程中增加任务实例操作
Feb 28 Python
Python机器学习之底层实现KNN
Jun 20 Python
python3之模块psutil系统性能信息使用
May 30 #Python
python批量导入数据进Elasticsearch的实例
May 30 #Python
用python简单实现mysql数据同步到ElasticSearch的教程
May 30 #Python
django1.11.1 models 数据库同步方法
May 30 #Python
Python使用tkinter库实现文本显示用户输入功能示例
May 30 #Python
python自动化报告的输出用例详解
May 30 #Python
Django项目中model的数据处理以及页面交互方法
May 30 #Python
You might like
使用PHP和JavaScript判断请求是否来自微信内浏览器
2015/08/18 PHP
php实现smarty模板无限极分类的方法
2015/12/07 PHP
JavaScript方法和技巧大全
2006/12/27 Javascript
ASP.NET jQuery 实例2 (表单中使用回车在TextBox之间向下移动)
2012/01/13 Javascript
情人节之礼 js项链效果
2012/02/13 Javascript
js实现回放拖拽轨迹从过程上进行分析
2014/06/26 Javascript
JavaScript中的闭包介绍
2015/03/15 Javascript
js实现的万能flv网页播放器代码
2016/04/30 Javascript
基于HTML5上使用iScroll实现下拉刷新,上拉加载更多
2016/05/21 Javascript
原生js获取iframe中dom元素--父子页面相互获取对方dom元素的方法
2016/08/05 Javascript
Vue2.0 vue-source jsonp 跨域请求
2017/08/04 Javascript
小程序获取周围IBeacon设备的方法
2018/10/31 Javascript
微信小程序 如何获取网络状态
2019/07/26 Javascript
微信小程序顶部导航栏可滑动并选中放大
2019/12/05 Javascript
vue+vant实现商品列表批量倒计时功能
2020/01/13 Javascript
Windows系统下安装Python的SSH模块教程
2015/02/05 Python
Python 类的继承实例详解
2017/03/25 Python
Python实现识别手写数字大纲
2018/01/29 Python
Python决策树和随机森林算法实例详解
2018/01/30 Python
Jupyter安装nbextensions,启动提示没有nbextensions库
2020/04/23 Python
python读写LMDB文件的方法
2018/07/02 Python
Python基于Opencv来快速实现人脸识别过程详解(完整版)
2019/07/11 Python
Python三元运算与lambda表达式实例解析
2019/11/30 Python
使用 pytorch 创建神经网络拟合sin函数的实现
2020/02/24 Python
门诊挂号室室长岗位职责
2013/11/27 职场文书
保险公司开门红口号
2014/06/21 职场文书
教师四风问题整改措施
2014/09/25 职场文书
个人查摆问题及整改措施
2014/10/16 职场文书
2015年元旦主持词开场白
2014/12/14 职场文书
五年级下册复习计划
2015/01/19 职场文书
房地产项目合作意向书
2015/05/08 职场文书
讲座新闻稿
2015/07/18 职场文书
《角的初步认识》教学反思
2016/02/17 职场文书
祝福语集锦:送给毕业同学祝福语
2019/11/21 职场文书
mysql批量新增和存储的方法实例
2021/04/07 MySQL
MySQL中优化SQL语句的方法(show status、explain分析服务器状态信息)
2022/04/09 MySQL