随锐旗下互动传媒:

Server 2008 Hyper-V改进处理器支持技术

http://www.weaseek.com  2008-04-18 15:09:46  来源:搜讯网社区

Windows Server 2008正式版发布之后,Hyper-V 版本已经很快的更新到了RC0,功能代码方面和最终的完成版已经相当接近,尤其是在虚拟机多处理器的支持方面,比BETA有很一定的改进。

Windows Server 2008正式版发布之后,Hyper-V 版本已经很快的更新到了RC0,功能代码方面和最终的完成版已经相当接近,尤其是在虚拟机多处理器的支持方面,比BETA有很一定的改进。

虚拟栈可以实现模拟的I/O设备,例如IDE控制器和DEC 21140A网卡。然而模拟这些设备的代价很高。发送单个I/O请求,就有可能导致虚拟栈和子分区之间的多次切换。相反,Hyper-V提供专门为虚机环境所设计的虚拟I/O设备。这些虚拟设备连接到VMBus,这是一个支持即插即用的总线,使用共享内存,可以有效地进行分区间通信。Windows虚机可以自动检测到VMBus上的虚拟设备,并且加载合适的驱动程序。

Hyper-V中的I/O采用客户端/服务器架构,在根分区中包含VSP(虚拟服务提供程序),在子分区中包含VSC(虚拟服务客户端)。该架构极大地减少发送I/O请求所需的开销。如果Virtual Server用户把虚机迁移到Hyper-V中,他们将体会到高I/O的工作负载的CPU开销大大降低。

多处理器的虚机

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

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

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

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

[责任编辑:海燕]热门关键词: 处理器 Server 2008 微软

相关文章