前言
x86服务器的强大计算能力终于借助四核的普及而得到确认。
虚拟机技术中的高可用方案、实时迁移将给网管调度计算资源提供最便捷的手段。VMware的上市,将2007年定格为虚拟化技术年。
但是虚拟化技术高额的许可费用以及服务费让中小企业难以企及(VMware培训费高达15000美金),而微软虚拟化技术的日渐成熟无疑是打破这个僵局的利器。对中小企业市场,微软Hyper-V的价格优势和Windows Server系列的普及面才是最后的制胜球。
测试简介:
在基于Windows Server 2008的虚拟服务器上进行ERP压力测试,通过不断加大并发用户数来体现系统性能极限,另外在保持高性能压力的状态下,进行20小时左右的长时间疲劳测试来考察虚拟虚拟系统的稳定性。建立虚拟服务器作为测试的服务端,采用浪潮PS-ERP最常用的物流功能6模块作为测试脚本,在客户端利用Loadrunner虚拟用户并发并记录系统资源占用、响应时间、通过事务数等参数。(相关说明见本站文章“微软、浪潮工程师谈ERP压力测试”、“ERP压力测试专题”)。
物理服务器是配置较高的星盈G129-Q企业级服务器,星盈G129-Q是高集成度的IU机架式服务器,使用两块Intel Xeon 5345 CPU,16G内存,存储系统为4块15,000转的SAS 146G硬盘组成的硬件RAID5。虚拟服务器在系统资源调配上占用4CPU以及8G的物理内存,以次来对比之前测试过的采用同样CPU的单路4核物理服务器的性能(见文章“浪潮PS-ERP压力测试报告--Intel单路4核服务器”)。
评测工程师评点:
Windows Server 2008整合了Hyper-V的服务器虚拟技术,并且对外公布了Hyper-V超低价——28美元。这对中小企业尝试甚至普及虚拟化技术是一个重大利好消息。
通过增加ERP系统并发用户数来实现大压力,长时间运行的疲劳测试考察虚拟系统的稳定性。结果表明,Windows Server 2008虚拟服务器的性能及稳定性都让人满意。
测试目的:
在基于Windows Server2008的虚拟服务器上进行ERP压力测试,不断加大并发用户数来体现系统性能极限,另外在保持高性能压力的状态下,通过长时间运行疲劳测试以考察虚拟系统的稳定性。
测试方法:
建立虚拟服务器作为测试的服务端,采用浪潮PS-ERP最常用的物流功能6模块作为测试脚本,在客户端利用Loadrunner虚拟用户并发并记录系统资源占用、响应时间、通过事务数等参数。
测试用数据库系统为MS SQL Server 2005,数据大小为5G。5G数据库大约是一个中等规模企业使用浪潮PS-ERP的数据大小。
测试环境:
硬件组成 | 客户机 | 星盈G129-Q,Intel Xeon 5335*2,4*146G SAS 15K转/ RAID5/ 16G内存 |
服务器 | 虚拟服务器 | |
网络 | 磊科 1000M交换机 | |
软件组成 | OS:
| |
Microsoft SQL Server 2005 with SP2 | ||
浪潮通软ERP-PS9.1 | ||
Loadrunner8.1 | ||
测试脚本 | 浪潮ERP物流6功能模块 |
性能测试:
性能测试的项目我们采用了物流功能的6个模块,开始以为虚拟机的性能相对于物理服务器会有一定的距离,所以压力程度从较低的50并发数开始进行记录测试。但随后我们在测试中发现,虚拟服务器的性能表现完全可以媲美相同硬件资源的物理服务器。其最高的240并发在之前的测试中很少到达过这样的高压力,并且无错误完成测试,这令我们对虚拟服务器的性能刮目相看。
1、采购入库单制单:
图1 采购入库单制单
采购入库单制单(见图1),从51到240并发的不同压力下的测试结果符合逻辑线性。从平均测试结果来看,在240并发的压力下成绩也相当的不错,对比之前的单路4核2G内存的物理服务器成绩,虚拟服务器占用8G的内存起到了很好的性能提升作用。
2、客户欠款余额查询:
对于客户欠款余额查询,随并发数的增加,平均响应时间的增长保持一定比例,随并发压力的增加响应时间逐渐变慢,最长响应时间在100秒左右,可以说明该功能模块对系统没有很难承受的压力(见图2)。
图2 客户欠款余额查询
3、库存辅助管理余额查询:
图3 库存辅助管理余额查询
该模块对并发压力增加的表现不是很敏感,并发从50—240的不断累加,其响应时间增长很平稳,这与单路4核的响应时间很接近,在高并发如200和240的时候,测试成绩甚至比物理服务器的结果要好
4、库存入库单记帐:
图4 库存入库单记帐
库存入库单记帐,200并发以下的平均响应时间平均在200秒以下,240并发的响应时间却慢了一倍,这主要是在高并发数下,该模块在测试中完成的事务会相对变少,从而形成了最小、最高和平均响应时间差别不大的现象,在这方面看来,240并发下已经接近系统瓶颈,根据我们之前的推测,这个瓶颈存在于应用软件系统中(见图4)。
5、全月加权成本计算:
图5 全月加权成本计算
全月加权成本计算平均响应时间都集中在20--60秒之间,这和物理服务器的表现基本相同,全月加权成本计算对系统造成压力不算大。
6、销售提货单制单:
图6 销售提货单制单
销售提货单制单模块在200并发以下,表现良好,和库存入库单记帐模块相类似,200并发以上的响应时间有些强差人意,不过在物理服务器上没有测试过180以上的并发压力,所以不好比较,总体看来,200并发以下的表现,虚拟服务器和物理服务器表现很接近(图6)。
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本身就是一个安装在虚拟层之上的虚拟系统。
图12 在主系统进行winRAR测试
在虚拟服务器运行的时候如果将窗口转为全屏显示,此时的操作完全没有使人觉得是在操作一个虚拟系统,和平时物理系统之间的切换并没有什么不一样的地方。这里我们想到了一个有趣的比喻,在对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中关于虚拟技术的帮助文档都是空的。从系统之中得到的“帮助”极其有限近乎为零,也可能是对虚拟技术的功能点没有完全确定下来,所以空着帮助文档也不奇怪。
新闻热点
疑难解答
图片精选