Hyper-V

所有 VM 上的間歇性 100% CPU

  • February 5, 2019

我們是一家小商店,執行帶有 32GB RAM 的戴爾 T420(雙 CPU,僅存在一個,6 核)作為我們的主伺服器。我們只有 5 台虛擬機,其中一台是我們的 WSE 2012 DC。

有時,以我們無法建立可靠模式的速度,我們所有的虛擬機同時飆升至 100% 的 CPU。主機保持安靜在 4-5%。主機熱啟動並不能緩解問題,但冷啟動至少可以將東西放回盒子中,直到問題再次發生。

有時我們可以從中獲得一周或更長時間的平靜;有時只有一天。一個不可靠的模式似乎是它在較長的空閒期間(即一夜之間)的某個時間開始。對伺服器溫度日誌的檢查首先使我們懷疑過熱,但對最近發生的事件的進一步調查破壞了這一線索。

我們還在戴爾論壇上找到了類似問題的描述,並聲稱通過安裝最新一輪的戴爾更新來解決問題。我們最近參與了一個項目來做到這一點(順便說一句,將大約 700GB 的 VHD 安全地從機器上取下然後放回機器上是一次冒險),但令我們非常沮喪的是,它並沒有幫助。

我們完全糊塗了。微軟支持也是如此(或者至少第一層支持是,即使他們盡量不這樣做)。我包括在我們的 SystemInfo 輸出下面。

有誰知道從哪裡開始尋找?

謝謝

===================================

主機名:SERVER1
作業系統名稱:Microsoft Hyper-V Server 2012 R2
作業系統版本:6.3.9600 N/A Build 9600
作業系統製造商:微軟公司
作業系統配置:獨立伺服器
作業系統建構類型:多處理器免費
註冊所有者:Windows 使用者
註冊機構: 
產品編號:06401-029-0000043-76293
原始安裝日期:2014 年 4 月 3 日,下午 4:07:15
系統啟動時間:2014 年 5 月 4 日,下午 1:56:47
系統製造商:戴爾公司
系統型號:PowerEdge T420
系統類型:基於 x64 的 PC
處理器:已安裝 1 個處理器。
[01]:Intel64 Family 6 Model 45 Stepping 7 GenuineIntel ~2200 Mhz
[Intel(R) Xeon(R) CPU E5-2430 0 @ 2.20 GHz](手動添加)
BIOS 版本:戴爾公司 2.1.2,2014 年 1 月 20 日
Windows 目錄:C:\Windows
系統目錄:C:\Windows\system32
引導設備:\Device\HarddiskVolume1
系統區域設置:en-us;英語(美國)
輸入語言環境:en-us;English(美國)
時區: (UTC-09:00) 阿拉斯加
總物理記憶體:32,723 MB
可用物理記憶體:12,716 MB
虛擬記憶體:最大大小:37,587 MB
虛擬記憶體:可用:17,129 MB
虛擬記憶體:使用中:20,458 MB
頁面文件位置:C:\pagefile.sys
領域:OIT
登錄伺服器:\\SERVER1
修補程序:已安裝 31 個修補程序。
[01]:KB2843630
[02]:KB2862152
[03]:KB2868626
[04]:KB2876331
[05]:KB2883200
[06]:KB2884846
[07]:KB2887595
[08]:KB2892074
[09]:KB2893294
[10]:KB2894179
[11]:KB2898514
[12]:KB2898871
[13]:KB2901101
[14]:KB2901128
[15]:KB2903939
[16]:KB2904266
[17]:KB2908174
[18]:KB2909210
[19]:KB2911106
[20]:KB2913760
[21]:KB2916036
[22]:KB2917929
[23]:KB2919394
[24]:KB2919442
[25]:KB2922229
[26]:KB2923300
[27]:KB2923768
[28]:KB2928193
[29]:KB2928680
[30]:KB2930275
[31]:KB2939087
網卡:已安裝 3 個 NIC。
[01]:Broadcom NetXtreme 千兆乙太網
連接名稱:NIC1
啟用 DHCP:否
IP 地址
[02]:Broadcom NetXtreme 千兆乙太網
連接名稱:NIC2
啟用 DHCP:是
DHCP 伺服器:192.168.1.12
IP 地址
[01]: 192.168.1.135
[02]:fe80::915b:8de0:712e:29f1
[03]:Hyper-V 虛擬乙太網適配器
連接名稱:vEthernet(外部 NIC 1_Internal)
啟用 DHCP:否
IP 地址
[01]: 192.168.1.11
[02]:fe80::2d35:f582:4958:9eb2
Hyper-V 要求:已檢測到管理程序。不會顯示 Hyper-V 所需的功能。

== 編輯 =======================

我找到了解決這個問題的方法;我等了一年多,以確保我們沒有遇到任何更多的問題實例。

主持人:我想請求重新打開這個問題,以便我可以發布答案。

經過一年多的等待以證明該解決方案有效,我終於能夠發布此答案。

戴爾的預設 BIOS 設置啟用了 C-States,這使電腦在空閒時間處於低功耗模式。這就是導致虛擬機在 Hypervisor 主機(包括 VMWare,包括 Citrix)上達到 100% CPU 使用率的原因。

解決方案是將 BIOS 中的 System Profile 設置為 Performance,而不是 Performance per watt

$$ OS $$或每瓦性能$$ DAPC $$(後者是預設值)。 相關的戴爾文件,pp3:

http://en.community.dell.com/techcenter/extras/m/white_papers/20161975/download

以及熟悉該問題的少數戴爾支持工程師之一的回复:

簡短的版本是:C-States 在空閒時間禁用額外的處理器核心。對於綁定到核心的虛擬機(這是由作業系統控制的,我不相信它是可配置的),這可能會導致它們鎖定,因為它們正在嘗試使用它們眼中不再存在的資源執行操作。

一般來說,C-States 通常用於備份伺服器、輔助角色伺服器(備份 dns、dhcp、域控制器等)等項目,以便備份伺服器可以保持開啟,但處於低功耗模式以節省能源。

可以在此處找到其他文件:

http://en.wikipedia.org/wiki/Advanced_Configuration_and_Power_Interface

簡而言之,戴爾伺服器上的電源空閒應始終為 Hypervisor 主機關閉(設置為性能)。

感謝 Kitsap Bank 的 Eddy Simons 幫助我找到了這個解決方案。

引用自:https://serverfault.com/questions/593795