详解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代码真的很爽
Aug 26 Python
Python合并字符串的3种方法
May 21 Python
Python实现字典的遍历与排序功能示例
Dec 23 Python
通过Py2exe将自己的python程序打包成.exe/.app的方法
May 26 Python
从请求到响应过程中django都做了哪些处理
Aug 01 Python
python实现多人聊天室
Mar 31 Python
PyTorch的深度学习入门之PyTorch安装和配置
Jun 27 Python
Python 读取串口数据,动态绘图的示例
Jul 02 Python
基于python plotly交互式图表大全
Dec 07 Python
Python reques接口测试框架实现代码
Jul 28 Python
python实现图片转换成素描和漫画格式
Aug 19 Python
python实现图片转字符画的完整代码
Feb 21 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
下载文件的点击数回填
2006/10/09 PHP
PHP基于GD库的缩略图生成代码(支持jpg,gif,png格式)
2014/06/19 PHP
微信API接口大全
2015/04/15 PHP
8个PHP数组面试题
2015/06/23 PHP
PHP如何通过传引用的思想实现无限分类(代码简单)
2015/10/13 PHP
禁止直接访问php文件代码分享
2020/05/05 PHP
Add a Table to a Word Document
2007/06/15 Javascript
Jquery Autocomplete 结合asp.net使用要点
2010/10/29 Javascript
基于promise.js实现nodejs的promises库
2014/07/06 NodeJs
学习javascript面向对象 javascript实现继承的方式
2016/01/04 Javascript
Jquery中巧用Ajax的beforeSend方法
2016/01/20 Javascript
jQuery+ajax实现滚动到页面底部自动加载图文列表效果(类似图片懒加载)
2016/06/07 Javascript
EasyUI在表单提交之前进行验证的实例代码
2016/06/24 Javascript
jQuery选择器总结之常用元素查找方法
2016/08/04 Javascript
Bootstrap3 内联单选和多选框
2016/12/29 Javascript
AngularJS遍历获取数组元素的方法示例
2017/11/11 Javascript
vue init webpack myproject构建项目 ip不能访问的解决方法
2018/03/20 Javascript
微信小程序入门之指南针
2020/10/22 Javascript
[55:42]VG vs VGJ.T 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
python中zip和unzip数据的方法
2015/05/27 Python
学习python之编写简单简单连接数据库并执行查询操作
2016/02/27 Python
python字符串的常用操作方法小结
2016/05/21 Python
Django 添加静态文件的两种实现方法(必看篇)
2017/07/14 Python
python实现人脸识别经典算法(一) 特征脸法
2018/03/13 Python
python判断字符串或者集合是否为空的实例
2019/01/23 Python
对python文件读写的缓冲行为详解
2019/02/13 Python
Python3.5面向对象与继承图文实例详解
2019/04/24 Python
利用HTML5画出一个坦克的形状具体实现代码
2013/06/20 HTML / CSS
html5录音功能实战示例
2019/03/25 HTML / CSS
商业房地产广告语
2014/03/13 职场文书
党的群众路线个人对照检查材料
2014/09/23 职场文书
不遵守课堂纪律的检讨书
2014/09/24 职场文书
教师自我剖析材料(群众路线)
2014/09/29 职场文书
歌咏比赛主持词
2015/06/29 职场文书
感恩信:写给爸爸妈妈的一封感谢信
2019/09/12 职场文书
python面向对象版学生信息管理系统
2021/06/24 Python