Hyper-V 3中虚拟机CPU竞争机制

Windows Server 2012姗姗来迟,最新的Hyper-V 3给我们带来更多的惊喜,后续三篇博文和大家共同学习虚拟机CPU竞争机制。

第一部分:分配给虚拟机的CPU资源

第二部分:虚拟机使用的最高CPU资源

第三部分:争夺CPU资源优先级

--------------------------------------------------------------------------------------------------

同一个宿主计算机中的虚拟机,当全部或者部分运行时,将无可非议争夺宿主机CPU资源。

如何平衡宿主机的资源利用率,Hyper-V3给出了三种解决方法:

1. 分配给虚拟机的CPU资源(虚拟机保留百分比)

2. 虚拟机使用的最高CPU资源(虚拟机限制百分比)

3. 资源优先级(相对权重)

本例中使用3台虚拟机,名称分别为“Windows Server 2008 R2”、“Windows Server 2003 R2”、“Windows XP”。如图所示。

Hyper-V 3中虚拟机CPU竞争机制

第一部分 分配给虚拟机的CPU资源

虚拟机可用的处理器资源(全部资源为100%),管理员可以分配给虚拟机可用CPU资源,也就是说将CPU处理能力的一部分指定给特定的虚拟机(使用百分比表示)。

虚拟机属性设置中提供“虚拟机保留”选项,此设置保证指定的百分比将提供给该虚拟机。此设置将影响一次可以运行的虚拟机的数量,如果指定多台虚拟机,虚拟机使用的CPU资源超过100%,则按照虚拟机启动的先后顺序,未超出物理CPU处理能力的虚拟机可以正常启动,超出物理CPU处理能力的虚拟机将不能启动。

默认设置

通过虚拟机向导创建虚拟机后,默认情况为虚拟机指派的虚拟处理器计算资源是1个CPU,Hyper-V 3宿主机根据CPU内核的多少决定每个虚拟机可以使用的最大虚拟处理器数量(可以参考Windows 8 Server说明)。默认设置“虚拟机保留(百分比)”为0,不为虚拟机保留资源,处理器数量确认的情况下赋予虚拟机最大限度的计算能力。在实际应用中,多个CPU竞争是最常见的。如果每个CPU都使用最大处理能力,将会导致整体系统性能下降,甚至系统崩溃。因此,限制CPU的计算能力将是一种行之有效的方法。

Hyper-V 3中虚拟机CPU竞争机制

CPU运算能力测试

例如在同一台宿主机中,虚拟处理器的数量设置为4:

l 虚拟机(Windows Server 2003 R2)设置的“虚拟机保留(百分比)”为20%,则处理器数据处理能力的20%分配给该虚拟机。

Hyper-V 3中虚拟机CPU竞争机制

l 虚拟机(Windows Server 2008 R2)设置的保留(百分比)为80%,则处理器数据处理能力的80%分配给该虚拟机。

Hyper-V 3中虚拟机CPU竞争机制

l 虚拟机(Windows XP)设置的保留(百分比)为20%,则处理器数据处理能力的20%分配给该虚拟机。

Hyper-V 3中虚拟机CPU竞争机制

同时开启三台虚拟机,使用的处理器运算能力为20%+80%+20%=120%,将超出硬件处理器最大负荷。

1. 开启第一台虚拟机(Windows Server 2003 R2)时,需要的CPU处理能力为20%,该虚拟机可以正常启动。

2. 开启第二台虚拟机(Windows Server 2008 R2)时,需要的CPU处理能力为20%+80%=100%,两台虚拟机将占用宿主机的所有计算资源,但是没有超过100%,第二胎虚拟机也可以正常启动。开启的两台虚拟机都可以正常运行。

3. 开启第三台虚拟机(Windows XP)时,需要的处理器运算能力为20%+80%+20%=120%,将超出硬件处理器最大负荷。第三台虚拟机将不能启动,并出现错误提示,提示虚拟机无法初始化且没有足够的资源。

Hyper-V 3中虚拟机CPU竞争机制

CPU使用机制

虚拟机保留(百分比),在其他参数设置相同的情况下,宿主机强制为虚拟机分配CPU资源。当赋予虚拟机20%的计算资源时,20%的资源被虚拟机独占,其他虚拟机将不能使用已经分配的计算资源。虚拟机运行重要业务时,为了保证虚拟机具有足够的计算资源,虚拟机指派CPU应该为一种简单且行之有效的方法。