檢查清單:測量 Hyper-V 上的效能
雖然大部分分析 Hyper-V 虛擬機器效能上所安裝客體作業系統效能的原則,都與分析安裝在實體機器上的作業系統效能相同,但許多收集方法都不同。 評估 Hyper-V 虛擬機器上所安裝客體作業系統上執行的BizTalk Server解決方案效能時,應該使用下列各節作為快速參考。
測量磁片 I/O 效能
使用下列效能監視器計數器來測量 Hyper-V 虛擬機器上安裝客體作業系統上的磁片 I/O 效能:
步驟 | 參考 |
---|---|
測量 Hyper-V 主機作業系統上的磁片延遲 – Hyper-V 主機作業系統上磁片效能的最佳初始指標是使用 「\Logical Disk () \Avg. Disk sec/Read」 和 「\Logical Disk (*) \Avg. Disk sec/Write」 效能監視器計數器取得。 這些效能監視器計數器會測量讀取和寫入作業回應作業系統所花費的時間量。 一般經驗法則,平均回應時間大於 15 毫秒會視為次佳。 一般經驗法則,平均回應時間大於 15 毫秒會視為次佳。 這是以沒有快取的單一 7200 RPM 磁片磁碟機一般搜尋時間為基礎。 建議使用邏輯磁片與實體磁片效能監視器計數器,因為 Windows 應用程式和服務會利用以磁碟機號表示的邏輯磁片磁碟機,其中呈現給作業系統的實體磁片 (LUN) 可以由磁片陣列中的多個實體磁片磁碟機所組成。 使用 \Logical Disk (*) \Avg. Disk sec/Read 或 \Logical Disk (*) \Avg. Disk sec/Avg. Disk (*) \Avg. Disk sec/Write 效能監視器計數器來測量 Hyper-V 主機作業系統的磁片延遲時,請使用下列經驗法則: 這是以沒有快取的單一 7200 RPM 磁片磁碟機一般搜尋時間為基礎。 建議使用邏輯磁片與實體磁片效能監視器計數器,因為 Windows 應用程式和服務會利用以磁碟機號表示的邏輯磁片磁碟機,其中呈現給作業系統的實體磁片 (LUN) 可以由磁片陣列中的多個實體磁片磁碟機所組成。 使用 \Logical Disk (*) \Avg. Disk sec/Read 或 \Logical Disk (*) \Avg. Disk sec/Avg. Disk (*) \Avg. Disk sec/Write 效能監視器計數器來測量 Hyper-V 主機作業系統的磁片延遲時,請使用下列經驗法則: - 1 毫秒到 15 毫秒 = 狀況良好 - 15 毫秒到 25 毫秒 = 警告或監視器 - 26 毫秒或更高 = 嚴重,效能將會受到不良影響 **注意: * 安裝在非虛擬化環境上的實體磁片,可提供比透過 Hyper-V 主機作業系統存取的磁片更好的效能。 如果磁片效能對應用程式的整體效能而言絕對重要,請考慮只將磁片裝載在實體硬體上。 注意: 評估磁片 I/O 效能時,請確定您已設定防毒軟體,以排除正在評估的任何磁碟分割掃描。 防毒掃描會產生對效能造成負面影響和扭曲測試結果的額外負荷。 測量客體作業系統上的磁片延遲 – 客體作業系統所使用的磁片回應時間可以使用用來測量 Hyper-V 主機作業系統所用磁片回應時間的相同效能監視器計數器來測量。 |
如需磁片效能分析的詳細資訊,請參閱下列資源: - "Performance Overhead of Running SQL Server in Hyper-V" section in the "Running SQL Server 2008 in a Hyper-V Environment – Best Practices and Performance Considerations" whitepaper - 退出 Disk-Bound 問題 - SQL Server預先部署 I/O 最佳做法 - "I/O Bottlenecks" section in the "Troubleshooting Performance Problems in SQL Server 2008" whitepaper - 如何使用 Microsoft Server Performance Advisor (SPA) 工具識別磁片效能瓶頸 |
測量記憶體效能
使用下列效能監視器計數器來測量可用記憶體對 Hyper-V 虛擬機器上安裝客體作業系統效能的影響:
步驟 | 參考 |
---|---|
測量 Hyper-V 主機作業系統上的可用記憶體 – 實體電腦上監視 「\Memory\Available MBytes」 效能監視器計數器,即可判斷 Hyper-V 主機作業系統可用的實體記憶體數量。 此計數器會報告主機作業系統可用的可用實體記憶體數量。 評估主機作業系統可用的可用實體記憶體時,請使用下列經驗規則:
測量客體作業系統上的可用記憶體 – 客體作業系統可用的記憶體可以使用用來測量 Hyper-V 主機作業系統可用記憶體的相同效能監視器計數器來測量。 |
如需有關應用程式伺服器效能上可用實體記憶體影響的詳細資訊,請參閱Exchange Server 2003 文章「排除 Memory-Bound 問題」。 |
測量網路效能
Hyper-V 可讓客體電腦共用相同的實體網路介面卡。 雖然這有助於合併硬體,但請小心不要使實體介面卡飽和。 使用下列方法來確保 Hyper-V 虛擬機器所使用的網路健康情況:
步驟 | 參考 |
---|---|
測試網路延遲 | Ping 每個虛擬機器,以確保有足夠的網路延遲。 在區域網路上,預期會收到少於 1 毫秒的回應時間。 |
測試封包遺失 | 使用 pathping.exe 公用程式來測試虛擬機器之間的封包遺失。 Pathping.exe 測量網路上的封包遺失,而且自 Windows 2000 Server 起的所有 Windows 版本都可使用。 Pathping.exe 會將 100 個 Ping 要求高載傳送給每個網路節點,並計算傳回的 Ping 數目。 在區域網路上,應該不會遺失來自 pathping.exe 公用程式的 ping 要求。 |
測試網路檔案傳輸 | 在虛擬機器之間複製 100MB 檔案,並測量完成複本所需的時間長度。 在狀況良好的 100Mbit (mb) 網路上,100 MB (MB) 檔案應該在 10 到 20 秒內複製。 在狀況良好的 1Gbit 網路上,100MB 檔案應該會在大約 3 到 5 秒內複製。 這些參數以外的複製時程表示網路問題。 當網路介面卡「自動偵測」10 MB 半雙工網路時,就會發生網路傳輸不佳的一個常見原因,這可防止網路介面卡充分利用可用的頻寬。 |
測量 Hyper-V 主機作業系統上的網路使用率 | 使用下列效能監視器計數器來測量 Hyper-V 主機作業系統上的網路使用率: \Network Interface (*) \Bytes Total/sec – 網路使用率百分比的計算方式是將 Bytes Total/sec 乘以 8 將它轉換成位,然後將結果乘以 100,然後除以網路介面卡目前的頻寬。 使用下列閾值來評估網路頻寬使用率: - 耗用的介面少於 40% = 狀況良好 - 取用的介面 41%-64% = 監視或警告 - 耗用的介面 65-100% = 重大,效能將會受到不良影響 \Network Interface (*) \Output Queue Length – 輸出佇列長度 會測量等待網路介面卡的執行緒數目。 如果網路介面卡上等候超過 2 個執行緒,則網路可能是瓶頸。 常見的原因是網路上的網路延遲和/或高衝突率。 使用下列閾值來評估輸出佇列長度: - 0 = 狀況良好 - 1-2 = 監視或注意 - 大於 2 = 重大,效能將會受到負面影響。 請確定解決方案中所有電腦 (實體和虛擬) 的網路介面卡都設定為使用與 MTU) 最大傳輸 (單位相同的值。 如需設定 MTU 值的詳細資訊,請參閱 附錄 A:TCP/IP 組態參數。 如果測量輸出佇列長度為 2 或更多,請考慮將一或多個實體網路介面卡新增至裝載虛擬機器的實體電腦,並將客體作業系統所使用的網路介面卡系結至這些實體網路介面卡。 |
測量客體作業系統的網路使用率 | 如果 Hyper-V 根分區上的網路介面卡忙碌中,如上述效能監視器計數器所指出,請考慮使用 「\Hyper-V 虛擬網路 Adapter (*) \Bytes/sec」 效能監視器計數器來識別哪些虛擬網路介面卡耗用最多網路使用率。 |
如需網路效能分析的詳細資訊,請參閱 第 15 章 - 測量 .NET 應用程式效能。
測量處理器效能
使用下列方法來評估 Hyper-V 虛擬機器上所安裝客體作業系統上的處理器效能:
測量客體作業系統處理器使用率 - 傳統上,可以使用 「\Processor (*) \% Processor Time」 效能監視器計數器來測量處理器效能。 不過,這不是評估客體作業系統處理器使用率的精確計數器,因為 Hyper-V 會測量並報告此值,相對於配置給虛擬機器的處理器數目。 如果配置更多的處理器給執行中的虛擬機器,而不是實際存在於實體電腦上,即使事實上處理器使用率是瓶頸,「\Processor (*) \% Processor Time」 效能監視器計數器的每個客體作業系統所傳回的值也會很低。 這是因為虛擬處理器會以迴圈配置資源的方式利用實體處理器。 每個虛擬處理器都會嘗試並配置整體系統資源的共用,因此在 4 個實體處理器系統中,每個虛擬處理器預設會嘗試利用 25% 的系統資源。 如果已建立 8 個虛擬處理器,這表示虛擬處理器會嘗試利用 200% 的伺服器 CPU 容量。 在此情況下,每個虛擬處理器都會回報低使用率,如「\Processor (*) \% Processor Time」 效能監視器計數器所測量, (相對於預期) 的層級,而且虛擬處理器之間的過度內容切換會導致每個虛擬機器的效能不佳。 在此案例中,請考慮減少配置給主機作業系統上 Hyper-V 虛擬機器的虛擬處理器數目。Hyper-V 提供 Hypervisor 效能物件,以監視邏輯和虛擬處理器的效能。 邏輯處理器會直接與實體電腦上安裝的處理器或核心數目相互關聯。 例如,在實體電腦上安裝的 2 個四核心處理器會與 8 個邏輯處理器相互關聯。 虛擬處理器是虛擬機器實際使用的內容,而且根和子分割區中的所有執行都會發生在虛擬處理器中。
Hyper-V 提供 Hypervisor 效能物件,以監視邏輯和虛擬處理器的效能。 邏輯處理器會直接與實體電腦上安裝的處理器或核心數目相互關聯。 例如,在實體電腦上安裝的 2 個四核心處理器會與 8 個邏輯處理器相互關聯。 虛擬處理器是虛擬機器實際使用的內容,而且根和子分割區中的所有執行都會發生在虛擬處理器中。
若要精確地測量客體作業系統的處理器使用率,請在 Hyper-V 主機作業系統上使用「Hyper-V Hypervisor 邏輯處理器 (_Total) % 總計執行時間」效能監視器計數器。 使用下列閾值,使用「Hyper-V Hypervisor 邏輯處理器 (_Total) % 總計執行時間」效能監視器計數器來評估客體作業系統處理器使用率:
已消耗低於 60% = 狀況良好
60% - 已耗用 89% = 監視或警告
90% - 已耗用 100% = 重大,效能將會受到負面影響
若要針對 Hyper-V 環境中客體作業系統的處理器效能進行疑難排解,最好在主機作業系統針對 「\Hyper-V Hypervisor 邏輯處理器 (_Total) \% 總計執行時間」 所報告的值之間取得平衡, (LPTR) 和 「\Hyper-V Hypervisor 虛擬處理器 (_Total) \% 執行時間總計」 (VPTR) 。 如果 LPTR 很高且 VPTR 很低,則請確認配置給虛擬機器的處理器數目不會比實體電腦上實際可用的處理器還多。 使用 「\Hyper-V Hypervisor 虛擬處理器 (*) \%客體執行時間」 計數器,判斷哪些虛擬處理器會取用 CPU,並視需要從虛擬機器取消配置虛擬處理器,以設定虛擬處理器與邏輯處理器的一對一對應。 如需設定虛擬處理器與邏輯處理器的一對一對應的詳細資訊,請參閱 檢查清單:優化 Hyper-V 上的效能一節。 如果 VPTR 很高,且 LPTR 很低,則如果有可用的邏輯處理器,以及客體作業系統是否支援其他處理器,請考慮將其他處理器配置給虛擬機器。 在 VPTR 偏高、LPTR 偏低的情況下,有可用的邏輯處理器可供配置,但客體作業系統不支援額外的處理器,請考慮將額外的虛擬機器新增至實體電腦,並將可用的處理器配置給這些虛擬機器來相應放大。 在 VPTR 和 LPTR 都很高的情況下,設定會推送實體電腦的限制,而且應該考慮將另一部實體電腦和其他 Hyper-V 虛擬機器新增至環境來相應放大。 以下流程圖說明在 Hyper-V 環境中針對處理器效能進行疑難排解時應該使用的程式。
如果 VPTR 很高且 LPTR 偏低,請考慮在有可用的邏輯處理器,以及客體作業系統支援其他處理器時,將其他處理器配置給虛擬機器。 在 VPTR 偏高、LPTR 偏低的情況下,有可用的邏輯處理器可供配置,但客體作業系統不支援額外的處理器,請考慮將額外的虛擬機器新增至實體電腦,並將可用的處理器配置給這些虛擬機器來相應放大。 在 VPTR 和 LPTR 都很高的情況下,設定會推送實體電腦的限制,而且應該考慮將另一部實體電腦和其他 Hyper-V 虛擬機器新增至環境來相應放大。 以下流程圖說明在 Hyper-V 環境中針對處理器效能進行疑難排解時應該使用的程式。
進行 CPU 效能疑難排解針對 Hyper-V 環境中的 CPU 效能進行疑難排解
注意
客體作業系統處理器沒有實體處理器/核心的一組親和性 – Hypervisor 會決定實體資源的使用方式。 在處理器使用率的情況下,Hypervisor 會以執行緒形式將客體處理器時間排程到實體處理器。 這表示虛擬機器的處理器負載會分散到實體電腦的處理器。 此外,虛擬機器不能超過已設定邏輯處理器數目的處理器使用率,例如,如果單一虛擬機器設定為在具有 8 個處理器/核心的實體電腦上以 2 個邏輯處理器執行,則虛擬機器不能超過已設定邏輯處理器數目的處理器容量 (,在此案例中為 2 個處理器) 。
使用 Hyper-V 效能監視器計數器測量 Hyper-V 環境的整體處理器使用率 - 為了測量處理器使用率,主機作業系統會以邏輯方式視為另一個客體作業系統。 因此,「\Processor (*) \% Processor Time」 監視器計數器只會測量主機作業系統的處理器使用率。 若要測量主機作業系統和所有客體作業系統的實體處理器使用率總計,請使用 「\Hyper-V Hypervisor 邏輯處理器 (_Total) \% Total Run Time」 效能監視器計數器。 此計數器會測量執行主機作業系統和所有客體作業系統的處理器所花費的總時間百分比。
使用下列臨界值,使用 「\Hyper-V Hypervisor 邏輯處理器 (_Total) \% Total Run Time」 效能監視器計數器來評估 Hyper-V 環境的整體處理器使用率:
已消耗低於 60% = 狀況良好
60% - 已耗用 89% = 監視或警告
90% - 已耗用 100% = 重大,效能將會受到負面影響
如需處理器使用率的詳細資訊,請檢閱下列資源:
調查瓶頸。