共用方式為


Hyper-V 主機 CPU 資源管理

Hyper-V Windows Server 2016 或更新版本中引進的主機 CPU 資源控制,可讓 Hyper-V 系統管理員在「根目錄」或管理磁碟分區和客體 VM 之間更好地管理及配置主機伺服器 CPU 資源。 使用這些控制件,系統管理員可以將主機系統的處理器子集獻給根分割區。 這可以透過在系統處理器的不同子集上執行來將 Hyper-V 主機中完成的工作與客體虛擬機中運行的工作負載隔離。

如需 Hyper-V 主機硬體的詳細資訊,請參閱 Windows 10 Hyper-V 系統需求

Background

在設定 Hyper-V 主機 CPU 資源的控件之前,了解 Hyper-V 架構的基本概念會有所幫助。 您可以在 [Hyper-V 架構 ] 區段中找到一般摘要。 以下是本文的重要概念:

  • Hyper-V 會建立和管理虛擬機分割區,這些分割區會在 Hypervisor 的控制下,在其中配置和共用計算資源。 分割區提供所有客體 VM 之間的強隔離界限,以及客體 VM 與根分割區之間的強隔離界限。

  • 根分割區本身是虛擬機分割區,雖然其具有唯一屬性,而且許可權遠高於客體虛擬機。 根分區提供管理服務,控制所有客體虛擬機、提供客體虛擬機的虛擬設備支持,以及管理客體虛擬機的所有裝置的輸入/輸出操作。 Microsoft強烈建議不要在主機分割區中執行任何應用程式工作負載。

  • 根分割區的每個虛擬處理器 (VP) 都會以1:1的方式映射到基礎邏輯處理器 (LP)。 主機 VP 一律會在相同的基礎 LP 上執行 – 沒有根分割區 IP 的移轉。

  • 根據預設,執行主機虛擬處理器的 LP 也可以執行客體虛擬處理器。

  • Hypervisor 可能會排程客體 VP,以在任何可用的邏輯處理器上執行。 雖然 Hypervisor 排程器會小心考慮時態性快取位置、NUMA 拓撲,以及排程客體 VP 時的許多其他因素,但最終可以在任何主機 LP 上排程 VP。

最小根目錄或 「Minroot」 組態

早期版本的 Hyper-V 每個分割區有 64 個 VP 的架構最高限制。 這同時適用於系統的根分割區和客體分割區。 由於在高端伺服器上出現超過 64 個邏輯處理器的系統,Hyper-V 也會演進其主機規模限制,以支援這些較大的系統,一度支援最多 320 個 LP 的主機。 不過,在當時突破每個分割區 64 個 VP 的限制帶來許多挑戰,並引發了複雜性,使支持每個分割區超過 64 個 VP 變得困難。 若要解決此問題,Hyper-V 將提供給根分割區的IP數目限制為64,即使基礎計算機有更多可用的邏輯處理器也一樣。 Hypervisor 會繼續利用所有可用的邏輯處理器 (LPs) 來執行客體虛擬處理器 (VPs),但人為地將根分割區限制在 64 個分割區。 此設定稱為「最小根目錄」或「minroot」組態。 效能測試證實,即使在具有超過64個LP的大型系統上,根不需要超過64個根VP就能為大量的客體VM和客體VP提供足夠的支持。事實上,根據客體VM的數目和大小、正在執行的特定工作負載等因素,通常遠少於64個根VP就已經足夠。

這個「minroot」概念至今仍在使用。 事實上,即使 Windows Server 2016 Hyper-V 將主機 LP 的最大架構支援限制增加到 512 個 LP,根分割區仍會限制為最多 320 個 LP。

使用 Minroot 來限制和隔離主機計算資源

在 Windows Server 2016 Hyper-V 中,預設閾值為 320 個邏輯處理器 (LP),只有在非常大型的伺服器系統上才會使用 minroot 設定。 不過,此功能可由 Hyper-V 主機系統管理員設定為低得多的閾值,進而大幅限制根磁碟分區可用的主機 CPU 資源數量。 當然,必須謹慎選擇要利用的特定根IP數目,以支援配置給主機的VM和工作負載的最大需求。 不過,主機 LP 數目的合理值可透過仔細評估和監視生產工作負載來判斷,並在廣泛部署之前在非生產環境中驗證。

啟用和設定 Minroot

minroot 設定是透過 hypervisor BCD 條目來控制。 若要啟用 minroot,請從具有系統管理員權限的命令提示符執行:

     bcdedit /set hypervisorrootproc n

其中 n 是根 VP 的數目。

系統必須重新啟動,新的根處理器數目將在操作系統啟動期間保持不變。 minroot 組態無法在運行時間動態變更。

如果有多個 NUMA 節點,每個節點都會取得 n/NumaNodeCount 處理器。

請注意,使用多個 NUMA 節點時,您必須確保 VM 的拓撲結構能夠確保每個 NUMA 節點上有足夠的可用 LP(即沒有根 VP 的 LP)來運行相應的 VM NUMA 節點的 VP。

驗證 Minroot 組態

您可以使用任務管理員來驗證主機的minroot設定,如下所示。

任務管理器中顯示的主機最小根設定

當 Minroot 處於使用中狀態時,除了系統中的邏輯處理器總數之外,任務管理員還會顯示目前分配給主機的邏輯處理器數目。