PC性能监测工具,不可或缺的好帮手~~

共 3801字,需浏览 8分钟

 ·

2020-09-12 09:31

前言



在计算机使用过程中,常有人会问:为什么我的CPU利用率接近100%?为什么可用内存不断减少?

幸运的是,Windows性能工具包为我们提供了帮助。是什么应用程序的锅,我们使用该性能工具一探究竟。

一、 Windows性能工具包简介



(1) Windows性能工具包(Windows Performance Toolkit,简称WPT)有两个主要组件:Windows Performance Recorder(WPR)Windows Performance Analyzer(WPA);

(2) WPR用来追踪CPU使用率、磁盘I/O、文件、网络、GPU活动、电源使用情况等,借助ETW技术框架实现,将以上信息保存在ETL文件中;

(3) WPA辅助WPR使用,用来可视化分析ETL文件,从而确定系统性能瓶颈。

二、Windows性能工具包安装



2.1 下载

下载安装Windows ADK得到 Windows 性能工具包 (WPT)https://docs.microsoft.com/en-us/archive/blogs/pigscanfly/xperf-a-new-tool-in-the-windows-sdk

2.2 安装

(1) 默认安装路径:C:\Program Files (x86)\Windows Kits\8.1\WindowsPerformance Toolkit

(2) 安装文件:

(3) 文件简介

wpa.exe 解析ETL文件,并图形化、表格化展示。

wpaexporter.exe 导出ETL文件的解析结果成文本格式。

wpr.exe 记录ETW产生的数据,命令行模式。

WPRUI.exe 记录ETW产生的数据,图形化界面,更友好。

xperf.exe 早期版本WPT的核心组件,所以现在习惯将WPT称为XPerfXPerf的功能类似于wpr+wpaexporter,可以记录ETW产生的数据,也可以导出结果到文本。

xperfview.exe 早期版本WPT中的分析工具,功能和现在的WPA一样,WPT从版本8以后已经没有这个exe了。在WinXP上只能使用旧版的XPerf,而且建议用对应的xperfview打开分析。

三、Windows性能工具包工作原理



3.1 WPR工作原理——ETW技术框架

CONTROLLERS:启动和停止Events发送,以及log路径和大小设置,以及Provider的选择允许;WPR就是一个Controllers,它会使用StartTraceAPI来开启信息追踪。

PROVIDERS:不同类型的Event产生者。例如线程、网络、I/OCPU、内存等各种Provider,它会使用WriteEvent来记录信息。

CONSUMERS:已产生Event的使用者;WPA就是使用者,用来做可视化分析,它会解析logfile以获取结果。


3.2 WPA工作原理——DataTable

Key area:用这一组维度数据作为统计关键字,通常需要正确搭配,例如Process可以搭配Thread

Data area:数据统计区,这里可以是消耗时间costtime、次数等。

Graphing element area:绘制区,这里可以是时间间隔duringtime、权重占比Weight等。

四、Windows性能工具实例分析



4.1 WPR追踪获取信息

4.1.1 WPR命令简介

WPR的使用是通过命令行的形式来完成的。常见的命令如下:

-start [SessionName]:需要启动的Session Name,只记录kernel logging的话Name可以为空-on Flags|Groups:指定需要开启的provider flags or groups,通过加号(+)分隔 -f filename:指定写入的文件名字,Kernel trace默认是Kernel.etl, user trace默认是User.etl -maxfile Size:限定日志文件的大小,单位MB -filemode Mode:指定文件写入模式,默认是"Sequential",还有"Circular""Append","NewFile"-stackwalk flags|@file:开启call stack的记录


4.1.2 生成ETL文件

使用xperf-on DiagEasy开始收集系统性能信息;

使用xperf -d test.etl停止收集并将收集到的信息保存到etl文件中


4.2 WPA分析获取结果
4.2.1 WPA分析界面简介

整体界面展示

双击生成的etl文件,可以看到WAP分析工具有6部分内容,分别是图像分析区(GraphExplorer)、时间轴、诊断输出台(Diagnostics Console)、分析区(Analysis)、详细资料展示区(Details)及顶部工具栏,如下图:

图像展示区(GraphExplorer)

图像分析区主要是结果的管理区,可以看到每个项目有对应的下拉小三角,点击小三角,我们就可以看到每个项目下具体的结果展示。

System Activity:系统活动,里面主要是进程线程的生命周期,原始事件等等内容;

Computation:记录了CPU的各项活动;

Storage:记录了磁盘的活动和文件的操作;

Memory:记录了系统内存的变化。

分析区(Analysis)

分析区主要展示了具体的分析结果,包括主要的Series(进程序列)、性能折线图、具体各项分析的tab表。以CPU为例,双击CPU,就可以得到分析结果。 

时间轴

时间轴是和Analysis相关联的,展示的是分析性能的时间line。一般情况下只显示一个时间轴,如果有多个不同时间段的Analysis,则会展示多个时间轴。

诊断输出台(DiagnosticsConsole)

和一般的控制台类似,主要是输出一些错误信息与log

顶部工具栏

顶部工具栏主要是打开文件(File)、跟踪调试(Trace)、窗口创建(Window)及帮助(Help)。常用的为跟踪调试中配置加载符号文件(Symbol)

4.2.2 WPA分析性能结果

分析性能结果主要是第一部分介绍的图像分析区(Graph Explorer)和分析区(Analysis),以CPU为例进行分析。

STEP-1展开Graph ExplorerComputation,双击CPU,可以看到如下图: 

STEP-2:选择不同的展现形式

如果要看进程的CPU信息,则标签序列、底部tab都是以进程展示的,下拉选择最后一项: 

如果要看每个CPU处理器的信息,则选择倒数第二项: 

展开可看到每个CPU下的不同的进程信息: 

STEP-3:选择好具体要展现的形式之后,我们选择需要的图表展示

默认选择的是折线图,可以更改其他类型的图表展示方式,具体视情况而定 :

STEP-4:选择需要展示的内容

Analysis分析区,我们可以选择展示的内容,比如只想看图表变化图、tab分析表和图表变化图、只看tab分析表等,如下图: 

注:一般建议使用图形加tab表,可以帮助更好的分析结果。

STEP-5:分析结果

SogouExplorer.exe为例,我们想看在统计周期内的CPU变化情况,就可以找到对应的标签颜色,分析折线图,如下图: 

我们想看在统计周期内,进程总共占用多少资源,可以在tab表中找到是SogouExplorer.exe进程的,将所有的CPU资源占用情况求和:

五、踩过的坑



WPR的启动、配置、解析有很多参数,不是很容易上手,这里说下几个踩过的坑。

(1) 版本问题

目前能下载到的版本有4.8 /6.3 /10.0,这几个版本的兼容性并不是很好,生成ETL文件后,一定注意要用同版本的WPRWPA或是XPerfView去分析,用不同版本的话会有一些奇怪的问题,例如打开报错、看不到关键数据、闪退等。

(2) 工具兼容性问题

如果你正在使用ProcessMonitorProcessExplorer,需要先关闭它们再启动WPR,否则会报错,因为这两个工具也会通过ETW收集信息。

(3) 参数问题

WPR的启动参数很多,开的越多带来的额外系统开销也越多,ETL文件也越大。所以一定要按需配置,有针对性的开启需要的Provider



文章合集

Selenium | Appium  | Jenkins  |  Jmeter 

软件测试方法汇总 Postman接口参数化 | 测试用例设计

视频教程

Selenium | Appium | Jenkins | Jmeter


AWS与Docker

如何使用AWS EC2+Docker+JMeter构建分布式负载测试基础架构
Docker容器数据持久化和容器网桥连接
Docker删除image和container
Docker与VM虚拟机的区别以及Docker的特点



END



觉得不错,可以“点赞”和“在看”,或者转发留言


精彩的内容要和朋友分享


软件测试微信交流群

欢迎入群

浏览 86
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报