商业银行数据库管理实践
上QQ阅读APP看书,第一时间看更新

3.2 小型机与x86服务器大比拼

当我们打响这个小型机下移战役时,必须要做到心中有数,如果用x86服务器代替小型机来承载重要业务系统时,它能否胜任?那我们就来华山论剑,一决高下吧!

本节通过对主机计算资源、扩展性、可靠性等层面的分析,从理论并结合已公布的相关数据来评估x86服务器代替小型机作为未来系统服务器的可行性。分别对比了x86服务器与小型机的优势和劣势,以及在小型机下移项目中的应对策略。我们准备据此整理出适合自身现状且充分考虑各系统未来几年的业务增长,切合实际的服务器配置套餐,将应用于小型机下移项目中。

随后,为实现下移后系统预期性能提升的目标,参照评估的x86主机对标配置策略进行性能对比测试。选用数据库类应用在TPC-C的模型场景中的测试结果,同时佐证了x86服务器在性能方面完全可以超越当前主要交易系统的小型机配置资源。另外,还从已下移的部分业务系统下移前后的性能对比数据来分析,按照小型机计算资源转换方案来配置服务器计算资源,从下移后一段时间的系统处理能力表现来看,选购的x86服务器基本是现有在役小型机处理能力的一倍以上。

3.2.1 计算资源对比分析

首先调阅两个平台CPU的处理能力数据,再以Power 8中最高端E880和Intel至强E7-8890为例,分为8路和16路两种CPU配置,根据2016年标准性能评估协会(SPEC)公布的数据如表3-1所示。

表3-1 2016年SPEC公开的小型机与x86服务器性能对比

表3-1中SPECint_rate与SPECfp_rate代表由SPEC CPU测试工具测量出的CPU性能参考值。前者用于测量和对比CPU的整数运算性能,后者用于测量和对比浮点运算性能。这两个参数值越高,代表CPU在该方面的运算能力越强。

结合SPEC公布的数据,Power小型机E880与Intel至强E7-8890处理器对比结论如下。

(1)在16路机型上,Power小型机性能略强于x86,但两者的性能已经非常接近。

(2)在8路及以下的机型上,x86服务器性能已经超越Power。

(3)Power机型的核数已经落后x86许多。

Intel在2007年发布的最新一代至强CPU,配置从高到低分为:铂金(Platinum)、金(Gold)、银(Silver)、铜(Bronze)共四款。对于数据库来说,CPU的需求主要分为以下三类。

(1)并发连接数高、事务粒度较小的联机交易(OLTP)类型,需要选用核数相对较多、主频要求不高的CPU。

(2)并发连接数不高、但经常存在复杂查询且事务体量较大的联机分析处理(OLAP)类型,选择核数可以不多、但主频要求较高的CPU。

(3)并发连接数较高,且交易偏混合交易类型,既有复杂查询同时又存在频繁的小事务,就需要选择主频和核数都高的CPU。

我们计划在小型机转换x86服务器上采用套餐化策略。应用程序将采用虚拟化部署方式,不会单独考虑CPU物理资源分配,届时可以根据每个虚拟机承载的应用服务器数量和负载情况进行扩缩容。

数据库方面需要根据业务类型拟定出合适的CPU套餐,针对负载和数据量较小的系统,通过合理的虚拟化转换测试后,即可选择虚拟机部署方式,资源划分策略与应用服务器一致,可将它们归类为同一种资源套餐。针对联机交易、联机分析处理和混合类型的系统,将数据库大体分为两类套餐。

相较CPU,内存能对比的指标比较少。从配置上来看,IBM Power 7小型机采用DDR3 1066MHz的内存,而目前选购的x86服务器基本采用DDR4 2666MHz的内存。DDR4提供比DDR3更低的供电电压1.2V以及更高的频宽,而且DDR4新增了4个Bank Group组的设计,各个Bank Group具备独立启动操作读、写等动作特性,在同一时钟脉冲工作周期内,至多可以处理4组数据,效率明显要好过DDR3。

数据库类软件对内存的需求还是比较可观的。从数据库对内存需求来分析,将其分为两大类,针对在线联机事务处理(OLTP)类型的数据库,相较在线分析类(OLAP)对内存的需求不是很大。因为业务数据本身就较少,历史数据也会定期进行归档,那么活跃的数据一般不会太多,并且对于批处理的数据量也基本可控。因此对在线联机事务处理(OLTP)类型的数据库,选择128GB的服务器即可。而对于在线分析类(OLAP)和混合负载(现在比较时髦的叫法为HTAP)的数据库,因这类的应用多数都有报表和复杂查询,通常会对大数据量的中间结果数据进行计算。因此此类数据库要配置比较高的内存配置,如256GB的服务器。

综上,无论是CPU还是内存,这两个主要的计算资源从配置上都比小型机强,所以从性能角度分析,x86对比小型机,在同样的运算场景下,其计算资源性能应能超过小型机。结合公布的相关数据,从理论上分析,可以保证达到我们对x86服务器的性能预期目标。

3.2.2 存储资源对比分析

除了前面所述的主机计算能力以外,决定主机性能的关键指标还有I/O处理能力。小型机具备较强的I/O扩展能力,而x86服务器综合考虑兼容性,I/O扩展能力逊于小型机。但这并不是最终结论,因为真正考量主机的I/O性能,单从硬件架构分析是不够的。影响主机I/O处理能力的主要因素如下。

(1)硬件I/O卡扩展能力。

(2)存储阵列、本地磁盘。

(3)操作系统I/O调度处理能力。

(4)业务类型。

硬件的突破总是有限的,I/O卡的扩展能力不再赘述。存储阵列方面,小型机下移x86服务器后,针对应用程序将选择虚拟机的方式提供服务,对于宿主机将采用全闪阵列存储数据。针对数据库,将选择固态盘(SSD全闪阵列)作为磁盘选用标准,这相比现生产的SCSI磁盘,针对随机读I/O有明显提升。这将较大幅度优化数据库数据、索引的顺序及随机读取性能。

从数据存储介质考虑,存储阵列并不是唯一选择。在部分x86的部署场景中,我们认为本地磁盘(SSD)作为数据存储介质也有很大优势,应该有本地磁盘部署场景的用武之地。

首先在虚拟化方面,将考虑采用宿主机结合本地盘的方式构建虚拟化集群,针对大多数对数据存储空间需求不大的应用可以部署其中。

其次在数据库方面,也考虑使用本地磁盘代替共享存储。通过对数据库类应用进行共享存储和本地磁盘全方位的实测对比,从对比结果来分析,可以通过本地磁盘代替共享存储,例如,Db2 HADR或者MySQL组复制(MGR)。这些前提保证了数据的安全性。我们认为部分小于3TB数据量,且可配置数据库高可用的非数据仓库类系统可以采用本地磁盘部署方式。

由于业务类型不同,I/O类型也分为:顺序I/O和随机I/O。这都对I/O的性能有较大影响。在操作系统层面,CPU调度I/O请求的效率也是不同的,例如AIX系统与Linux系统。因此,需要结合实际的业务场景进行对比性测试,测试结果将作为重要参考依据。该部分在基于x86服务器性能测试方案中体现。

综上,在I/O处理能力方面,无论是采用本地磁盘还是全闪阵列,从性能角度完胜原来基于SCSI磁盘阵列。而可靠性方面,虽然本地磁盘无法与磁盘阵列相比,但通过应用层和软件层的高可用设计可以完美弥补这部分短板,从而能够扭转乾坤。

3.2.3 可扩展性对比分析

目前,随着业务不断发展,在线数据量的增加,我们更关注主机的可扩展性,这将决定了系统性能的伸缩能力。主机下移至x86服务器后,为满足系统可扩展性要求,应有更优的解决方案。

无论是小型机还是x86服务器,主机都具备良好纵向扩展能力(Scale-up),可以通过增加主机计算资源,达到提升单机处理能力的目标。但对于小型机来说,横向扩展能力(Scale-out)就显得性价比不足,一方面不能为了横向扩展而采购更多的小型机,即使采用分区管理,那么这些分区同在一台物理主机也存在单点风险;另一方面,从软件方面来看,系统的扩展能力主要是考量软件层的扩展能力,如果软件不能很好地支持扩展性,有再多的主机也是徒劳的。

x86服务器相对小型机,具备更高的性价比。在具备纵向扩展能力的环境下,可继续选择增加横向扩展能力。对于应用服务器,可以充分结合虚拟化,实现应用程序节点动态伸缩,也可轻松应对计划性业务促销带来的业务峰值。对于数据库服务器,可以充分结合数据库层高可用设计或分库设计增强其横向扩展能力。但不得不承认,一套系统的扩展能力的强与弱,并不在于服务器层面,而是在于应用和软件架构层面,但服务器的扩展能力和扩展策略是必要条件。

因此,单从服务器的扩展性角度来分析,x86服务器比传统小型机更具备竞争力。

3.2.4 可靠性对比分析

单机小型机的可靠性要强于x86服务器。不得不说,小型机在可靠性方面,因许多冗余组件和高可用技术,如处理器降级使用、PCI槽热插拔等,所以可靠性相较x86服务器较高。而x86服务器方面,硬件的质量水平良莠不齐,所以从服务器本身而言,x86服务器的稳定性与小型机不在一个级别。

从服务器可用性角度分析,无须对比它们之间的具体差异,应从系统整体可靠性出发,虽然单机小型机具备更高的可靠性,但下移至x86服务器后,可以通过x86服务器有效的横向扩展能力,弥补其有限单机可靠性缺失。这就是我们将小型机的“独虎战术”改为“群狼战术”的主要打法。

要支持“群狼战术”,主要挑战并不在服务器层面。从系统整体可靠性对比,决定系统是否稳定的关键点不在于硬件架构的差异,而在于上层应用。如上层应用采用集群化设计时,任意节点的宕机对业务系统的服务是无影响的。因此,对于x86服务器,将把重点放在应用层集群化或数据库层多节点化来提升系统高可靠性。

3.2.5 小型机与x86服务器计算资源实测对比分析

“纸上得来终觉浅,绝知此事要躬行!”通过前面对各种计算资源的调研和分析,只是从理论及公布的数据进行初步分析,为了找到更适合x86服务器的资源配置,需要通过实测数据验证前面的分析结论。以理论分析为基础,再结合实测数据,梳理现有小型机的资源配置,综合分析后得出小型机下移x86服务器的资源转换配置套餐,应用于所有待下移的系统中。

我们的资源对比测试方案主要采用数据库TPC-C标准测试场景。TPC是事务处理性能委员会,是由数十家会员公司创建的非盈利组织,TPC-C使用三种性能和价格度量,其中性能由tpmC(Transactions Per Minute,TPM)衡量,C指TPC中的C基准程序。它的定义是每分钟内系统处理的新订单个数。之所以选择对比测试数据库,是因为我们觉得在这些待下移的系统中数据库的负载比应用程序更具代表性,更容易区分出测试结果。而选择数据库的OLTP测试场景,主要考虑待下移的系统90%都属于商业银行的重要交易类系统,很多系统属于偏联机交易负载和混合负载类交易。

选择测试场景如下。

我们选择使用Hammer DB来模拟典型的使用TPC-C测试规范的OLTP业务场景。配置部署了200个Warehouse,整个交易占比为:新订单45%,付款43%,订单交付4%,订单查询4%,库存查询4%。数据库内各表对象之间的关系如图3-1所示。

图3-1 TPC-C模型数据结构关系图

在小型机和x86服务器两个平台的配置几乎相同的情况下,对比TPC-C的测评值(每分钟产生的新订单数NOPM),x86服务器处理的NOPM数量是IBM小型机的近2倍,实测数据如表3-2所示。

表3-2 P7小型机对比x86服务器(TPC-C)