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

我们是一家小商店,运行戴尔T420(双CPU,只有一个礼物,6核心)W / 32GB RAM作为我们的主要服务器。 我们只有5台虚拟机,其中之一就是我们的WSE 2012 DC。

有时候,我们还没有能够build立可靠的模式,我们所有的虚拟机同时达到100%的CPU。 主持人保持安静4-5%。 一个主机热启动不提供救济,但冷启动至less把东西放回箱子,直到问题再次出现。

有时候,我们可以从中得到一个星期甚至更多平静的海洋; 有时候只有一天。 一个不可靠的模式似乎是在延长的空闲时间,也就是一夜之间开始。 服务器的温度日志的检查首先导致我们怀疑过热,但对最近事件的进一步调查已经破坏了这个主导。

我们还在戴尔论坛上发现了类似问题的描述,并通过安装最新一轮戴尔更新声明了解决scheme。 我们最近参与了一个项目来做这件事(作为一个例外,这是一个冒险获得〜700GB的VHD安全离开,然后回到那台机器上),但是我们完全失望,这并没有帮助。

我们绝对糊涂了。 微软的支持也是如此(或者至less是第一层的支持,尽pipe他们尽量不采取这种行动)。 我包括在我们的SystemInfo输出下面。

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

谢谢

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

主机名称:SERVER1
操作系统名称:Microsoft Hyper-V Server 2012 R2
 OS版本:6.3.9600不适用Build 9600
 OS制造商:微软公司
操作系统configuration:独立服务器
操作系统构buildtypes:多处理器免费
注册所有者:Windows用户
注册组织:   
产品编号:06401-029-0000043-76293
原始安装date:4/3/2014,4:07:15 PM
系统启动时间:5/4/2014,1:56:47 PM
系统制造商:戴尔公司
系统型号:PowerEdge T420
系统types:基于x64的PC
处理器:1个处理器(s)安装。
                            Intel64家族6型45步进7 GenuineIntel〜2200Mhz
                            [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;英语(美国)
input语言环境:en-us;英语(美国)
时区:(UTC-09:00)阿拉斯加
总物理内存:32,723 MB
可用物理内存:12,716 MB
虚拟内存:最大容量:37,587 MB
虚拟内存:可用:17,129 MB
虚拟内存:使用中:20,458 MB
页面文件位置:C:\ pagefile.sys
领域:OIT
login服务器:\\ SERVER1
修补程序(s):31修补程序(s)安装。
                            [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个网卡。
                            Broadcom NetXtreme千兆以太网
                                 连接名称:NIC1
                                 启用DHCP:否
                                  IP地址(es)
                            Broadcom NetXtreme千兆以太网
                                 连接名称:NIC2
                                 启用DHCP:是
                                  DHCP服务器:192.168.1.12
                                  IP地址(es)
                                  [01]:192.168.1.135
                                  [02]:fe80 :: 915b:8de0:712e:29f1
                            [03]:Hyper-V虚拟以太网适配器
                                 连接名称:vEthernet(外部NIC 1_Internal)
                                 启用DHCP:否
                                  IP地址(es)
                                  [01]:192.168.1.11
                                  [02]:fe80 :: 2d35:f582:4958:9eb2
 Hyper-V要求:检测到pipe理程序。  Hyper-V所需的function将不会显示。

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

我find了解决这个问题的办法。 我等了一年多来确保我们没有再遇到这个问题。

主持人:我想要求重新提出这个问题,以便我可以发表答案。

经过一年多的等待certificate解决scheme是有效的,我终于能够发布这个答案。

戴尔的默认BIOS设置启用了C状态,这使得计算机在空闲时间进入低功耗模式。 这就是导致虚拟机在虚拟机pipe理程序主机(包括VMWare,Citrix)中占据100%CPU使用率的原因。

解决方法是将BIOS中的系统configuration文件设置为性能,而不是每瓦性能[OS]或每瓦性能[DAPC](后者是默认值)。

相关的戴尔文档,pp3:

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

戴尔支持工程师熟悉这个问题的less数人之一的回复:

简短版本是:C-States在空闲时间禁用额外的处理器内核。 对于绑定到内核的虚拟机(这是操作系统控制的,我不相信它是可configuration的),这可能导致它们locking,因为他们正试图用不再存在的资源执行操作。

一般来说,C状态一般用在备份服务器,辅助angular色服务器(备份dns,dhcp,域控制器等)的项目上,这样备份服务器可以保持打开,但是处于低功耗模式以节省能源。

Addtional文档可以在这里find:

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

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

感谢Kitsap Bank的Eddy Simons帮助我find这个解决scheme。

目前还不清楚问题在哪里, 你已经知道了。 我们没有机会告诉你原因是什么。

但是,您可以运行一些testing:

  • 构buildVM 1

    • 不断在这个虚拟机上运行一个CPU密集型任务
      (每秒执行数百万次复杂的math计算)
  • 构buildVM 2

    • 不断在这个VM上运行一个RAM密集型的任务
      (在内存中创build一个巨大的数组,删除它,重复)
  • 构buildVM 3

    • 不断在这个虚拟机上运行一个DISK密集型任务
      (读取/写入/从文件中删除数百万行)
  • 构buildVM 4

    • 不断在这个虚拟机上运行一个networking密集型任务
      (将文件复制到/从SMB共享)

等到问题再次出现,观察每台服务器上的性能数据。
哪一个最受影响?
有没有受到影响?

我的猜测是,你的磁盘吸盘和CPU正在等待IO操作完成之前继续,这可能会导致一些应用程序平整CPU。

简而言之,在主机pipe理程序的服务器上应始终closuresC3状态(BIOS设置)。 这种行为不是唯一的dell服务器。