Windows Server 2012姍姍來遲,最新的Hyper-V 3給我們帶來更多的驚喜,後續三篇博文和大家共同學習虛擬機CPU競爭機制。
第一部分:分配給虛擬機的CPU資源
第二部分:限定虛擬機可用的CPU利用率
第三部分:爭奪CPU資源優先級
第二部分 限定虛擬機可用的CPU利用率
虛擬機可用的處理器資源(全部資源爲100%),可以指定虛擬機使用的CPU資源(使用百分比表示),也就是說可以限制虛擬機使用的CPU資源。
虛擬機屬性設置中提供“虛擬機限制”選項,此設置保證虛擬機可以使用的最大CPU處理能力。虛擬機使用的CPU資源超出限制值,則使用CPU最高值爲設置值(百分比)。
默認設置
創建新虛擬機後,默認爲每個虛擬機限制百分比爲“100”,即每個虛擬機都可以使用最大的CPU處理能力。
默認設置有一個致命的缺陷,當多個虛擬機同時運行,虛擬機使用的CPU利用率都達到100%時,系統將停止響應以至於宕機。對應用來說,這是一個致命的缺陷。因此,限制虛擬機的最大處理能力將是一種好方法。
圖
虛擬機CPU資源使用測試
例如在同一臺宿主機中:
l 虛擬機(Windows Server 2008 R2)設置的虛擬機限制(百分比)爲50%,則該虛擬機最多可以使用CPU的處理器數據處理能力的50%。
l 虛擬機(Windows Server 2003 R2)設置的虛擬機限制(百分比)爲30%(如圖2-16所示),則該虛擬機最多可以使用CPU的處理器數據處理能力的30%。
名稱爲“Windows Server 2003 R2”的虛擬機啓動後,由於應用系統需要較高的CPU處理資源,通過“任務管理器”中的“性能”選項卡,可以大致看到CPU使用率99%以上。
圖
該“虛擬機限制”設置30%,也就是說該虛擬機可以使用的硬件CPU最高資源是30%,雖然虛擬機提示CPU利用率接近100%,但是物理CPU的利用率是多少呢?
打開“Hyper-V 管理器”,可以看到該虛擬機的CPU使用率,CPU使用率爲29%,接近30%,達到爲虛擬機分配的CPU資源的最大使用率,如圖所示。
這樣當其他虛擬機處於運行狀態時,不會因爲某個虛擬機佔用大量CPU資源而無法響應客戶端請求。
圖
通過Windows 8 Server“任務管理器”中的“性能”選項卡,也可以清楚顯示物理CPU的利用率,大致在30%左右,而非虛擬機顯示的利用率100%。
圖
CPU限制機制
當宿主機中具備一定數量的虛擬機時,建議通過基準測試計算出每個虛擬機應用佔用的最大CPU利用率,然後通過“虛擬機限制”選項爲每個虛擬機指派限制值。
這樣即便有多個虛擬機達到應用峯值,也不會影響其他虛擬機處理能力,確保系統平穩運行。