按关键词阅读:
一、工具:psutil模块psutil是一个跨平台模块 , 试用相应方法可以直接获取计算机CPU , 内存 , 磁盘 , 网络等资源使用情况;可以使用我们学习知识与这模块用来做系统监控 , 性能分析;如果大家熟悉Linux系统 , 它能够实现ps、top、lsof、netstat、df等命令功能 。
1.1、psutil安装:PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取
python免费学习资料以及群交流解答后台私信小编01即可
psutil是第三方模块 , 使用时候需要要安装 , 相关说明链接地址: ;
pip安装方式:
pip install psutil验证:
#导入模块 import psutil #查看版本信息 psutil.version_info输出信息:
(5, 4, 8)这里说明安装成功(版本可能会不同 , 但是不影响使用);
文章插图
两个个知识点需要简单介绍下 , 这里只需要了解即可:1)CPU数量:CPU分为物理CPU与逻辑CPU , 之间关系如下:
1>物理CPU:计算机实际CPU数量 , 一般个人电脑1个;2>核数:现在CPU基本都是多核 , 比如双核 , 4核;3>逻辑CPU:物理CPU*核数*超线程数
2)CPU运行状态分为用户态与内核态;
1>用户态是指程序在内存运行 , 不直接访问硬件资源;2>用户需要访问硬件资源 , 需要系统调用 , 这部分有操作系统(内核)完成 , 称为内核态 , 例如:读写文件 , 网络数据收发 , 键盘事件获取等;
下面我们来实际操作下(windows环境):
import psutil #获取CPU不同状态运行时间 print(psutil.cpu_times()) print('CPU 执行用户进程时间:', psutil.cpu_times().user) print('CPU 执行系统调用时间:', psutil.cpu_times().system) print('CPU 空闲等待 时间:', psutil.cpu_times().idle) print('CPU 响应中断 时间:', psutil.cpu_times().interrupt) #CPU使用率:不加参数为上一次调用到现在使用率 print('CPU 使用率:',psutil.cpu_percent()) #3秒内CPU使用率 print('CPU 3秒内使用率:',psutil.cpu_percent(interval=3)) #3秒内每个CPU使用率 print('每个逻辑CPU使用率:',psutil.cpu_percent( percpu = True)) #CPU各个状态使用情况(百分比) print('CPU 各个状态使用情况:',psutil.cpu_times_percent()) #每个CPU各个状态使用情况 print('各个CPU 各个状态使用情况:') cpuinfos = psutil.cpu_times_percent(percpu = True) for info in cpuinfos: print(info)运行结果如下:
scputimes(user=85326.484375, system=56630.8125, idle=2245745.0625, interrupt=5347.296875, dpc=1395.984375) CPU 执行用户进程时间: 85326.484375 CPU 执行系统调用时间: 56630.8125 CPU 空闲等待 时间: 2245745.0625 CPU 响应中断 时间: 5347.296875 CPU 使用率: 3.4 CPU 3秒内使用率: 2.5 每个逻辑CPU使用率: [7.0, 2.1, 4.5, 2.5, 2.7, 2.1, 2.1, 2.7] CPU 各个状态使用情况: scputimes(user=1.4, system=1.5, idle=96.8, interrupt=0.3, dpc=0.0) 各个CPU 各个状态使用情况: scputimes(user=1.8, system=3.1, idle=93.0, interrupt=1.9, dpc=0.2) scputimes(user=0.4, system=1.6, idle=97.9, interrupt=0.1, dpc=0.0) scputimes(user=1.6, system=2.8, idle=95.5, interrupt=0.1, dpc=0.0) scputimes(user=1.0, system=1.4, idle=97.5, interrupt=0.1, dpc=0.0) scputimes(user=2.4, system=0.2, idle=97.3, interrupt=0.0, dpc=0.0) scputimes(user=1.1, system=1.0, idle=97.9, interrupt=0.0, dpc=0.0) scputimes(user=0.8, system=1.2, idle=97.9, interrupt=0.0, dpc=0.0) scputimes(user=1.8, system=0.7, idle=97.3, interrupt=0.1, dpc=0.0)对于不同系统 , 获取内容稍微有所不同 , 大家可以在linux尝试下操作 。
1.3 获取系统内存信息程序在内存中运行 , 实际工作中我们需要对内存进行监控 , 如果内存使用接近100% , 可能存在内存泄漏等问题;我们主要关注内存的total(内存总数) , used(已使用) , free(未使用)情况 , 相关方法如下:
文章插图
实际操作如下(windows环境下):
import psutil mem = psutil.virtual_memory() print('系统内存:', mem) print('总 内存:', mem.total) print('空闲内存:', mem.available) print('使用内存:', mem.used) print('未使用内存:', mem.free) print('内存使用率:', mem.percent) print('swap 内存:', psutil.swap_memory())输出结果:
系统内存: svmem(total=8494747648, available=5058498560, percent=40.5, used=3436249088, free=5058498560) 总 内存: 8494747648 空闲内存: 5058498560 使用内存: 3436249088 未使用内存: 5058498560 内存使用率: 40.5 swap 内存: sswap(total=15205634048, used=4902215680, free=10303418368, percent=32.2, sin=0, sout=0)看到这些数字有点晕 , 我们更喜欢M或者G来堆内存进行描述 , 修改下代码:
稿源:(未知)
【傻大方】网址:http://www.shadafang.com/c/111J2N042020.html
标题:Python获取磁盘使用信息,python获取GPU信息