详解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 相关文章推荐
Linux下使用python自动修改本机网关代码分享
May 21 Python
Python数据类型详解(四)字典:dict
May 12 Python
python爬取NUS-WIDE数据库图片
Oct 05 Python
Python新手们容易犯的几个错误总结
Apr 01 Python
python实现简单聊天应用 python群聊和点对点均实现
Sep 14 Python
python with提前退出遇到的坑与解决方案
Jan 05 Python
http请求 request失败自动重新尝试代码示例
Jan 25 Python
Python爬虫框架Scrapy实例代码
Mar 04 Python
Python 可变类型和不可变类型及引用过程解析
Sep 27 Python
np.newaxis 实现为 numpy.ndarray(多维数组)增加一个轴
Nov 30 Python
Django基于客户端下载文件实现方法
Apr 21 Python
利于python脚本编写可视化nmap和masscan的方法
Dec 29 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
使用sockets:从新闻组中获取文章(二)
2006/10/09 PHP
php使用memcoder将视频转成mp4格式的方法
2015/03/12 PHP
PHP加密3DES报错 Call to undefined function: mcrypt_module_open() 如何解决
2016/04/17 PHP
javascript Zifa FormValid 0.1表单验证 代码打包下载
2007/06/08 Javascript
js 获取坐标 通过JS得到当前焦点(鼠标)的坐标属性
2013/01/04 Javascript
javascript事件函数中获得事件源的两种不错方法
2014/03/17 Javascript
jQuery内置的AJAX功能和JSON的使用实例
2014/07/27 Javascript
javascript运算符——位运算符全面介绍
2016/07/14 Javascript
不使用script导入js文件的几种方法
2016/10/27 Javascript
Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)
2017/01/20 Javascript
vue.js全局API之nextTick全面解析
2017/07/07 Javascript
浅谈Vue Element中Select下拉框选取值的问题
2018/03/01 Javascript
利用原生JS实现data方法示例代码
2019/05/28 Javascript
js实现页面图片消除效果
2020/03/24 Javascript
Vue3+elementui plus创建项目的方法
2020/12/01 Vue.js
通过C++学习Python
2015/01/20 Python
python安装numpy&安装matplotlib& scipy的教程
2017/11/02 Python
Python中摘要算法MD5,SHA1简介及应用实例代码
2018/01/09 Python
python实现机器学习之元线性回归
2018/09/06 Python
python爬虫 urllib模块反爬虫机制UA详解
2019/08/20 Python
python将邻接矩阵输出成图的实现
2019/11/21 Python
Python pandas库中的isnull()详解
2019/12/26 Python
pytorch实现Tensor变量之间的转换
2020/02/17 Python
python爬取豆瓣电影排行榜(requests)的示例代码
2021/02/18 Python
CSS 3.0文字悬停跳动特效代码
2020/10/26 HTML / CSS
美国女性服饰销售网站:Nasty Gal(坏女孩)
2016/07/26 全球购物
英国音乐设备和乐器商店:Gear4music
2017/10/16 全球购物
Visual-Click葡萄牙:欧洲领先的在线眼镜商
2020/02/17 全球购物
市场营销专科应届生求职信
2013/11/24 职场文书
《钱学森》听课反思
2014/03/01 职场文书
市场调查策划方案
2014/06/10 职场文书
金融管理专业求职信
2014/07/10 职场文书
2015年汽车销售经理工作总结
2015/04/27 职场文书
感谢师恩主题班会
2015/08/17 职场文书
2016年国庆节新闻稿范文
2015/11/25 职场文书
基于go interface{}==nil 的几种坑及原理分析
2021/04/24 Golang