安裝Windows Performance Toolkit進行0.1微秒級CPU監控
- 2019 年 12 月 23 日
- 筆記
我研究了WPR,它的最小時間單位是0.1微秒,即10000個單位是1毫秒,精細度非常高
安裝過程如下
先運行安裝文件進行下載,下載時只勾選Windows Performance Toolkit和dotnet即可,下載相關文件到默認目錄C:UsersAdministratorDownloadsWindows Kits10WindowsSDK,然後再進到這個目錄進行安裝,安裝的時候只安裝Windows Performance Toolkit
https://download.microsoft.com/download/4/2/2/42245968-6A79-4DA7-A5FB-08C0AD0AE661/windowssdk/winsdksetup.exe



C:UsersAdministratorDownloadsWindows Kits10WindowsSDK






安裝成功後在開始菜單找到Windows Performance Recorder,可以在圖形介面上點滑鼠,也可以通過命令行方式操作,其官網文檔的命令行demo較少,目前比較實用的就是CPU監控部署

我命令行調用WPR寫了個for循環,1分鐘寫一個監控文件,到60次結束後計數器重置為0,$times繼續++,目前已經循環了一個小時,完全符合我的預期,如果不通過循環覆蓋,1小時就得寫10TB左右的量,記憶體和硬碟肯定存不下。
for($times=1;$times -le 60;$times++)
{
wpr -start cpu -instancename CpuSession;
Start-Sleep -seconds 60;
wpr -stop c:cpu$times.etl -instancename CpuSession;
if($times -eq 60) {$times=0}
}
核心程式碼就上面幾行,後來我搞了幾版完善健壯性,V3版是比較OK的版本。
使用說明:腳本運行起來不要關窗口直到你收到告警(比如用戶自建資料庫集群發生高可用切換時他會收到告警),這個時候就可以上機關掉腳本運行的窗口結束循環了,但是結束之前的最後一個循環節只執行了wpr -start,還沒執行stop,需要你手動執行wpr -stop cpu.etl -instancename CpuSession把WPR徹底關停後再做分析。
如果執行過程中的屏顯日誌需要採集,可以重定向到一個txt文件。
