详解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的urllib2模块处理url和图片的技巧两则
Feb 18 Python
请不要重复犯我在学习Python和Linux系统上的错误
Dec 12 Python
python3实现ftp服务功能(客户端)
Mar 24 Python
fastcgi文件读取漏洞之python扫描脚本
Apr 23 Python
python爬虫之百度API调用方法
Jun 11 Python
pandas 根据列的值选取所有行的示例
Nov 07 Python
Python图像处理之颜色的定义与使用分析
Jan 03 Python
python实现二维数组的对角线遍历
Mar 02 Python
浅析使用Python搭建http服务器
Oct 27 Python
Python基于当前时间批量创建文件
May 07 Python
Pycharm连接gitlab实现过程图解
Sep 01 Python
python实现sm2和sm4国密(国家商用密码)算法的示例
Sep 26 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
二次元帅气男生排行榜,只想悄悄收藏系列
2020/03/04 日漫
php生成文件
2007/01/15 PHP
php 分库分表hash算法
2009/11/12 PHP
php学习笔记之 函数声明
2011/06/09 PHP
php session劫持和防范的方法
2013/11/12 PHP
php实现计算百度地图坐标之间距离的方法
2016/05/05 PHP
thinkphp隐藏index.php/home并允许访问其他模块的实现方法
2016/10/13 PHP
Laravel框架执行原生SQL语句及使用paginate分页的方法
2018/08/17 PHP
超越Jquery_01_isPlainObject分析与重构
2010/10/20 Javascript
jCallout 轻松实现气泡提示功能
2013/09/22 Javascript
JQuery仿小米手机抢购页面倒计时效果
2014/12/16 Javascript
直接拿来用的15个jQuery代码片段
2015/09/23 Javascript
jQuery实现仿新浪微博浮动的消息提示框(可智能定位)
2015/10/10 Javascript
jQuery复合事件用法示例
2017/06/10 jQuery
JS之if语句对接事件动作逻辑(详解)
2017/06/28 Javascript
JavaScript对JSON数据进行排序和搜索
2017/07/24 Javascript
JS实现不用中间变量temp 实现两个变量值得交换方法
2018/02/04 Javascript
React项目动态设置title标题的方法示例
2018/09/26 Javascript
详解element-ui动态限定的日期范围选择器代码片段
2020/07/03 Javascript
python通过post提交数据的方法
2015/05/06 Python
Python自动调用IE打开某个网站的方法
2015/06/03 Python
基于Python Numpy的数组array和矩阵matrix详解
2018/04/04 Python
对Python 3.2 迭代器的next函数实例讲解
2018/10/18 Python
python使用zip将list转为json的方法
2018/12/31 Python
python之pyqt5通过按钮改变Label的背景颜色方法
2019/06/13 Python
python打包成so文件过程解析
2019/09/28 Python
Python中使用gflags实例及原理解析
2019/12/13 Python
《陋室铭》教学反思
2014/02/26 职场文书
村主任群众路线个人对照检查材料
2014/09/26 职场文书
苏州园林导游词
2015/02/03 职场文书
2015年安全教育月活动总结
2015/03/26 职场文书
恰同学少年观后感
2015/06/08 职场文书
嘉年华活动新闻稿
2015/07/17 职场文书
小学运动会加油稿
2015/07/22 职场文书
八年级作文之我的母亲
2019/12/10 职场文书
Python中json.dumps()函数的使用解析
2021/05/17 Python