安裝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文件。