详解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操作数据库之sqlite3打开数据库、删除、修改示例
Mar 13 Python
Python随机生成一个6位的验证码代码分享
Mar 24 Python
Python自动登录126邮箱的方法
Jul 10 Python
Python实现导出数据生成excel报表的方法示例
Jul 12 Python
利用python求解物理学中的双弹簧质能系统详解
Sep 29 Python
python实现输入数字的连续加减方法
Jun 22 Python
对python 判断数字是否小于0的方法详解
Jan 26 Python
Python获取网段内ping通IP的方法
Jan 31 Python
Python元组常见操作示例
Feb 19 Python
python 求定积分和不定积分示例
Nov 20 Python
python 中值滤波,椒盐去噪,图片增强实例
Dec 18 Python
谈谈Python:为什么类中的私有属性可以在外部赋值并访问
Mar 05 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 filter_var() 函数 Filter 函数
2012/04/25 PHP
php多维数组去掉重复值示例分享
2014/03/02 PHP
php计算几分钟前、几小时前、几天前的几个函数、类分享
2014/04/09 PHP
php中unserialize返回false的解决方法
2014/09/22 PHP
PHP PDOStatement::fetchColumn讲解
2019/01/31 PHP
JAVASCRIPT对象及属性
2007/02/13 Javascript
functional继承模式 摘自javascript:the good parts
2011/06/20 Javascript
中国地区三级联动下拉菜单效果分析
2012/11/15 Javascript
jquery 添加节点的几种方法介绍
2013/09/04 Javascript
JS获取html对象的几种方式介绍
2013/12/05 Javascript
JavaScript检测实例属性, 原型属性
2015/02/04 Javascript
使用AmplifyJS组件配合JavaScript进行编程的指南
2015/07/28 Javascript
浅析ES6的八进制与二进制整数字面量
2016/08/30 Javascript
js for终止循环 跳出多层循环
2018/10/04 Javascript
vuejs数据超出单行显示更多,点击展开剩余数据实例
2019/05/05 Javascript
详解vue-property-decorator使用手册
2019/07/29 Javascript
node.js文件操作系统实例详解
2019/11/05 Javascript
详解nginx配置vue h5 history去除#号
2020/11/09 Javascript
python对DICOM图像的读取方法详解
2017/07/17 Python
python 设置文件编码格式的实现方法
2017/12/21 Python
深入理解Python爬虫代理池服务
2018/02/28 Python
Python解决线性代数问题之矩阵的初等变换方法
2018/12/12 Python
对Python中创建进程的两种方式以及进程池详解
2019/01/14 Python
Python使用selenium + headless chrome获取网页内容的方法示例
2019/10/16 Python
Django 自定义404 500等错误页面的实现
2020/03/08 Python
详解Python openpyxl库的基本应用
2021/02/26 Python
Linux管理员面试题 Linux admin interview questions
2016/07/08 面试题
财务管理专业应届毕业生求职信
2013/09/22 职场文书
不拖欠农民工工资承诺书
2014/03/31 职场文书
大学迎新生标语
2014/10/06 职场文书
2015年教师国培感言
2015/08/01 职场文书
宝宝满月祝酒词
2015/08/10 职场文书
员工安全责任协议书
2016/03/22 职场文书
协议书格式模板
2016/03/24 职场文书
浅析MySQL如何实现事务隔离
2021/06/26 MySQL
MySQL transaction事务安全示例讲解
2022/06/21 MySQL