以世博为例 DB2数据库服务器选型指导
2010年上海世博会即将于5月正式揭开它的神秘面纱,近期IT168服务器频道从世博会的信息化通气会上了解到,负责世博会预约服务管理系统的是长江计算机(集团)公司。该公司以Windows Server操作系统+DB2数据库作平台,力求稳妥高效的解决世博会开幕前庞大的票务和各种预约服务的IT系统压力。
本期我们就DB2数据库服务器的选型,从数据处理能力、可靠性和投资成本几个方面来分析DB2数据库对服务器的具体要求,并结合即将到来的世博会案例,揭秘其选型的关键所在。
1、 从DB2 第9个版本的二元特性看服务器需求
DB2数据库是IBM研制的一种关系型数据库系统,凭借优秀的可伸缩性、良好的大规模并行特性广泛应用于大型数据库系统。由于采用了数据分级技术,能够使集群内的数据很方便的下载到本地LAN数据库服务器,衔接了客户机/服务器用户对数据库集群的访问,使数据库本地化和远程连接尽可能的透明。也因此,从大型集群到单用户环境,包括Linux、OS/2和Windows平台,DB2都有一席之地。
从DBA的角度来看,DB2定位于高层次的数据利用性、完整性、安全性和可恢复性。从小规模到大规模的数据库应用均可以流畅的运行在DB2上——这一点需要特别说明,传统SQL数据库在并行调用到一定规模之后,数据库性能会有较大的下滑——而DB2恰恰在设计之初就是为了解决这类问题。
2006年IBM发布了DB2的第九个版本,其最大的特点就是率先实现了可扩展标记语言(XML)和关系数据间的无缝交互,而无需考虑数据的格式、平台或数据库位置。可以说,DB2 9是一款划时代的数据库产品,它结合了关系型数据库和层次型数据库二者的特点,从而成为了混合型数据库——各种DBMS特性仍然存在的同时,能够非常好的支持XML数据。
基于以上两种特性的DB2 9对服务器选型来说明显是一个考验。首先,关系型数据库对计算并行性有较高要求,由于关系索引需要在各分支关系树中以尽可能快的速度进行,因此在并行计算的同时也对计算速度(主频等)有严格的要求——某一子进程返回结果造成的延迟会影响整个数据库的性能。另一方面,层次型数据库在逐层递归索引时,容易对服务器I/O造成巨大压力。以往DBA们在处理典型的层次型数据库时,通常采用增大服务器内存的方式,以保证一次性载入足够多的数据,以消减服务器内部I/O瓶颈,但处理器对内存的访问又成为掣肘的关键。
由于DB2更适用于企业级海量数据库的部署,因此上述两类对计算能力和内存响应的要求均只是性能层面的;真正困扰企业DBA的是如何保证数据库的可靠性和稳定性。分布式数据库配合庞大的集群固然可以保证业务的连续性,但其数据中心规模所带来的运营成本在今天也成了企业IT部门的心病——据IDC调查,每花1美元采购数据中心设备,就将增添8美元的运营成本(还不包括电费)。因此,如何能够在满足性能和稳定性的前提下,尽可能的减少DB2数据库硬件的假设成本,才是目前企业所面临的核心问题。
2、 兼顾计算与I/O性能 至强7500助力DB2
可以看出,DB2数据库对服务器的苛刻要求让DBA们难以选择合适的解决方案:既要并行计算能力强大,其主频(不能过低)还要能把保证单线程计算强度,此外还需要“内存敏感”,以使得I/O方面没有瓶颈。
让我们先来看看以往的解决方案:首先是RISC架构小型机。IBM Power系列处理器一贯以来都走着高主频路线,然而其Power 6系列处理器区区4个核心在并行计算上显得有些不足。而另一大RISC旗帜SPARC系列处理器,倒是走了多核心路线,但为了维持功耗而牺牲主频的做法使得SPARC处理器在“主频敏感”型计算中处于劣势。
按照传统的做法,DBA们只有承受昂贵的投资,接受“小型机集群”以弥补处理器造成的短板。而x86平台虽然价格便宜,但以往在并行计算性能以及可靠性上很难满足DBA的需求。直到去年至强5500系列处理器发布,凭借Nehalem架构强悍的并行能力和优异的内存控制一举在双路领域赢得DBA们的青睐,而今年发布的至强5600更是以32nm六核12线程的超强性能接替至强5500为双路至四路的数据库服务器提供了充分的升级空间。 #p#page_title#e#
但是在四路以上的大型企业级应用领域呢?3月底,英特尔发布了至强7500系列处理器,凭借8核16线程的强悍并行能力以及优秀的4通道DDR3内存控制器横扫x86平台——为八路及以上服务器带来“革命性”的性能提升。据官方数据表示,至强7500的内存带宽比至强7400高9倍,运行数据库程序时的性能则是后者的2.5倍,整数运算性能为至强7400的1.7倍,浮点运算性能则是至强7400的2.2倍。而且,由于使用了4个QPI接口,让服务器厂商无须借助其他控制器芯片,就可以扩展到8路服务器。
从前面分析的两大需求来看,至强7500的并行计算性能已然是目前x86平台最高产品,而单核计算性能毕竟和主频挂钩。至强7500的主频在2.26GHz,在笔者的DBA朋友中有质疑的,认为这主频并不高,比一些动辄3GHz以上的主频要低。但是要知道,至强7500有英特尔Turbo Boost睿频技术,可以根据工作负载,动态的提升主频10%左右——甚至可以关闭其他低负载内核,将单核主频提升至4GHz以上。笔者的DBA朋友在听到解释后也为之惊讶:“这也太聪明了吧。”英特尔所提倡的“智能计算”理念中的重要一环就是处理器能动态调节工作状态。
另一方面,对于DB2数据库的“内存敏感型”需求(比如前文提到的层次型数据库)来说,至强7500拥有无与伦比的优势——四通道DDR3内存的支持以及四条QPI带来的6.4GT/s极限内部互联速率。对于CPU来说,还有一个重要的I/O瓶颈,就是CPU内部的高速缓存。
简单说明一下,CPU读取数据时,先从高速缓存中索引,如果搜索到相关数据就可以很快返回给CPU计算。如果没有需要的数据,就会去内存中索引,也因此我们经常会认为加大系统内存,同时提高系统内存的带宽(也就是访问内存的速度)可以提升性能。那么,从本源上看,如果提升CPU缓存不是更有效么。是的,但是成本太高,而且CPU内寸土寸金,受制于工艺制程也不可能集成太多(上一代至强7400二级缓存9MB,三级缓存16MB),如今的至强7500凭借45纳米工艺集成了16MB二级缓存和24兆三级缓存,也就提升了CPU在内部索引数据的成功率,大幅度提升了I/O水平——这种效率是叠加的(请自行理解)。
可以看出,尽管DB2数据库对服务器要求很高,尤其是CPU方面,在计算性能和内存I/O方面对处理器要求可以说很苛刻。而至强7500通过睿频和超线程技术解决了DB2数据库对CPU主频和并行能力的双重要求,并以强悍的内存支持和超大缓存将系统I/O延伸到一个新的高度。最后要提一下DBA们关注的可靠性问题,至强7500首次引入了多达22条的RAS特性,所构建的MCA架构大大保证了数据库服务器系统的可靠性。
从成本上看,x86平台低廉的价格和强大的生态环境支持使企业在部署DB2数据库时的成本投资相对要少很多。而从运营维护上来看,至强7500的性能远超以往的x86处理器,可以实现更多路整合,也就变相节约了投入和电费。