Windows Server “8 (2012)” Beta:Hyper-V 和縱向擴充 (Scale-Up) VM 虛擬主機 Part 2

今天的部落格文章是為 Hyper-V 和縱向擴充VM 虛擬主機的討論做一個總結。

本部落格文章由 Windows Server 團隊的首席專案經理 Jeff Woolsey 所撰寫。

虛擬化粉絲們,大家好!

上一篇部落格文章 當中,我們討論了 Windows Server“8 (2012)”如何針對VM 虛擬主機中導入 Guest NUMA 感知機制,以及 Hyper-V 如何在建立 VM 虛擬主機時自動執行正確的操作。讓我們來針對此議題來進一步的討論,探討從 Windows 8 Developer Preview 到 Windows Server“8”Beta(以及 Windows 8 Consumer Preview 中的用戶端 Hyper-V)有哪些功能改進。

Developer Preview 經驗總結
下圖為 Windows Server“8”Developer Preview 中 GUI 的外觀。

clip_image001[5]

Windows 8 Developer Preview Hyper-V VM NUMA 設定

在開發過程中,我們發現您確實對於這些 NUMA 感知機制設定很感興趣並且開始設定它們。(符合我們的預期…)然而,當您試用完這些設定後可能並不清楚如何恢復到原來的正確設定。您所需要的便是:

clip_image002[7]

“Reset” 按鈕

沒錯,這正是我們所進行的改良。如果您重新查看一下 Windows Server“8 (2012)”Beta Hyper-V,會發現設定介面已經過重新設計過。您還會看到一個新的按鈕(綠色框線),按鈕上顯示「 使用硬體拓撲 (Use Hardware Topology)」 。按下此按鈕之後,Hyper-V 會將Guest NUMA 拓撲組態重新設定為實體硬體的拓撲。

clip_image003

Windows 8 (2012) Beta Hyper-V VM NUMA 設定

因此,如果您不確定設定是否正確時,可以按下 「使用硬體拓撲 (Use Hardware Topology)」 按鈕來得到最佳設定。最後要提醒您注意的是,您必須要先關閉 VM 虛擬主機,之後才能進行任何 NUMA 設定的更改或按下 使用硬體拓撲 按鈕。據我所知,目前主流的作業系統都尚未支援在VM 虛擬主機運作中更改 NUMA 設定。

Hyper-V Guest NUMA 機制的另一個好處是能夠使您得到更好的硬體投資報酬率。無論您是在此版本的 Hyper-V 上部署現有解決方案,或是建立提供日後使用的解決方案,NUMA 機制在 目前 十分流行,並且日後更會得到越來越廣泛的使用。事實上 Windows Server“8 (2012)”中還有另一個很好的功能:IIS 8.0。

Windows Server“8 (2012)”Hyper-V 、IIS 8.0 和 NUMA 感知機制
IIS 8.0 已經具備了 NUMA 感知功能 (參考來源 IIS 8.0 Multicore Scaling on NUMA Hardware ),IIS 8.0 透過在 NUMA(Non-Uniform Memory Access)硬體上智慧的分佈和關聯 Processors來解決此問題。

Windows Server 8 (2012) 中的 IIS(Internet Information Services) 能夠辨識 NUMA機制,並且能為 IT 管理人員提供最佳設定。接著將介紹在 NUMA 硬體上使用 IIS 8.0 達成最佳化效能的不同設定選項。  
IIS 支援下列二種工作負載分區方法:

1. 在一個應用程式資源池(Web Garden)中運作多個 Processors。
如果您使用的是此模式,在預設情況下應用程式資源池設定為運作一個 Processors。為達成效能最大化,您應該考慮使運作的Processors數量與 NUMA 節點數量相同,進而使 Processors與 NUMA 節點之間形成 1:1 的比例關係。透過將“最大化Processors數量”AppPool 設定設為 0 將可以達成此目的。使用此設定時 IIS 會確定硬體上可用 NUMA 節點的數量,並且啟動相同數量的 Worker Processors。

2. 在單一 工作負載/網站 中運作多個應用程式資源池 。   
使用此設定時,工作負載網站會劃分給多個應用程式資源池。例如 該網站可能包含幾個設定為單獨的應用程式資源池中運作的應用程式。這種設定會以最有效的方式為該工作負荷/網站 運作多個 IIS Worker Processors,並且 IIS 將會智慧分佈和關聯各個Processors 以達成效能最大化。

此外,在 IIS Worker Processors即將開始運作時,IIS 8.0 會透過二種方式感知最佳的 NUMA 節點。

1. 最大化可用記憶體(預設值)
此預設方法為具有最大可用記憶體的 NUMA 節點,便是最適合代管即將開始運作的額外 IIS Worker Processors節點。IIS 瞭解每個 NUMA 節點的記憶體使用情況,並且使用此資訊來對 IIS Worker Processors進行“負載平衡”。

2. Windows
IIS 還提供讓 Windows OS 做此決定的選項。Windows OS 將會使用 輪詢 (Round-Robin) 的方式。

最後,有二種不同方法可以將 IIS Worker Processors中的執行緒與 NUMA 節點進行關聯。

1. Soft Affinity (預設值)
如果其他 NUMA 節點具有周期循環的特性,則 IIS Worker Processors的執行緒可能被排程到 Non-Affinitized NUMA 節點上。此方法將有助於充分利用系統上的所有可用資源。

2. Hard Affinity
無論系統上其他 NUMA 節點的負載程度為何,IIS Worker Processors中的所有執行緒都會關聯到使用上述方法所選定的 NUMA 節點。

效能監控和Guest NUMA
您也許會想知道:“我該如何驗證正在運作的VM 虛擬主機使用的是本地端 CPU 和記憶體資源,而不是遠端資源?”Hyper-V 同樣也提供了此功能。請查看一下 Perfmon 效能計數器, 您會注意到二個新的監控項目:

1.  綠色框線: 對於虛擬處理器,提供帶有 遠端執行時間 計數器的 Hyper-V Hypervisor Virtual Processor。   
2.  紅色框線:在 Hyper-V VM VID Paraition ,您會看到新的 遠端實體 Pages 計數器。

clip_image004

新的Guest NUMA 效能計數器

此數值越小越好(理想數值為 0)。兩個數值都為0(最理想的情況)表示所有虛擬處理器和記憶體分配及使用都是本地端。

總結
我們希望能夠透過 Windows Server“8 (2012)”幫助您對企業進行雲端優化,使您能夠在 Hyper-V 上代管絕大部分的工作負載。同時我們還希望您能夠從長期投資中獲得效益,而這正是此版本 Hyper-V 存在的意義:   
     • 支援超大型縱向擴充 VM 虛擬主機   
     • 引入Guest NUMA 感知機制並且自動使用最佳方式設定VM 虛擬主機拓撲

最後,考慮到您目前可能沒有大型縱向擴充系統,我在此提供幾張螢幕擷取畫面以供您參考。

Cheers – Jeff

clip_image005[7]

Windows Server 2008 R2 SP1 中具備 32 個虛擬處理器的Guest OS

clip_image006[7]

Windows Server“8”Beta 中具備 32 個虛擬處理器的Guest OS

clip_image007

具備 32 個虛擬處理器的Guest OS (Centos 6.2)