详解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写的一个简单DNS服务器实例
Jun 04 Python
Python线程中对join方法的运用的教程
Apr 09 Python
python计算一个序列的平均值的方法
Jul 11 Python
在windows系统中实现python3安装lxml
Mar 23 Python
python去掉行尾的换行符方法
Jan 04 Python
python模拟表单提交登录图书馆
Apr 27 Python
Python绘制频率分布直方图的示例
Jul 08 Python
python爬虫 urllib模块发起post请求过程解析
Aug 20 Python
在spyder IPython console中,运行代码加入参数的实例
Apr 20 Python
Django 解决新建表删除后无法重新创建等问题
May 21 Python
Python web如何在IIS发布应用过程解析
May 27 Python
Python实现自动装机功能案例分析
Oct 22 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 EOT定界符的使用详解
2008/09/30 PHP
PHP 面向对象程序设计(oop)学习笔记 (五) - PHP 命名空间
2014/06/12 PHP
CodeIgniter中使用Smarty3基本配置
2015/06/29 PHP
JavaScript 自动完成脚本整理(33个)
2009/10/20 Javascript
JQuery 选择器 xpath 语法应用
2010/05/13 Javascript
Javascript面向对象编程(三) 非构造函数的继承
2011/08/28 Javascript
js document.write()使用介绍
2014/02/21 Javascript
Backbone.js框架中简单的View视图编写学习笔记
2016/02/14 Javascript
jQuery Validate验证表单时多个name相同的元素只验证第一个的解决方法
2016/12/24 Javascript
详解Vue2 SSR 缓存 Api 数据
2017/11/20 Javascript
浅谈Vue内置component组件的应用场景
2018/03/27 Javascript
vue中的自定义分页插件组件的示例
2018/08/18 Javascript
详解vuex数据传输的两种方式及this.$store undefined的解决办法
2019/08/26 Javascript
layui 实现表单和文件上传一起传到后台的例子
2019/09/16 Javascript
Vue 禁用浏览器的前进后退操作
2020/09/04 Javascript
[04:10]2018年度CS GO玩家最喜爱的主播-完美盛典
2018/12/16 DOTA
python插入排序算法实例分析
2015/07/03 Python
python topN 取最大的N个数或最小的N个数方法
2018/06/04 Python
Django forms组件的使用教程
2018/10/08 Python
python selenium登录豆瓣网过程解析
2019/08/10 Python
python代码如何实现余弦相似性计算
2020/02/09 Python
Tensorflow加载Vgg预训练模型操作
2020/05/26 Python
Django实现微信小程序支付的示例代码
2020/09/03 Python
马来西亚银饰品牌:JEOEL
2017/12/15 全球购物
Omio荷兰:预订火车、巴士和机票
2018/11/04 全球购物
什么是数据库锁?Oracle中都有哪些类型的锁?
2015/08/21 面试题
葛优非诚勿扰搞笑征婚台词
2014/03/17 职场文书
超市创业计划书
2014/04/24 职场文书
企业安全生产目标责任书
2014/07/23 职场文书
2015年大学辅导员工作总结
2015/05/12 职场文书
2015年网络舆情工作总结
2015/07/24 职场文书
2016年小学圣诞节活动总结
2016/03/31 职场文书
2016年综治和平安建设宣传月活动总结
2016/04/01 职场文书
《家世》读后感:看家训的力量
2019/12/30 职场文书
redis 查看所有的key方式
2021/05/07 Redis
Python读取和写入Excel数据
2022/04/20 Python