【IT168 资讯】12月15日,北京798艺术园区仁艺术中心上演IBM Power虚拟机和x86物理机的性能大战,IBM通过两个实际应用场景展示了一个迥然不同的应用服务器部署方式:Power虚拟机应用服务器。从性能、能耗、空间三个角度对IBM Power虚拟机和x86物理机进行了测试对比。
▲系统与科技事业部应用开发支持资深工程师陈炽卉
系统与科技事业部应用开发支持资深工程师陈炽卉介绍了Power系统在医疗行业的应用现状以及应用测试。以下为演讲记录:
首先我介绍一下我们目前测试和应用的场景。这个应用是杭创社区卫生服务应用,这个应用主要是给居民健康档案为基础的,主要是居民医疗公共卫生服务的平台支持。主要有两块,一是建立支持势区两级卫生行政管理部门、社区卫生服务中心对社区卫生服务工作进行有效管理使用的统计分析系统、网络直报系统、绩效考核系统等。
接下来看一下我们实机的测试环境。Power这边选择了Power710服务器划分了4个VM分区,每个分区配置2core 3.55GH/6GB,部署4套区域医疗应用。中间件采用的是Watson7.0.0.13。下面是作为对比的7台服务器,上面还运行的是WAS7的中间件。它的实际物理部署图在这里,我们可以看到,机器已经在这里,这上面是Power服务器,上面有4个实机应用。这边是x86和Power服务器共享数据库的服务端。上面两排是测试的客户端,下面七排是用户的实机。可以看看拓扑图,左边是4个实机的应用,上面是两台压力测试机,一台对着的是Power压力测试机,一台是对x86。
接下来讲实际测试的场景,我们选择这几个做测试。最左边的是社区卫生服务信息系统,测试的场景主要是三个地方用两种类型的应用场景,是针对实际客户的业务需求来进行的,分别是580。在这三个应用下,我们分别查出高血压的档案和糖尿病的档案,查出业务的时间。
这是我们部署的四个应用,这边是测试,可以看到四个应用测试以后部署在这上面。事实上我们可以看到这四个应用都是对应着四个分区上面,最上面是虚拟化管理咨询,我们现在测试是要有一定时间的,所以已经开始了一个。可以看到,上面是之前的那款,最右侧是实际使用的。可以看到,其它三个业务分区是没有负载的,这里可以看到使用的资源和资源在0.01、0.02、0.03。目前使用CPU达到1.98,达到上限。在实际场合中,实际应用,四种应用高峰期一般是不相同,一般给设成无峰顶模式,分区可以从其它分区获取一些计算资源。因为我们这次专门是做对比测试的,为了公平起见,测分区的时候,我们最多保证在做比较的时候应该是20万。
这个测试我们已经看到了一些数据,因为这个业务跟刚才汉铭的业务有一些差别,汉铭的业务主要是事务型的。我们这边是Web型的业务,客户是终端操作,主要是终端的响应时间,比如一个客户,每个事物的平均响应时间,如果有一个对应的标准,响应在1秒钟之内响应的话,就认为这个系统是非常快的。如果你的业务是2秒钟的,可能点一下,结果就出来了。如果是1-5秒钟的话,你就会明显感觉到系统非常慢了,如果10秒以上,基本上不能接受了。
下面是每秒的事物数,在我们测试中也是有,重量要低一点。这边是B800系统,可以分别看响应的情况,第一组用户,在Power上平均响应时间在1秒左右,x86基本上是在3秒到4秒之间。第二组用户,Power的响应时间是在3秒钟左右,x86已经接近6秒了。
同时我们可以看到,Power的曲线比较平缓,每组测试基本上是平的线,但是x86波动会比较大。
针对刚才的情况做一个简单的总结,因为之前我们也采集了很多数据,这是之前采集的数据,结果基本上也是相当的。可以看到,580、2000的应用,Power响应时间至少比x86快两倍以上,我们在这组测试得到一个测试结论,Power710两个分区超过x86两台服务器至少两倍。
接下来进行第二组测试,这是我们查询糖尿病的档案,这个跟刚才稍微有一些差异。我们也是同样的,比如我们在这里,首先是跑500用户跑2分钟,接下来是800个用户,之后是1000个用户,现在已经开始运行了。因为这个测试需要一些时间,这是目前我们的Java应用服务其调优非常好的实践,今天可能不会介绍非常技术的细节,大概把这些内容过一下。一是在启用之初,沃森支持Power7的优化是在7.0和9.0上的,目前采用实机测试各自占7.0和0.13,也就是说,它可以更好地支持Power7。其中有一个很重要的改进是对试线级模式的支持,在实际的运行过程中,客户按着这个业务来的时候,WebLogic有非常多的利用,这样有效地提高了响应时间。
我们设定Java Heap大小,一般我们的Java太小的话,GCP活动非常频繁,假如说Java设的非常大,可能每次到垃圾回收的时候,停留时间会延长。这样的话我们要设定一个合理的范围,使Heap利用率在40-70%之间。用IBM Java为是专门针对Power7做优化的,监控GC时,重定向GC日志到特定的文件,方便分析;设置合理的Web Container线程池、数据库资源池大小;如果需要的Heap空间不大,可以使用32bit java或64bit jave,指定Xcompressedrefs选项;XLp64K指定Jave Heap采用64K页面,提高TLB命中率(Java6SR7后该参数为默认);打开Power7 S多T4模式;尝试关闭硬件预取,dscrctl-n-s1;使用“-XtlhPrefetch”打开软件预取功能;指定足够大的JIT代码缓存,例如-Xcodecache20。
我们的结果已经出来了,大家可以看一下,这边是分别是500、800和1000的测试情况,可以看到Power的时间响应时间在1秒以下。x86达到2秒左右。800用户的时候,Power的响应时间在2秒左右,x86在4秒。1000用户的时候,Power的响应时间大概是2.5秒左右,x86达到4.5秒左右。
简单总结一下测试情况,这边是800、1000并发用户数的时候,这里可以看到蓝色的是x86,红色的是WebSphere,看到实际的结果,差不多每次测试,因为测试可能会有一些波动,有的时候x86会稍微高一些或低一些,基本上Power相当于x86的两倍。
接下来是一个总结,一个2core的虚拟分区相当于4台x86服务器,一台物理POWER 710相当于14台x86服务器,二台物理POWER710相当于28台x86服务器。这是很直观的对比。
下面是一个简单的总结,对整个采购和运用的比较。这边会应用到商业中间件,这边计费的价格会明显提高。这样就造成x86整体采购成本比Power高出很多,这个大概做到570多万,算是中间件的成本。Power做到40%的性能节省。对于占地的空间,取得了86%的节省。另外使用的功耗,26台的功耗大概在2400多瓦,Power机器功耗是700多瓦。算下来的话,一整年的耗电量,包括机房的作用,相应给这些机器节省的成本,对于x86是6.2万,Power是1.8万。
了解更多详情请猛击会议专题。