收集 hyper-V 的效能計數器

可以透過Windows內建的Performance Monitor(Perfmon.exe)和Logman.exe,並且配合下列相關的效能計數器項目,有效地監控及診斷Hyper-V Host或其上運作的VM虛擬主機運作效能。

圖片來自網路

同時利用schtasks 命令進行自動化收集和發送,無需額外安裝軟體,不會影響應用系統的正常運行和安全性。

1. 讀取關於Hyper-V 的相關計算器

  • 建議收集不同的hyper-V 的相關計數器,範例如下, 可以依據實際的輸出內容為主:
typeperf/q | grep "hyper-v" > hyperPerf.txt

2. 收集計數器的方式

  • 創建文件名 C:\TTPOC\createHyperv.cmd
  • 其中的 -si 60 中可以依據具體需求, 可以調整為30秒或是15秒, 或是300秒
  • 保存成為csv 格式, 日誌文件比較小,不要保留位二進制格式(文件大小會太大)
  • 將OS 和hyperv 的的計數器文件分開保存為不同文件。
  • 第一次執行成功後即可
logman.exe stop MSPOC 
logman.exe delete MSPOC
logman.exe create counter MSPOC -o C:\TTPOC\%COMPUTERNAME% -f csv -v mmddhhmm -c "\LogicalDisk(*)\*" "\Memory\*" "\Network Interface(*)\*" "\Paging File(*)\*" "\Processor(*)\*" -si 60
logman.exe start MSPOC
logman.exe stop hyperPOC 
logman.exe delete hyperPOC
logman.exe create counter hyperPOC -o C:\TTPOC\%COMPUTERNAME%_hyper -f csv -v mmddhhmm -cf C:\TTPOC\hyperPerf.txt -si 60
logman.exe start hyperPOC

3. 設定自動收集發送log命令

  • 創建 C:\TTPOC\collect.bat 命令
logman.exe stop MSPOC
logman.exe stop hyperPOC
move /Y C:\TTPOC\*.csv C:\TTPOC\UPLOAD
logman.exe start MSPOC
logman.exe start hyperPOC
ftp -s:C:\TTPOC\ftp-csv.txt
move /Y C:\TTPOC\UPLOAD\*.csv c:\TTPOC\SENT

4. 創建 ftp 自動上傳

  • 創建C:\TTPOC\ftp-csv.txt
Open 192.168.xxx.xxx
AAAA (Username)
BBBB (Password)
prompt
bin
lcd c:\TTPOC\UPLOAD mput *.csv
bye

5. 設定伺服器重啓時,自動收集log

  • 創建C:\TTPOC\ONSTART.bat
logman.exe start MSPOC
logman.exe start hyperPOC

6. 啓動定時任務執行 (英文版)

  • 創建SetSchedule2003.bat (英文版)
%SystemRoot%\system32\schtasks.exe /create /tn TTPOC_Daily /tr c:\TTPOC\collect.bat /sc daily /st 00:10 /ru system
%SystemRoot%\system32\schtasks.exe /create /tn TTPOC_OnStart /tr c:\TTPOC\onstart.bat /sc onstart /ru system

7. 啓動定時任務執行 (中文版)

  • 創建SetSchedule2003.bat
%SystemRoot%\system32\schtasks.exe /create /tn TTPOC_Daily /tr c:\TTPOC\collect.bat /sc 每日 /st 00:10 /ru system
%SystemRoot%\system32\schtasks.exe /create /tn TTPOC_OnStart /tr c:\TTPOC\onstart.bat /sc onstart /ru system

參考資料:

效能調校首重數據分析,透過數據分析進一步瞭解應用程式所遇到的效能瓶頸,最常使用的工具不外乎就是 效能監視器 ( Performance Monitor ),但由於有多台主機,每壹台都要重新選取一次這些 效能計數器 (Performance Counter) 實在很麻煩,所以若能透過指令列工具建立效能監視集合就會十分方便。

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.