Microsoft Hyper-V 監控的技巧與工具
硬體虛擬化的主要優勢包括邏輯隔離與資源的合理運用。在使用 Microsoft Hyper-V 時,監控虛擬機器與實體 Hyper-V 伺服器的硬體資源使用狀況至關重要。若分配給虛擬機器的資源不足或過多,可能會導致虛擬機器效能下降,或影響其他虛擬機器乃至整個環境的效能。這篇部落格文章將介紹 Hyper-V 監控技巧,以及可供您免費使用的原生 Hyper-V 監控工具。
為什麼需要監控 Hyper-V 的效能?
Hyper-V 資源監控可協助您偵測瓶頸,並透過資源管理來優化效能。透過監控 Hyper-V 效能,您可以檢視資源相關的統計資料,藉此協助您就以下事項做出決策:在當前的 Hyper-V 主機上增配更多資源、重新配置虛擬機器上的軟體,或將虛擬機器遷移至另一台 Hyper-V 主機。請注意,SNMP(簡易網路管理協定)已不再適用於監控 Hyper-V 主機。
若偵測到虛擬機器效能低下,請運用以下問題來鎖定可能的肇因:
- 在 Hyper-V 主機上運行的虛擬機器是否已分配足夠的資源?
- Hyper-V 主機上的可用硬體資源是否足夠?
- 效能問題是發生在單一虛擬機器上,還是多台虛擬機器上?
所幸,Hyper-V 提供了一些免費的原生工具,可透過 Hyper-V 管理員的圖形化介面來監控效能與資源使用情況。若您希望自動化跨 Hyper-V 主機的虛擬機器遷移,以 負載平衡, 叢集內具備執行此操作的基本功能性。請注意,若您使用 Hyper-V 叢集,則需要 SCVMM(System Center Virtual Machine Manager)——這是一套付費解決方案——才能自動遷移虛擬機器,以優化 Hyper-V 伺服器的資源使用率並執行負載平衡。Hyper-V 複製監控亦可透過 SCVMM 進行。
請勿使用 Windows 工作管理員來監控虛擬機器內的資源
開場 Task Manager 這是一種快速且簡單的方法,可用於查看運行 Windows 的實體電腦的效能與資源使用情況。不過,請勿使用 Windows 工作管理員來監控虛擬機器內的效能。Windows 工作管理員無法顯示虛擬機器實際的 CPU 和記憶體使用情況。這是因為 Task Manager 無法識別機器是否為虛擬機器,也無法得知資源是如何分配給虛擬機器的。請使用 Task Manager 用於監控正在執行的程序、服務和應用程式,但不監控虛擬機器內的效能。
在 Hyper-V 主機上使用效能監控器
使用 Performance Monitor (perfmon) 在 Hyper-V 主機上,以及用於監控處理器、記憶體、介面、實體磁碟及其他硬體使用率的適當計數器。該 perfmon 此工具廣泛用於 Windows 系統的效能疑難排解。
執行 perfmon 在 run 對話方塊或尋找 Performance Monitor 在 Computer Management 在圖形使用者介面(GUI)中開啟視窗、新增所需的計數器,並監控統計資料。所收集的資訊可顯示為圖表、圖形及示意圖。
此外,開啟 Resource Monitor 在 Hyper-V 主機上 (resmon.exe).
Hyper-V 的計數器使用說明
"效能監控器"針對在 Hyper-V 主機上執行的虛擬機器可能會提供不正確的資訊,因為標準(一般)計數器並未針對虛擬機器監控進行調整。假設一台執行 Hyper-V 的實體電腦配備四核心處理器,且該 Hyper-V 主機上運行著兩台虛擬機器。第一台虛擬機器被分配了四個虛擬處理器。 第一台虛擬機器上執行著一個將四個虛擬處理器負載推至 100% 的應用程式,並耗盡了物理 Hyper-V 主機上的所有處理器資源。
同時,您在這個 Hyper-V 主機上啟動第二台虛擬機器,該虛擬機器具有相同的虛擬裝置配置,並執行相同的應用程式。 在兩台虛擬機器內部,您會看到資訊顯示每台虛擬機器的處理器負載皆為 100%。然而,相較於僅有一台虛擬機器運行的第一種情況,每台虛擬機器上的應用程式運行速度僅有 50%(若您開啟 Task Manager 或 Performance Monitor (虛擬機器內部)。若已啟用動態記憶體,相關資訊的顯示方式亦類似。
請在 Hyper-V 主機的"效能監控器"中使用 Hyper-V 專用計數器,以監控此 Hyper-V 主機上的資源。Hyper-V 計數器會顯示最精確的資訊,以供監控 Hyper-V 效能之用。
處理器效能
請使用此計數器來監控 Hyper-V 主機上的實體處理器效能:
Hyper-V Hypervisor Logical Processor% Total Run Time
用於監控虛擬機器(VM)中虛擬處理器效能的計數器:
Hyper-V Hypervisor Virtual Processor% Guest Run Time
- 當運行中的虛擬機器計數器顯示的數值為 75% 或以下時,即為最佳效能。
- 若數值落在 75% 至 85% 之間,即為警示。
- 若數值高於 85%,建議您查明 CPU 使用率如此之高的原因。
用於監控 root 虛擬處理器使用率的計數器:
Hyper-V Hypervisor Root Virtual Processor(*)% Total Run Time
記憶體使用率
Hyper-V 提供多個計數器,用於監控及檢查記憶體的使用量。
該 MemoryAvailable Mbytes Hyper-V 主機上的計數器用於監控記憶體使用情況。
- 可用記憶體超過 10% – 狀態良好
- 可用記憶體低於 10% – 警告
- 可用記憶體低於 100 MB – 嚴重
請使用 已分配記憶體(位元組) 使用計數器檢查虛擬機器使用的記憶體量,以決定應為每台虛擬機器分配多少記憶體。
使用 Hyper-V Dynamic Memory BalancerAverage Pressure 計數器用於監控動態記憶體。
- 低於 80% – 健康
- 超過 80% – 警告
- 100% – 關鍵
磁碟延遲
請使用 LogicalDisk(*)Average Disk SecRead or Write 用於監控磁碟延遲的計數器,這對於在 Hyper-V 上運行的虛擬機器(VM)的整體效能至關重要。
- 毫秒 (0.010 秒) – 正常
- >15 毫秒 (0.015 秒) – 警告
- >25 毫秒 (0.025 秒) – 關鍵
人脈建立
請使用 Network Interface (*)OutputQueue Length 用於監控網路使用量的計數器,也就是說,它會測量輸出封包佇列中的封包數量。
- 平均值低於 1 – 健康
- 平均值高於 1 – 警告
- 平均超過 2 個 – 嚴重
您也可以考慮使用以下計數器:
Network Interface (network adapter name)Bytes/sec
Hyper-V Virtual Network Adapter (virtual machine name )Bytes/sec
為虛擬機器提供足夠的記憶體
每台機器都需要足夠的記憶體才能正常運作,否則系統效能會下降,暫存檔(若已設定)將被大量使用,且磁碟會過度負荷。此外,暫存檔的運作速度比 RAM 慢。如果作業系統和應用程式約消耗 12 GB 的實體記憶體,請在電腦中安裝 16 GB 的 RAM。虛擬機器(VM)的記憶體分配也應採用相同原則。 舉例來說,若虛擬機器上執行的軟體消耗 6 GB 記憶體,則應為該虛擬機器配置 8 GB 記憶體。為確保運作順暢,請預留至少 20% 的額外記憶體。建議將這部分額外記憶體作為緩衝區。
使用"事件檢視器"來監控日誌
使用 Event Viewer 用於監控 Hyper-V 主機和來賓虛擬機器上的日誌,這對於疑難排解非常有用。檢視和分析系統事件及應用程式事件等日誌,有助於釐清問題並找出正確的解決方案來修復它們。 Event Viewer 顯示與應用程式相關的錯誤日誌,並在作業系統層級運作。要開啟 Event Viewer, 您應該開啟 Computer Management 首先。
Hyper-V 日誌的位置:
Event viewer > Applications and services logs > Microsoft > Windows
以下是"事件檢視器"中的 Hyper-V 日誌類別:
- Hyper-V-Compute
- Hyper-V-Config
- Hyper-V-Guest-Drivers
- Hyper-V Hypervisor
- Hyper-V-StorageVSP
- Hyper-V-VID
- Hyper-V-VMMS
- Hyper-V-VmSwitch
- Hyper-V-Worker
在 Computer Management 您可以管理 Windows 服務。建議您監控以下 Hyper-V 服務:
- Hyper-V Image Management Service (vhdsvc)
- Hyper-V Virtual Machine Management (vmms)
- Hyper-V Networking Management Service (nvspwmi)
在 PowerShell 中監控資源
您可以在 PowerShell 中監控 Hyper-V 主機和虛擬機器的資源。這在非圖形介面的 Windows 作業系統上特別有用。請使用特殊的 cmdlet 在 PowerShell 中監控效能。
透過與 Windows 事件日誌互動來檢視 Hyper-V 的運作日誌:
Get-WinEvent -LogName Microsoft-Windows-Hyper-V-Hypervisor-Operational | select -First 1 | Format-List *
此指令可與 Hyper-V 主機或來賓虛擬機器上的效能計數器物件進行互動,並讓您透過 Windows 監控功能性,直接從遠端或本機電腦取得資料:
Get-Counter
取得計數器清單,並對顯示結果進行排序:
Get-Counter -ListSet * |
Sort-Object -Property CounterSetName |
Format-Table CounterSetName, CounterSetType -AutoSize
監控在多台機器上運作的磁碟效能:
$DiskReads = "LogicalDisk(C:)Disk Reads/sec"
$DiskReads | Get-Counter -ComputerName Server01, Server02 -MaxSamples 10
您可以在 PowerShell 中建立用於監控 Hyper-V 效能的自訂腳本。
結論
Hyper-V 監控可協助您判斷虛擬機器 (VM) 的效能問題是否與 Hyper-V 主機或客體虛擬機器有關。透過 Hyper-V 效能監控,您可以最佳化 Hyper-V 主機上的硬體資源使用情況。 某些用於監控實體主機的工具(例如 Windows 工作管理員),並不適合用於監控在 Hyper-V 上運行的虛擬機器效能。效能監控器包含專為 Hyper-V 設計的計數器,可用於監控 Hyper-V 主機與虛擬機器的資源。若使用圖形化使用者介面 (GUI),您可以使用 Hyper-V 管理員、事件檢視器和資源監控器;若使用命令列介面,則可使用 PowerShell 中的特殊指令。
若原生工具的功能性無法滿足您的需求,請嘗試使用其他 Hyper-V 監控軟體。監控有助於優化 Hyper-V 效能,但無法在災難發生時防止資料遺失。建議選用可靠的 Hyper-V 備份軟體來保護您的資料。下載 NAKIVO 免費版本,即可獲得多平台支援、勒索軟體還原等更多功能。




