VMWare ESX和Ser2008谁能笑到最后 ERP压力测试(1)(3)
在深入研究过测试的数据后我们大致的发现VMWare响应时间比较慢的原因。对于VMWare ESX Server上的虚拟系统资源,有3种会比较影响性能的参数,1是对虚拟系统的资源保留值,即每个系统保留的CPU个数、内存大小,磁盘大小等等。2、是各个系统在物理硬件资源池中所占的资源权重,比如说多个系统都对物理资源申请调用时,哪得系统会得到优先使用权的设置。3、是虚拟系统资源的限制值(Limit),这个数值是指虚拟系统不能占用超过物理资源的百份比例。这三个设置其实是互相影响的,在物理服务机上安装的虚拟系统不多的情况下,如果没有对虚拟系统设置限制值,那么保留值的设置并没有太大的意义,因为只要物理资源有空闲的时候,虚拟系统提出申请,那么这些系统资源,尤其是CPU的计算能力,都是被虚拟系统所调用。
图3 IOmeter测试结果
在压力测试之余,我还特意的对两种虚拟平台上磁盘文件系统的性能做了IOmeter的性能测试。从上图可以看出,Hyper-V下的虚拟磁盘性能曲线平稳一些,而VMWare ESX 的磁盘对压力的表现更直观。就性能而言,在队列深度的不断增加,虚拟磁盘的读写速度差别不是很大,两种磁盘的性能都很接近,但在压力增加的时候,VMWare ESX 的下降趋势比较明显,这多少解释了为什么VMWare ESX 的ERP高并发时响应时间变得更慢的原因。
|
读写速度(MBps) |
队列深度 |
物理服务器磁盘 |
29.172204 |
64 |
VMWare ESX Server |
9.73768 |
16 |
Hyper-V |
9. |
32 |
表1 IOmeter磁盘峰值速度
从上表可以看出,虚拟文件系统与物理文件系统的差别巨大,性能仅仅是物理系统的30%!这就是为什么重要的解决方案例如高可用和容灾一定要在单独的阵列上运行。原因之一就在于虚拟文件系统实际上需要虚拟层的翻译。例如Hyper-v其实是在Windows 2008文件系统上创建一个扩展名为VHD文件来模拟虚拟机文件系统,所有对虚拟文件系统的操作实际上是对这个Windows2008文件的操作来实现。VMware给虚拟机一个单独的分区,但是根据测试来看,其虚拟机仍然不是直接操作物理磁盘系统。这样虚拟文件系统相当于所有的操作都要通过虚拟层的翻译,效率自然高不到哪里去。
在我们进行的虚拟机Windows 2008和Windows 2003文件传送效率对比测试中,虚拟文件就造成更惊人的差别:Windows2008的文件传输效率居然是Windows2003的9倍!主要的原因也出在这个虚拟机文件系统上。
因此对实际生产的系统而言,不论采用Hyper-v还是VMware方案,我们都强烈建议将虚拟机安装在单独的SAN存储上,而不要和虚拟层共同安装在服务器直连存储上!
三、稳定性测试
对于VMWare ESX虚拟系统的稳定性,我们同样的进行了100并发中等压力下的12小时长时间的压力测试来验证VMWare ESX系统的稳定性能。同样的,测试项目顺利的完成,没有出现宕机死锁的现象。在测试中VMWare的虚拟服务器表现稳定,这和很多人认为的虚拟机只能跑象备份、邮件等非核心低压力应用的观念有很大的出入,虚拟服务器同样胜任物理服务器所能做的大部分任务。
图4 长时间的测试结果
因为测试项目运行的时间很长,同样的ERP业务动作会被重复的执行很多次,而由于数据的冗余,执行的事务的时间会越来越长,最小和最大的响应时间之间会出现很大的偏差,所以在稳定性测试中,平均响应时间有更多的参考价值。值得一提的是,在稳定性测试中,VMWare每个模块的平均响应时间又都领先于之前的Hyper-V的同样测试的结果(见图)。难道VMWare对数据冗余有更好的优化技术?这个问题我们会继续咨询相关的技术人员,随后给大家一个合理的答案。
四、资源使用率
在进行压力的测试的同时,我们会不断的记录虚拟系统的资源占用情况,这也是从去年在物理服务器上测试时遗留下来的习惯。系统资源的占用情况会直观的表现系统的压力程度,不过在虚拟平台上,这就和我们的使用习惯相去甚远了。
图5 VMWare不同并发压力下的资源使用率
正如上文提到的虚拟资源的3个很重要的参数。没有添加限制值的时候,CPU资源的会自动进行动态的调配。持续长时间占用的100%CPU计算时间在物理服务器上是很少见到的,而在虚拟机上,不同的压力下,CPU也一直维持为接近100%的水平,这个现象在之前的Hyper-V上的虚拟服务器上已经出现过了,所以在这样高系统占用的情况下,只要虚拟服务器的计算申请没有达到或者超过物理服务器的资源水平,仍然没有宕机也不算奇怪。
这样的设置其实是体现了虚拟技术的最大特点,就是以不同应用来划分系统资源,将闲置的系统资源分配给合适的应用,同时保证每一个应用都最大程度的利用系统资源的,使物理服务器的硬件价值得到最大化的体现。