以世博為例 DB2數(shù)據(jù)庫(kù)服務(wù)器選型指導(dǎo)
2010年上海世博會(huì)即將于5月正式揭開(kāi)它的神秘面紗,近期IT168服務(wù)器頻道從世博會(huì)的信息化通氣會(huì)上了解到,負(fù)責(zé)世博會(huì)預(yù)約服務(wù)管理系統(tǒng)的是長(zhǎng)江計(jì)算機(jī)(集團(tuán))公司。該公司以Windows Server操作系統(tǒng)+DB2數(shù)據(jù)庫(kù)作平臺(tái),力求穩(wěn)妥高效的解決世博會(huì)開(kāi)幕前龐大的票務(wù)和各種預(yù)約服務(wù)的IT系統(tǒng)壓力。
本期我們就DB2數(shù)據(jù)庫(kù)服務(wù)器的選型,從數(shù)據(jù)處理能力、可靠性和投資成本幾個(gè)方面來(lái)分析DB2數(shù)據(jù)庫(kù)對(duì)服務(wù)器的具體要求,并結(jié)合即將到來(lái)的世博會(huì)案例,揭秘其選型的關(guān)鍵所在。
1、 從DB2 第9個(gè)版本的二元特性看服務(wù)器需求
DB2數(shù)據(jù)庫(kù)是IBM研制的一種關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng),憑借優(yōu)秀的可伸縮性、良好的大規(guī)模并行特性廣泛應(yīng)用于大型數(shù)據(jù)庫(kù)系統(tǒng)。由于采用了數(shù)據(jù)分級(jí)技術(shù),能夠使集群內(nèi)的數(shù)據(jù)很方便的下載到本地LAN數(shù)據(jù)庫(kù)服務(wù)器,銜接了客戶機(jī)/服務(wù)器用戶對(duì)數(shù)據(jù)庫(kù)集群的訪問(wèn),使數(shù)據(jù)庫(kù)本地化和遠(yuǎn)程連接盡可能的透明。也因此,從大型集群到單用戶環(huán)境,包括Linux、OS/2和Windows平臺(tái),DB2都有一席之地。
從DBA的角度來(lái)看,DB2定位于高層次的數(shù)據(jù)利用性、完整性、安全性和可恢復(fù)性。從小規(guī)模到大規(guī)模的數(shù)據(jù)庫(kù)應(yīng)用均可以流暢的運(yùn)行在DB2上——這一點(diǎn)需要特別說(shuō)明,傳統(tǒng)SQL數(shù)據(jù)庫(kù)在并行調(diào)用到一定規(guī)模之后,數(shù)據(jù)庫(kù)性能會(huì)有較大的下滑——而DB2恰恰在設(shè)計(jì)之初就是為了解決這類(lèi)問(wèn)題。
2006年IBM發(fā)布了DB2的第九個(gè)版本,其最大的特點(diǎn)就是率先實(shí)現(xiàn)了可擴(kuò)展標(biāo)記語(yǔ)言(XML)和關(guān)系數(shù)據(jù)間的無(wú)縫交互,而無(wú)需考慮數(shù)據(jù)的格式、平臺(tái)或數(shù)據(jù)庫(kù)位置。可以說(shuō),DB2 9是一款劃時(shí)代的數(shù)據(jù)庫(kù)產(chǎn)品,它結(jié)合了關(guān)系型數(shù)據(jù)庫(kù)和層次型數(shù)據(jù)庫(kù)二者的特點(diǎn),從而成為了混合型數(shù)據(jù)庫(kù)——各種DBMS特性仍然存在的同時(shí),能夠非常好的支持XML數(shù)據(jù)。
基于以上兩種特性的DB2 9對(duì)服務(wù)器選型來(lái)說(shuō)明顯是一個(gè)考驗(yàn)。首先,關(guān)系型數(shù)據(jù)庫(kù)對(duì)計(jì)算并行性有較高要求,由于關(guān)系索引需要在各分支關(guān)系樹(shù)中以盡可能快的速度進(jìn)行,因此在并行計(jì)算的同時(shí)也對(duì)計(jì)算速度(主頻等)有嚴(yán)格的要求——某一子進(jìn)程返回結(jié)果造成的延遲會(huì)影響整個(gè)數(shù)據(jù)庫(kù)的性能。另一方面,層次型數(shù)據(jù)庫(kù)在逐層遞歸索引時(shí),容易對(duì)服務(wù)器I/O造成巨大壓力。以往DBA們?cè)谔幚淼湫偷膶哟涡蛿?shù)據(jù)庫(kù)時(shí),通常采用增大服務(wù)器內(nèi)存的方式,以保證一次性載入足夠多的數(shù)據(jù),以消減服務(wù)器內(nèi)部I/O瓶頸,但處理器對(duì)內(nèi)存的訪問(wèn)又成為掣肘的關(guān)鍵。
由于DB2更適用于企業(yè)級(jí)海量數(shù)據(jù)庫(kù)的部署,因此上述兩類(lèi)對(duì)計(jì)算能力和內(nèi)存響應(yīng)的要求均只是性能層面的;真正困擾企業(yè)DBA的是如何保證數(shù)據(jù)庫(kù)的可靠性和穩(wěn)定性。分布式數(shù)據(jù)庫(kù)配合龐大的集群固然可以保證業(yè)務(wù)的連續(xù)性,但其數(shù)據(jù)中心規(guī)模所帶來(lái)的運(yùn)營(yíng)成本在今天也成了企業(yè)IT部門(mén)的心病——據(jù)IDC調(diào)查,每花1美元采購(gòu)數(shù)據(jù)中心設(shè)備,就將增添8美元的運(yùn)營(yíng)成本(還不包括電費(fèi))。因此,如何能夠在滿足性能和穩(wěn)定性的前提下,盡可能的減少DB2數(shù)據(jù)庫(kù)硬件的假設(shè)成本,才是目前企業(yè)所面臨的核心問(wèn)題。
2、 兼顧計(jì)算與I/O性能 至強(qiáng)7500助力DB2
可以看出,DB2數(shù)據(jù)庫(kù)對(duì)服務(wù)器的苛刻要求讓DBA們難以選擇合適的解決方案:既要并行計(jì)算能力強(qiáng)大,其主頻(不能過(guò)低)還要能把保證單線程計(jì)算強(qiáng)度,此外還需要“內(nèi)存敏感”,以使得I/O方面沒(méi)有瓶頸。
讓我們先來(lái)看看以往的解決方案:首先是RISC架構(gòu)小型機(jī)。IBM Power系列處理器一貫以來(lái)都走著高主頻路線,然而其Power 6系列處理器區(qū)區(qū)4個(gè)核心在并行計(jì)算上顯得有些不足。而另一大RISC旗幟SPARC系列處理器,倒是走了多核心路線,但為了維持功耗而犧牲主頻的做法使得SPARC處理器在“主頻敏感”型計(jì)算中處于劣勢(shì)。
按照傳統(tǒng)的做法,DBA們只有承受昂貴的投資,接受“小型機(jī)集群”以彌補(bǔ)處理器造成的短板。而x86平臺(tái)雖然價(jià)格便宜,但以往在并行計(jì)算性能以及可靠性上很難滿足DBA的需求。直到去年至強(qiáng)5500系列處理器發(fā)布,憑借Nehalem架構(gòu)強(qiáng)悍的并行能力和優(yōu)異的內(nèi)存控制一舉在雙路領(lǐng)域贏得DBA們的青睞,而今年發(fā)布的至強(qiáng)5600更是以32nm六核12線程的超強(qiáng)性能接替至強(qiáng)5500為雙路至四路的數(shù)據(jù)庫(kù)服務(wù)器提供了充分的升級(jí)空間。 #p#page_title#e#
但是在四路以上的大型企業(yè)級(jí)應(yīng)用領(lǐng)域呢?3月底,英特爾發(fā)布了至強(qiáng)7500系列處理器,憑借8核16線程的強(qiáng)悍并行能力以及優(yōu)秀的4通道DDR3內(nèi)存控制器橫掃x86平臺(tái)——為八路及以上服務(wù)器帶來(lái)“革命性”的性能提升。據(jù)官方數(shù)據(jù)表示,至強(qiáng)7500的內(nèi)存帶寬比至強(qiáng)7400高9倍,運(yùn)行數(shù)據(jù)庫(kù)程序時(shí)的性能則是后者的2.5倍,整數(shù)運(yùn)算性能為至強(qiáng)7400的1.7倍,浮點(diǎn)運(yùn)算性能則是至強(qiáng)7400的2.2倍。而且,由于使用了4個(gè)QPI接口,讓服務(wù)器廠商無(wú)須借助其他控制器芯片,就可以擴(kuò)展到8路服務(wù)器。
從前面分析的兩大需求來(lái)看,至強(qiáng)7500的并行計(jì)算性能已然是目前x86平臺(tái)最高產(chǎn)品,而單核計(jì)算性能畢竟和主頻掛鉤。至強(qiáng)7500的主頻在2.26GHz,在筆者的DBA朋友中有質(zhì)疑的,認(rèn)為這主頻并不高,比一些動(dòng)輒3GHz以上的主頻要低。但是要知道,至強(qiáng)7500有英特爾Turbo Boost睿頻技術(shù),可以根據(jù)工作負(fù)載,動(dòng)態(tài)的提升主頻10%左右——甚至可以關(guān)閉其他低負(fù)載內(nèi)核,將單核主頻提升至4GHz以上。筆者的DBA朋友在聽(tīng)到解釋后也為之驚訝:“這也太聰明了吧。”英特爾所提倡的“智能計(jì)算”理念中的重要一環(huán)就是處理器能動(dòng)態(tài)調(diào)節(jié)工作狀態(tài)。
另一方面,對(duì)于DB2數(shù)據(jù)庫(kù)的“內(nèi)存敏感型”需求(比如前文提到的層次型數(shù)據(jù)庫(kù))來(lái)說(shuō),至強(qiáng)7500擁有無(wú)與倫比的優(yōu)勢(shì)——四通道DDR3內(nèi)存的支持以及四條QPI帶來(lái)的6.4GT/s極限內(nèi)部互聯(lián)速率。對(duì)于CPU來(lái)說(shuō),還有一個(gè)重要的I/O瓶頸,就是CPU內(nèi)部的高速緩存。
簡(jiǎn)單說(shuō)明一下,CPU讀取數(shù)據(jù)時(shí),先從高速緩存中索引,如果搜索到相關(guān)數(shù)據(jù)就可以很快返回給CPU計(jì)算。如果沒(méi)有需要的數(shù)據(jù),就會(huì)去內(nèi)存中索引,也因此我們經(jīng)常會(huì)認(rèn)為加大系統(tǒng)內(nèi)存,同時(shí)提高系統(tǒng)內(nèi)存的帶寬(也就是訪問(wèn)內(nèi)存的速度)可以提升性能。那么,從本源上看,如果提升CPU緩存不是更有效么。是的,但是成本太高,而且CPU內(nèi)寸土寸金,受制于工藝制程也不可能集成太多(上一代至強(qiáng)7400二級(jí)緩存9MB,三級(jí)緩存16MB),如今的至強(qiáng)7500憑借45納米工藝集成了16MB二級(jí)緩存和24兆三級(jí)緩存,也就提升了CPU在內(nèi)部索引數(shù)據(jù)的成功率,大幅度提升了I/O水平——這種效率是疊加的(請(qǐng)自行理解)。
可以看出,盡管DB2數(shù)據(jù)庫(kù)對(duì)服務(wù)器要求很高,尤其是CPU方面,在計(jì)算性能和內(nèi)存I/O方面對(duì)處理器要求可以說(shuō)很苛刻。而至強(qiáng)7500通過(guò)睿頻和超線程技術(shù)解決了DB2數(shù)據(jù)庫(kù)對(duì)CPU主頻和并行能力的雙重要求,并以強(qiáng)悍的內(nèi)存支持和超大緩存將系統(tǒng)I/O延伸到一個(gè)新的高度。最后要提一下DBA們關(guān)注的可靠性問(wèn)題,至強(qiáng)7500首次引入了多達(dá)22條的RAS特性,所構(gòu)建的MCA架構(gòu)大大保證了數(shù)據(jù)庫(kù)服務(wù)器系統(tǒng)的可靠性。
從成本上看,x86平臺(tái)低廉的價(jià)格和強(qiáng)大的生態(tài)環(huán)境支持使企業(yè)在部署DB2數(shù)據(jù)庫(kù)時(shí)的成本投資相對(duì)要少很多。而從運(yùn)營(yíng)維護(hù)上來(lái)看,至強(qiáng)7500的性能遠(yuǎn)超以往的x86處理器,可以實(shí)現(xiàn)更多路整合,也就變相節(jié)約了投入和電費(fèi)。