彭彬,鄧榮偉,吳璣震,翁亞偉
(湖北汽車工業(yè)學院電氣與信息工程學院,湖北十堰442002)
Oracle RAC和TimesTen性能研究
彭彬,鄧榮偉,吳璣震,翁亞偉
(湖北汽車工業(yè)學院電氣與信息工程學院,湖北十堰442002)
依據(jù)吞吐率這個性能評價指標,基于TPC-C測試基準,使用Swingbench對Oracle的RAC和TimesTen產(chǎn)品進行了性能測試,并對測試數(shù)據(jù)進行統(tǒng)計學分析。結(jié)果表明:RAC的性能與RAC節(jié)點數(shù)之間有極高的相關性,不同復制技術下的TimesTen性能有顯著差異,其中基于讀寫分離的TimesTen有10倍單節(jié)結(jié)點RAC的吞吐率均值,性能最好。
性能;吞吐率;測試基準;TPC-C
在信息技術領域,常用響應時間和吞吐率來衡量一個系統(tǒng)或者組件的性能。2個概念本質(zhì)上是統(tǒng)一的,前者從客戶角度來評估性能,而后者從系統(tǒng)角度來評估性能。近年來,高性能這個詞在數(shù)據(jù)庫界被廣泛使用,各大數(shù)據(jù)庫廠商紛紛推出自己的所謂高性能產(chǎn)品,為用戶構(gòu)建企業(yè)級高性能數(shù)據(jù)庫應用提供了更多的產(chǎn)品支持,但同時也增加了用戶選擇產(chǎn)品的難度。因此研究高性能數(shù)據(jù)庫產(chǎn)品的性能特點,可為用戶的產(chǎn)品選擇和合理投資提供參考依據(jù),這對于構(gòu)建高性能數(shù)據(jù)庫應用有現(xiàn)實意義。
RAC和TimesTen是Oracle公司推出的2款高性能產(chǎn)品,用戶在構(gòu)建基于Oracle平臺的企業(yè)級高性能應用時,同樣也存在著產(chǎn)品選擇和投資決策問題:如選擇TimesTen還是多節(jié)點RAC,若選擇TimesTen又需采用哪種復制技術,選擇多節(jié)點RAC又需創(chuàng)建多少節(jié)點才合理。目前國內(nèi)尚無TimesTen的性能研究文獻,而關于RAC的性能研究都沒有關注用戶關心的RAC性能與RAC節(jié)點數(shù)關系的問題,如文獻[1]只是簡單比較了單、雙結(jié)點RAC的性能差異,文獻[2]只研究外存對RAC性能的影響。本文中將基于業(yè)界公認的測試基準,利用開源測試工具,從吞吐率的角度研究RAC性能與RAC節(jié)點數(shù)之間的關系以及不同復制技術下TimesTen的性能差異,為用戶構(gòu)建和升級高性能數(shù)據(jù)庫應用提供參考依據(jù)。
1.1 TPC-C測試基準
所謂測試基準(Benchmark)是一種用來測試計算機軟件或硬件某一方面性能的規(guī)范[3]。由于不同類型的數(shù)據(jù)庫業(yè)務所涉及的CRUD負載的分布密度有較大差別,所以需依據(jù)數(shù)據(jù)庫產(chǎn)品所支持的業(yè)務類型來建立其測試基準。
TPC(Transaction Processing Performance Council,事務處理性能委員會)是一個定義事務處理與數(shù)據(jù)庫性能測試基準標準規(guī)范的組織,其提供的TPC系列基準已經(jīng)成為軟/硬件廠商認可的工業(yè)基準。TPC-C是TPC于1992年發(fā)布的面向聯(lián)機事務處理型數(shù)據(jù)庫產(chǎn)品的性能測試基準[4],該基準模擬一個批發(fā)公司的在線處理業(yè)務,從事務支持能力、執(zhí)行時間、數(shù)據(jù)及其訪問方式等方面綜合測試一個數(shù)據(jù)庫產(chǎn)品的性能[5]。
TPC-C測試基準模擬的批發(fā)公司擁有若干個倉庫,每個倉庫至多為相鄰的10個街區(qū)供貨,1個街區(qū)至多服務3000個客戶,每個倉庫維護100,000種商品的庫存;當業(yè)務擴展到新的街區(qū)時,公司可以添加新的倉庫,如圖1所示。批發(fā)業(yè)務涉及Warehouse、District、Customer、History(客戶定貨歷史)、Order、Order-Line(訂單明細)、New-Order、Item、Stock(庫存)等9個實體,如圖2所示。
圖1 TPC-C模型
圖2 TPC-C實體及其規(guī)模
TPC-C定義了不同CRUD分布的5種業(yè)務:1)New-Order(下單),代表執(zhí)行頻率高且響應時間短的寫事務,限定有1%的事務會回滾。2)Payment(付款),代表執(zhí)行頻率高且響應時間短的寫事務,對查詢關鍵字有限定。3)Order-Status(訂單查詢),代表執(zhí)行頻率低且響應時間短的只讀事務。4)Delivery(發(fā)貨),一次處理訂貨時間最長的10個訂單,代表執(zhí)行頻率低且響應時間長的讀寫型批事務。5)Stock-Level(庫存報警),查詢最近售出的庫存在一定數(shù)量以下的所有商品,代表執(zhí)行頻率低且響應時間長、一致性要求低的只讀事務。
5種業(yè)務的約束如表1所示。TPC-C用每分鐘處理的最大訂單數(shù)作為系統(tǒng)性能的衡量指標,每個訂單都涉及上述5種業(yè)務。顯然,TPC-C是用業(yè)務吞吐率來衡量系統(tǒng)的性能。
表1 業(yè)務約束
1.2 Swingbench簡介
Swingbench是一款免費的Oracle測試工具,配有多個測試模塊,其中的Order Entry模塊支持TPC-C測試基準[6],性能計算用式(1)表示:
式中:U為并發(fā)用戶數(shù);N為平均每個用戶每分鐘發(fā)出的業(yè)務請求數(shù);M1、M2、M3分別為用戶業(yè)務請求中更新、查詢和統(tǒng)計3種業(yè)務所占的比例;T1、T2、T3分別為平均每個更新、查詢、統(tǒng)計業(yè)務所產(chǎn)生的事務數(shù);O為一天內(nèi)高峰值處理量與平均值的倍數(shù);A為一個工程經(jīng)驗系數(shù),B為服務器保留的冗余系數(shù)。
為滿足TPC-C測試基準,測試前需要設置上述參數(shù),本文中采用系統(tǒng)缺省設置:
2.1 RAC簡介
Oracle RAC(Real Application Cluster,真正應用集群)是Oracle公司從Oracle9i開始提供的數(shù)據(jù)庫產(chǎn)品,它可在多臺計算機上安裝共享同一個存儲設備的數(shù)據(jù)庫實例,每一個安裝了數(shù)據(jù)庫實例的數(shù)據(jù)庫服務器稱為RAC的一個節(jié)點,這些節(jié)點能并行訪問存儲設備[7],如圖3所示。
圖3 Oracle RAC體系結(jié)構(gòu)
2.2 測試環(huán)境配置
本文中使用Oracle 11.2配置RAC測試環(huán)境,節(jié)點安裝Linux操作系統(tǒng),相關配置參數(shù)見表2。
表2 RAC測試環(huán)境配置
2.3 測試數(shù)據(jù)及分析
本文中依次配置了1~5個節(jié)點的RAC環(huán)境,每種RAC環(huán)境均進行3次測試,測試數(shù)據(jù)見表3。
表3 RAC測試數(shù)據(jù) tpmC
表4結(jié)果說明平均吞吐率與RAC節(jié)點數(shù)之間存在極高的相關性,圖4也反映了這種關系。但由于相關系數(shù)不為1,故二者之間不是完全的線性關系,圖4中平均吞吐率后期增勢逐漸平緩也驗證了這一點。這就說明RAC的優(yōu)勢可能側(cè)重于可以提供(N-1)的宕機容災能力,不能單純通過增加RAC節(jié)點數(shù)來追求系統(tǒng)性能的快速提升。
表4 平均吞吐率與節(jié)點數(shù)的相關性分析
圖4 RAC節(jié)點數(shù)與平均吞吐率關系曲線
3.1 TimesTen簡介
TimesTen全稱為Oracle TimesTen In-Memory Database,是一內(nèi)存優(yōu)化的關系數(shù)據(jù)庫,其數(shù)據(jù)駐留在內(nèi)存,可以作為單獨的數(shù)據(jù)庫使用,也可作為高速緩存或者嵌入式數(shù)據(jù)庫部署在應用層,用戶可以通過JDBC、ODBC、ODP.NET、OCI、PRO*C/C++使用標準的SQL和PL/SQL編程接口訪問[8],如圖5所示。為保證TimesTen的可用性,一般在系統(tǒng)中配置2個TimesTen節(jié)點,節(jié)點之間選用負載均衡、讀寫分離或者雙機熱備份等技術作數(shù)據(jù)實時復制。
圖5 TimesTen結(jié)構(gòu)
3.2 測試數(shù)據(jù)及分析
本文中使用TimesTen 11.2搭建TimesTen測試環(huán)境,配置了2個TimesTen節(jié)點,主要測試不同數(shù)據(jù)實時復制技術下的TimesTen性能特點。測試數(shù)據(jù)見表5,統(tǒng)計分析見表6。
表5 TimesTen測試數(shù)據(jù) tpmC
表6 單因素方差分析(α=0.05)
由于P值0.0000115遠小于置信度α,因此從統(tǒng)計學意義看,3種復制方式下的TimesTen性能有著顯著差異。由圖6可以看出,基于讀寫分離技術的TimesTen性能最好,基于雙機熱備技術的Times Ten性能最差,基于負載均衡技術的TimesTen性能居中。究其原因,雙機熱備技術中只有一臺服務器對外提供服務,故性能最低;負載均衡技術依靠網(wǎng)絡完成緩存融合,性能受網(wǎng)絡負載的影響大;而讀寫分離技術由于只借助網(wǎng)絡完成復制,受網(wǎng)絡負載影響小,故性能最高。
此外,基于讀寫分離復制技術的TimesTen平均吞吐率幾乎是單節(jié)點RAC的10倍(圖6),由此說明TimesTen是提升用戶系統(tǒng)性能的首選產(chǎn)品。
圖6 TimesTen與單節(jié)點RAC平均吞吐率對比
RAC和TimesTen作為Oracle的高性能產(chǎn)品,都能提高系統(tǒng)性能,但測試數(shù)據(jù)表明TimesTen更具優(yōu)勢,是追求性能提升的首選產(chǎn)品。
可以預測,把RAC與TimesTen集成(圖7),為使用頻率較高的小型應用提供一個雙節(jié)點、讀寫分離的TimesTen,對于使用頻率較小的大型復雜應用,直接與Oracle RAC連接,應該是一個既具有高性能,又具備宕機容災能力的組合系統(tǒng)。
圖7 TimesTen與RAC的集成
[1]周曉丹,馮少榮,薛永生.Oracle 10g RAC核心技術研究與分析[J].計算機工程,2007(4):53-55.
[2]黃蘇雅.ORACLE 11G RAC OLTP海量數(shù)據(jù)庫的存儲架構(gòu)設計及性能分析[D].上海:上海交通大學,2010.
[3]于戈,王欣暉,王國仁,等.TPC-C測試標準及其在面向?qū)ο髷?shù)據(jù)庫上的設計與實現(xiàn)[J].計算機科學,1998
(3):57-60.
[4]馮丹青,周海鷹,左德承,等.基于TPC-C基準的高端容錯機評測系統(tǒng)的研究[J].計算機研究與發(fā)展,2010(S1):15-21.
[5]Transaction Processing Performance Council.TPC BENC HMARK?C-Standard Specification,Revision 5.11[EB/ OL].[2014-10-20].http://www.tpc.org/tpcc/spec/tpcc_current.pdf.
[6]Dominic Giles.Swingbench[EB/OL].[2014-10-20].http://www.dominicgiles.com/Swingbench.pdf.
[7]Prusinski,Ben Jaffer Hussain,Syed.Oracle 11g R1/R2 Real Application Clusters Essentials[M].Olton,Birmingham,GBR:Packt Publishing,2011:22-23.
[8] Oracle.Oracle TimesTen Application-Tier Database Cache Introduction,11g Release 2(11.2.2)[EB/OL].[2014-10-20].http://docs.oracle.com/cd/E21901_01/doc/timesten.1122/21631.pdf.
Research on Performance of Oracle RAC and TimesTen
Peng Bin,Deng Rongwei,Wu Jizhen,Weng Yawei
(School of Electrical&Information Engineering,Hubei University of Automotive Technology,Shiyan 442002,China)
According to the throughput rate,based on TPC-C benchmark,the performance of Oracle RAC and TimesTen was tested with Swingbench,and the test data was handled with statistical analysis.The results show that the performance of RAC has high correlation with RAC nodes,TimesTen’s performance under different replication technology makes a significant difference,and TimesTen with write read separation replication technology has 10 times the throughput rate of the single node RAC and has the best performance.
performance;throughput rate;Benchmark;TPC-C
TP311.13
A
1008-5483(2015)01-0056-04
10.3969/j.issn.1008-5483.2015.01.012
2014-10-20
湖北汽車工業(yè)學院大學生創(chuàng)新訓練項目(SJ201439)
彭彬(1971-),男,湖北十堰人,副教授,從事Web工程、網(wǎng)絡與數(shù)據(jù)庫方面的研究。E-mail:pengbinhust@163.com