详解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 中文乱码问题深入分析
Mar 13 Python
Python爬虫:通过关键字爬取百度图片
Feb 17 Python
Python3安装Pymongo详细步骤
May 26 Python
Python读取图片为16进制表示简单代码
Jan 19 Python
python如何求解两数的最大公约数
Sep 27 Python
Python实现App自动签到领取积分功能
Sep 29 Python
pandas DataFrame 警告(SettingWithCopyWarning)的解决
Jul 23 Python
jupyter notebook 使用过程中python莫名崩溃的原因及解决方式
Apr 10 Python
Python读取二进制文件代码方法解析
Jun 22 Python
使用Keras建立模型并训练等一系列操作方式
Jul 02 Python
ffmpeg+Python实现B站MP4格式音频与视频的合并示例代码
Oct 21 Python
使用Python+OpenCV进行卡类型及16位卡号数字的OCR功能
Aug 30 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利用cookie实现自动登录的方法
2014/12/10 PHP
Yii获取当前url和域名的方法
2015/06/08 PHP
再推荐十款免费的php开发工具
2015/11/09 PHP
PHP+MariaDB数据库操作基本技巧备忘总结
2018/05/21 PHP
做网页的一些技巧
2007/02/01 Javascript
jQuery 相关控件的事件操作分解
2009/08/03 Javascript
Javascript attachEvent传递参数的办法
2009/12/14 Javascript
基于Jquery的表格隔行换色,移动换色,点击换色插件
2010/12/22 Javascript
一个简单的全屏图片上下打开显示网页效果示例
2014/07/08 Javascript
在父页面得到zTree已选中的节点的方法
2015/02/12 Javascript
JavaScript实现的字符串replaceAll函数代码分享
2015/04/02 Javascript
JS+JSP通过img标签调用实现静态页面访问次数统计的方法
2015/12/14 Javascript
angularjs表格分页功能详解
2016/01/21 Javascript
详解nodejs爬虫程序解决gbk等中文编码问题
2017/04/06 NodeJs
vue watch自动检测数据变化实时渲染的方法
2018/01/16 Javascript
浅析node应用的timing-attack安全漏洞
2018/02/28 Javascript
详解如何制作并发布一个vue的组件的npm包
2018/11/10 Javascript
了解JavaScript函数中的默认参数
2019/05/30 Javascript
微信小程序仿淘宝热搜词在搜索框中轮播功能
2020/01/21 Javascript
vue实现公告栏文字上下滚动效果的示例代码
2020/06/16 Javascript
ssh批量登录并执行命令的python实现代码
2012/05/25 Python
python实现带验证码网站的自动登陆实现代码
2015/01/12 Python
python学习教程之Numpy和Pandas的使用
2017/09/11 Python
详解Django-auth-ldap 配置方法
2018/12/10 Python
Python generator生成器和yield表达式详解
2019/08/08 Python
Python基本语法之运算符功能与用法详解
2019/10/22 Python
wxPython多个窗口的基本结构
2019/11/19 Python
英国最红的高街时尚品牌:Topshop
2016/08/05 全球购物
Melijoe美国官网:法国奢侈童装购物网站
2017/04/19 全球购物
XMLHttpRequest对象在IE和Firefox中创建方式有没有不同
2016/03/23 面试题
高中的自我鉴定
2013/12/16 职场文书
财务会计毕业生个人求职信
2014/02/03 职场文书
诗词赏析-(浣溪沙)
2019/08/13 职场文书
导游词之南迦巴瓦峰
2019/11/19 职场文书
MySQL安装后默认自带数据库的作用详解
2021/04/27 MySQL
MySQL慢查询中的commit慢和binlog中慢事务的区别
2022/06/16 MySQL