Windows Server 2012姗姗来迟,最新的Hyper-V 3给我们带来更多的惊喜,后续三篇博文和大家共同学习虚拟机CPU竞争机制。
第一部分:分配给虚拟机的CPU资源
第二部分:限定虚拟机可用的CPU利用率
第三部分:争夺CPU资源优先级
第二部分 限定虚拟机可用的CPU利用率
虚拟机可用的处理器资源(全部资源为100%),可以指定虚拟机使用的CPU资源(使用百分比表示),也就是说可以限制虚拟机使用的CPU资源。
虚拟机属性设置中提供“虚拟机限制”选项,此设置保证虚拟机可以使用的最大CPU处理能力。虚拟机使用的CPU资源超出限制值,则使用CPU最高值为设置值(百分比)。
默认设置
创建新虚拟机后,默认为每个虚拟机限制百分比为“100”,即每个虚拟机都可以使用最大的CPU处理能力。
默认设置有一个致命的缺陷,当多个虚拟机同时运行,虚拟机使用的CPU利用率都达到100%时,系统将停止响应以至于宕机。对应用来说,这是一个致命的缺陷。因此,限制虚拟机的最大处理能力将是一种好方法。
图
虚拟机CPU资源使用测试
例如在同一台宿主机中:
l 虚拟机(Windows Server 2008 R2)设置的虚拟机限制(百分比)为50%,则该虚拟机最多可以使用CPU的处理器数据处理能力的50%。
n
l 虚拟机(Windows Server 2003 R2)设置的虚拟机限制(百分比)为30%(如图2-16所示),则该虚拟机最多可以使用CPU的处理器数据处理能力的30%。
n
名称为“Windows Server 2003 R2”的虚拟机启动后,由于应用系统需要较高的CPU处理资源,通过“任务管理器”中的“性能”选项卡,可以大致看到CPU使用率99%以上。
图
该“虚拟机限制”设置30%,也就是说该虚拟机可以使用的硬件CPU最高资源是30%,虽然虚拟机提示CPU利用率接近100%,但是物理CPU的利用率是多少呢?
打开“Hyper-V 管理器”,可以看到该虚拟机的CPU使用率,CPU使用率为29%,接近30%,达到为虚拟机分配的CPU资源的最大使用率,如图所示。
这样当其他虚拟机处于运行状态时,不会因为某个虚拟机占用大量CPU资源而无法响应客户端请求。
图
通过Windows 8 Server“任务管理器”中的“性能”选项卡,也可以清楚显示物理CPU的利用率,大致在30%左右,而非虚拟机显示的利用率100%。
图
CPU限制机制
当宿主机中具备一定数量的虚拟机时,建议通过基准测试计算出每个虚拟机应用占用的最大CPU利用率,然后通过“虚拟机限制”选项为每个虚拟机指派限制值。
这样即便有多个虚拟机达到应用峰值,也不会影响其他虚拟机处理能力,确保系统平稳运行。