| TPS统计: 
图8 TPS统计 虚拟服务器的平均TPS稍低于物理服务器,整体表现比较平稳,很直观的体现这个虚拟系统的性能。在上面的性能测试项目中,可以看出虚拟服务器表现性能很强劲,把ERP压力测试的并发压力推到一个新的高度并顺利的完成了全部的测试。给虚拟服务器上调配的4个CPU,其表现出来的性能指数基本吻合4个CPU核心的物理服务器的性能水平。 稳定性测试: 对于虚拟服务器的稳定性应该是很多人更加关心一些,因为到现在为止,市场上存在着的多种虚拟化技术,无论是VMWare、Xen还是SWsoft,其客户使用在的虚拟机上多数运行的是一些非主要业务模块,象备份、防毒等应用服务。这些服务对性能的需求不是很高,但对虚拟系统的稳定性有很高要求,通过热迁移技术,理论上是可以实现系统的永不停机。 很可惜,Windows Server 2008目前的Hyper-V还没有包含系统的热迁移功能在内,针对关键应用的高可用方案在这个测试版里也还不见踪影。(据微软解决方案技术经理孔文达介绍,冷\热迁移、物理机向虚拟机迁移的功能集成在另一个产品中——System Center Virtual Machine Manager)我们只能通过长时间的运行测试软件来简单考察其系统稳定性了。将虚拟服务器的虚拟CPU数目设定为一个,ERP压力测试的并发压力设置为100的水平,然后将测试时间延长到12或者24小时。让虚拟系统一直保持在压力均衡的状态下进行疲劳测试,可以想象,由于Windows的数据冗余,其运行效率会逐渐下降,各个模块的响应时间也会越来越长。 
图9 12小时混合测试中各模块的响应时间 在之前的ERP压力测试中我们已经发现科目余额查询是测试中响应最慢的一环,这是由于测试脚本没有对科目余额查询的运行条件进行参数化设置,则每次的余额查询都是对所有科目数据的全时长的检索。从上图可以看处,混合测试的9个功能模块大部分的响应时间在400秒以下的可接受范围之内,但科目余额查询的响应时间就出现的惊人的缓慢。 值得庆幸的是,即便有的功能模块响应时间变得很长,但系统没有依然没有出现死锁乃至宕机的情况,测试期间出现的一些错误,基本都是超时等待的错误提示,这在程序设置中重新定义等待时长就可以规避。虚拟服务器始终有惊无险的完成了长时间的测试项目。 总的来说,Hyper-V的虚拟服务器稳定性还是让人满意的。裸金属架构的虚拟技术都直接用系统处理器执行CPU指令,而涉及不到虚拟层。也就是说,Hyper-V其实是在硬件上直接运行的虚拟系统,其中运行的虚拟服务器根本不需要主操作系统。基于裸金属架构的虚拟服务器是直接支持对称多处理器技术、热插拔内存技术、冗余磁盘RAID 以及冗余电源技术等众多的硬件特性。对系统的稳定性有很大的帮助,并使系统保持一个相当高的可用性。 发现: 在性能测试和稳定性测试的过程中,我们发现了一些有意思的现象。在任务管理器中的性能监视窗口中,无论将虚拟的CPU设置为1个或者4个,运行的测试无论是50并发还是240并发,虚拟服务器CPU的占用总是保持在一个相对很高的水平上。这个现象在之前做过的物理服务器上没有出现过。也就是说,如果一套服务器系统,它的性能如果能够支撑200并发的话,当测试压力只有50的时候,其系统占用不会是在很高的位置。 这与VMware虚拟机处理性能的调度截然不同,VMware曾经公布过一个虚拟机上开展SQL2000的性能测试报告,按照该报告,VMware虚拟机的性能随着虚拟CPU的增长而线性增长。 由此我们推测,Hyper-V在调度CPU资源时,并不是按照虚拟机的虚拟CPU数量进行调度。实际上我们测试过给同一个虚拟机分配一个虚拟CPU和四个虚拟CPU,虚拟机的性能差异很小,基本上可以视为SQL 2005对不同数量处理器支持的性能差异。Hyper-V对CPU资源的调度,使同一台物理机上的虚拟机之间可以实现动态平衡,有效利用处理器资源。但是这样做的弊端将是虚拟机之间的隔离需要部署时很好的规划,否则一、两个虚拟机出现死锁这样的宕机,很可能危急整个物理机上虚拟机稳定性。(图10)。 
图10 不同压力各系统资源对照 还一个有意思的现象,我们发现上面的测试中的虚拟服务器,无论它的CPU占用率有多高,在主系统的Windows2008上始终都不会体现出来。感觉上Windows2008所使用的CPU和虚拟服务器上的CPU就象是完全隔离开的一样。2007年我们做过的SWsoft的基于寄居架构的虚拟系统测试,虚拟系统的压力会直接体现在主系统之上。相对应的是,分配给虚拟服务器的物理内存则可以在主系统中表现出来,分配固定内存空间应该是出于平衡性能和稳定性的一个考虑吧。 
图11 虚拟机的系统资源设置 在虚拟服务器的系统资源中,我们可以设置1、2或4个虚拟处理器,从图10可以看出来,无论赋予虚拟服务器的处理器是1个还是4个,虚拟的处理器和物理处理器其实没有任何影射对等关系。将物理硬件的空余处理能力按设置的百份比例划分给虚拟服务器,并根据各个系统不同的负载大小,弹性的变更其处理计算能力,这是Hyper-V对系统性能的动态协调特性。但当服务器中装有多个虚拟系统,如果某虚拟服务器占用的计算能力值在100%时,这仍然会大大的影响到其他系统的可用性。所以要对每个虚拟服务器进行合理的资源分配。Hyper-V对不同系统之间的资源弹性调配,可以大大提高系统的整体可用性,这也是虚拟技术最大的特点。 
图12 在主系统进行winRAR测试 当虚拟服务器正在进行压力测试的时候,我们在Windows2008上也进行了winRAR的硬件性能测试,对照关闭虚拟服务器是进行的同样的测试,结果有20%左右的下降,这说明了系统硬件性能的独立存在,至少在CPU上是如此。 由于Hyper-V是属于裸金属架构的虚拟技术,我们推测主系统Windows2008上监视到的CPU也是基于虚拟平台之上的,或者说,with Hyper-V的Windows Server2008本身就是一个安装在虚拟层之上的虚拟系统。 
图13 虚拟服务器高负荷,主系统依然没有体现 在虚拟服务器运行的时候如果将窗口转为全屏显示,此时的操作完全没有使人觉得是在操作一个虚拟系统,和平时物理系统之间的切换并没有什么不一样的地方。这里我们想到了一个有趣的比喻,在对IT业界有深远影响的电影《黑客帝国》中,每个人不过是在一个虚拟世界中的一个虚拟的意识,没有人想到自己是被虚拟出来的,就象Hyper-V上的Windows2003不会知道自己是被安装在虚拟的平台上一样,假如系统也有意识存在的话。而从系统资源的监视中看出,虚拟服务器的CPU占用率并没有体现在2008之中,可以说在CPU使用的时间片,不同系统之间是相互隔离的,我们大胆的猜测,其实Windows2008也是一个特殊的虚拟系统,是一个能提供虚拟功能的母系统,但就连母系统也是建立在虚拟的硬件平台之上。就象我们当第一次看到Neo离开Matrix之后还能用自己的能力对付机械章鱼的时候,一样的大跌眼睛。作为母系统的Windows Server2008有其特别的存在意义,但这不等于说明Windows Server2008的母系统象寄居架构的母系统一样不能缺少,没有Windows Server2008的Hyper-V也是可以独立工作在硬件层上的。在微软公司08年即将发布的产品名单中有一款售价为29美圆的独立Hyper-V软件,届时,我们只需在Hyper-V上就可以安装各种不同的系统了。 遗憾: 结束了对Windows Server2008虚拟系统的测试,对于其Hyper-V虚拟技术所带来的性能及稳定性的体验,我们感觉到了微软公司的对虚拟化市场的扩张的野心。虽然说Hyper-V在性能以及稳定性都有不错的表现,但也有不少的遗憾剩下来。Windows Server2008 RC1中的Hyper-V只有基本的功能,相对于VMWare或者是SWsoft,配套的功能点现在是一个都没有,现在Hyper-V也仅仅是虚拟技术的基本体验。其他的管理功能象热迁移或冷迁移,无论是P2V(物理到虚拟)、V2V(虚拟到虚拟)等这些应该有的功能都没有踪影,也不知道那29美元的软件组会不会包含这些功能。此前传闻因为开发的进度没有赶上,微软公司包含多中管理工具的虚拟技术要在2008年中才会和大众见面,真希望这消息只是传闻。 
图14 帮助文档是空的 或者因为不是正式版本,Windows Server2008中关于虚拟技术的帮助文档都是空的。从系统之中得到的“帮助”极其有限近乎为零,也可能是对虚拟技术的功能点没有完全确定下来,所以空着帮助文档也不奇怪。 |