所有虚拟机上的 CPU 间歇性 100%

Int*_*eXX 6 hyper-v hyper-v-server-2012

我们是一家小商店,运行 Dell T420(双 CPU,只有一个,6 核)w/32GB RAM 作为我们的主服务器。我们只有 5 个 VM,其中之一是我们的 WSE 2012 DC。

有时,以我们无法建立可靠模式的速度,我们所有的 VM 都会同时飙升至 100% CPU。主机在 4-5% 时保持安静。主机热启动并不能提供缓解,但冷启动至少可以将东西放回原处,直到问题再次发生。

有时我们可以得到一周或更长时间的平静。有时只有一天。一个不可靠的模式似乎是它在长时间空闲期间的某个时间启动,即一夜之间。对服务器温度日志的检查首先让我们怀疑过热,但对最近事件的进一步调查已经破坏了这一线索。

我们还在戴尔论坛上找到了类似问题的描述,并声称通过安装最新一轮的戴尔更新来解决问题。我们最近参与了一个项目来做到这一点(顺便说一句,将大约 700GB 的 VHD 安全地关闭然后重新安装到那台机器上是一次冒险),但令我们非常沮丧的是它没有帮助。

我们完全糊涂了。Microsoft 支持也是如此(或者至少是第一层支持,即使他们尽量不表现得像它)。我包括在我们的 SystemInfo 输出下面。

有谁知道从哪里开始寻找?

谢谢

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

主机名:SERVER1
操作系统名称:Microsoft Hyper-V Server 2012 R2
操作系统版本:6.3.9600 不适用 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 版本:Dell Inc. 2.1.2, 1/20/2014
Windows 目录:C:\Windows
系统目录:C:\Windows\system32
启动设备:\Device\HarddiskVolume1
系统区域设置:en-us;English(美国)
输入区域设置: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 所需的功能将不会显示。

== 编辑 ======================

我找到了这个问题的解决方案;我等了一年多,以确保我们没有遇到任何更多的问题实例。

主持人:我想请求重新提问,以便我可以发布答案。

Int*_*eXX 9

经过一年多的等待以证明该解决方案有效,我终于能够发布此答案。

戴尔的默认 BIOS 设置启用了 C-States,这使计算机在空闲时间处于低功耗模式。这就是导致虚拟机在 Hypervisor 主机(包括 VMWare、Citrix)上 CPU 使用率上升到 100% 的原因。

解决方案是将 BIOS 中的系统配置文件设置设置为性能,而不是每瓦性能 [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

简而言之,对于管理程序主机,戴尔服务器上的电源空闲应该始终关闭(设置为性能)。

感谢 Kitsap 银行的 Eddy Simons 帮助我找到了这个解决方案。