服务器 频道

Hyper-V和多处理器虚机入门解读

  多处理器的虚机

  在这第一篇文章里,笔者想着重指出Hyper-V的主要性能特性:多处理器的虚机。Hyper-V支持4 CPU的Windows Server 2008虚机,和2 CPU的Windows Server 2003虚机。如果服务器工作负载需要很高的性能,我们可以考虑用2 CPU或者4 CPU的Hyper-V虚机对其进行虚拟化。当然,只有当工作负载确实需要的时候,才应该使用多处理器虚机,因为拥有更多的处理器会带来一些额外的开销。

  然而,操作系统内核和驱动会采用自旋锁(Spin Lock)的机制,在获得自旋锁之前,(线程)并不会阻塞,并一直处于自旋状态,前提是自旋锁只会保持很短的时间。但是虚拟化会打破这种条件,因为虚拟处理器是按时间片进行调度的。如果在保持自旋锁的时候竞争虚拟处理器,则其他虚拟处理器就要自旋很长时间,导致CPU循环的浪费。[盆盆注:自旋锁是多处理器操作系统的一种互斥机制,有点类似于互斥锁,但是保持时间更短。更详细信息,可以参考《Windows Internals》第四版的P152]

  我们在Hypervisor和Windows Server 2008内核里加入创新设计,尽可能防止出现自旋锁的长时间等待条件,如果确实存在长时间等待条件,也会有效地加以检测并对其进行处理。我们还对Hypervisor进行设计,包括调度程序和内存虚拟化逻辑,以使它们在大多数临界区中都不会锁定,从而确保多处理器系统能够获得很好的延展性。

  所以,4 CPU的Windows Server 2008虚机,其延展性可以和物理4 CPU系统一较高下。这是一个很好的注解,来诠释Windows Server 2008虚机和Hyper-V如何一起提供性能上的改进。我们还将在后续的版本里继续提高多处理器系统和多处理器虚机的延展性。

  更多虚拟化文章请参阅盆盆博客链接:http://v.itecn.net

 

0
相关文章