所有 VM 上的間歇性 100% CPU
我們是一家小商店,執行帶有 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 幫助我找到了這個解決方案。