PC性能監(jiān)測工具,不可或缺的好幫手~~

前言

在計算機使用過程中,常有人會問:為什么我的CPU利用率接近100%?為什么可用內存不斷減少?
幸運的是,Windows性能工具包為我們提供了幫助。是什么應用程序的鍋,我們使用該性能工具一探究竟。
一、 Windows性能工具包簡介

(1) Windows性能工具包(Windows Performance Toolkit,簡稱WPT)有兩個主要組件:Windows Performance Recorder(WPR)和Windows Performance Analyzer(WPA);
(2) WPR用來追蹤CPU使用率、磁盤I/O、文件、網(wǎng)絡、GPU活動、電源使用情況等,借助ETW技術框架實現(xiàn),將以上信息保存在ETL文件中;
(3) WPA輔助WPR使用,用來可視化分析ETL文件,從而確定系統(tǒng)性能瓶頸。
二、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產生的數(shù)據(jù),命令行模式。
WPRUI.exe?—記錄ETW產生的數(shù)據(jù),圖形化界面,更友好。
xperf.exe?—早期版本WPT的核心組件,所以現(xiàn)在習慣將WPT稱為XPerf。XPerf的功能類似于wpr+wpaexporter,可以記錄ETW產生的數(shù)據(jù),也可以導出結果到文本。
xperfview.exe?—早期版本WPT中的分析工具,功能和現(xiàn)在的WPA一樣,WPT從版本8以后已經(jīng)沒有這個exe了。在WinXP上只能使用舊版的XPerf,而且建議用對應的xperfview打開分析。
三、Windows性能工具包工作原理

CONTROLLERS:啟動和停止Events發(fā)送,以及log路徑和大小設置,以及Provider的選擇允許;WPR就是一個Controllers,它會使用StartTrace等API來開啟信息追蹤。
PROVIDERS:不同類型的Event產生者。例如線程、網(wǎng)絡、I/O、CPU、內存等各種Provider,它會使用WriteEvent來記錄信息。
CONSUMERS:已產生Event的使用者;WPA就是使用者,用來做可視化分析,它會解析logfile以獲取結果。

3.2 WPA工作原理——DataTable
Key area:用這一組維度數(shù)據(jù)作為統(tǒng)計關鍵字,通常需要正確搭配,例如Process可以搭配Thread。
Data area:數(shù)據(jù)統(tǒng)計區(qū),這里可以是消耗時間costtime、次數(shù)等。
Graphing element area:繪制區(qū),這里可以是時間間隔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開始收集系統(tǒng)性能信息;
使用xperf -d test.etl停止收集并將收集到的信息保存到etl文件中。
整體界面展示
雙擊生成的etl文件,可以看到WAP分析工具有6部分內容,分別是圖像分析區(qū)(GraphExplorer)、時間軸、診斷輸出臺(Diagnostics Console)、分析區(qū)(Analysis)、詳細資料展示區(qū)(Details)及頂部工具欄,如下圖:

圖像展示區(qū)(GraphExplorer)
圖像分析區(qū)主要是結果的管理區(qū),可以看到每個項目有對應的下拉小三角,點擊小三角,我們就可以看到每個項目下具體的結果展示。
System Activity:系統(tǒng)活動,里面主要是進程線程的生命周期,原始事件等等內容;
Computation:記錄了CPU的各項活動;
Storage:記錄了磁盤的活動和文件的操作;
Memory:記錄了系統(tǒng)內存的變化。

分析區(qū)(Analysis)
分析區(qū)主要展示了具體的分析結果,包括主要的Series(進程序列)、性能折線圖、具體各項分析的tab表。以CPU為例,雙擊CPU,就可以得到分析結果。?

時間軸
時間軸是和Analysis相關聯(lián)的,展示的是分析性能的時間line。一般情況下只顯示一個時間軸,如果有多個不同時間段的Analysis,則會展示多個時間軸。

診斷輸出臺(DiagnosticsConsole)
和一般的控制臺類似,主要是輸出一些錯誤信息與log。

頂部工具欄
頂部工具欄主要是打開文件(File)、跟蹤調試(Trace)、窗口創(chuàng)建(Window)及幫助(Help)。常用的為跟蹤調試中配置加載符號文件(Symbol)。

分析性能結果主要是第一部分介紹的圖像分析區(qū)(Graph Explorer)和分析區(qū)(Analysis),以CPU為例進行分析。
STEP-1:展開Graph Explorer的Computation,雙擊CPU,可以看到如下圖:?

STEP-2:選擇不同的展現(xiàn)形式
如果要看進程的CPU信息,則標簽序列、底部tab都是以進程展示的,下拉選擇最后一項:?

如果要看每個CPU處理器的信息,則選擇倒數(shù)第二項:?

展開可看到每個CPU下的不同的進程信息:?

STEP-3:選擇好具體要展現(xiàn)的形式之后,我們選擇需要的圖表展示
默認選擇的是折線圖,可以更改其他類型的圖表展示方式,具體視情況而定?:

STEP-4:選擇需要展示的內容
在Analysis分析區(qū),我們可以選擇展示的內容,比如只想看圖表變化圖、tab分析表和圖表變化圖、只看tab分析表等,如下圖:?

注:一般建議使用圖形加tab表,可以幫助更好的分析結果。
STEP-5:分析結果
以SogouExplorer.exe為例,我們想看在統(tǒng)計周期內的CPU變化情況,就可以找到對應的標簽顏色,分析折線圖,如下圖:?

我們想看在統(tǒng)計周期內,進程總共占用多少資源,可以在tab表中找到是SogouExplorer.exe進程的,將所有的CPU資源占用情況求和:

五、踩過的坑

WPR的啟動、配置、解析有很多參數(shù),不是很容易上手,這里說下幾個踩過的坑。
(1) 版本問題
目前能下載到的版本有4.8 /6.3 /10.0,這幾個版本的兼容性并不是很好,生成ETL文件后,一定注意要用同版本的WPR、WPA或是XPerfView去分析,用不同版本的話會有一些奇怪的問題,例如打開報錯、看不到關鍵數(shù)據(jù)、閃退等。
(2) 工具兼容性問題
如果你正在使用ProcessMonitor或ProcessExplorer,需要先關閉它們再啟動WPR,否則會報錯,因為這兩個工具也會通過ETW收集信息。
(3) 參數(shù)問題
WPR的啟動參數(shù)很多,開的越多帶來的額外系統(tǒng)開銷也越多,ETL文件也越大。所以一定要按需配置,有針對性的開啟需要的Provider。
文章合集
Selenium | Appium? | Jenkins? |? Jmeter?
軟件測試方法匯總?|?Postman接口參數(shù)化?| 測試用例設計
視頻教程
Selenium?| Appium |?Jenkins |?Jmeter
AWS與Docker
如何使用AWS EC2+Docker+JMeter構建分布式負載測試基礎架構
Docker容器數(shù)據(jù)持久化和容器網(wǎng)橋連接
Docker刪除image和container
Docker與VM虛擬機的區(qū)別以及Docker的特點
END
覺得不錯,可以“點贊”和“在看”,或者轉發(fā)、留言
精彩的內容要和朋友分享哦
軟件測試微信交流群
歡迎入群
