摘 要: 闡述了一種基于應(yīng)用性能表現(xiàn)的通用基礎(chǔ)軟件選型的方法。介紹了基于應(yīng)用系統(tǒng)性能為基準,對數(shù)據(jù)庫和應(yīng)用中間件進行選型比對。
關(guān)鍵詞: 應(yīng)用系統(tǒng);數(shù)據(jù)庫;應(yīng)用中間件;選型
傳統(tǒng)的數(shù)據(jù)庫選型和應(yīng)用中間件選型測試通常是基于Benchmark的一些基準測試工具。這些測試工具集通常都是第三方非盈利組織提供的,目前常用的基準測試工具集有TPC[1]、SPEC[2]、LINKPACK、EISPACK、LAPACK、NPB、HPCC、IOzone、LMbench等。
TPC和SPEC是數(shù)據(jù)庫和應(yīng)用中間件最常用的測試基準工具,而其中的TPC-C[3]和SPECjserver2004[4]通常被選擇用于數(shù)據(jù)庫和Java應(yīng)用服務(wù)器的性能基準測試工具,這兩個基準測試結(jié)果在國際上也有很好的認同。這些結(jié)果能客觀反映數(shù)據(jù)庫和應(yīng)用中間件本身的性能情況。
但是上述基準測試都是基于仿真業(yè)務(wù),對于某個特定的應(yīng)用系統(tǒng),基準結(jié)果往往和在特定應(yīng)用系統(tǒng)中的表現(xiàn)有很大差異。所以本文探求一種基于真實業(yè)務(wù)應(yīng)用系統(tǒng)的業(yè)務(wù)模型作為基準,對不同數(shù)據(jù)庫和應(yīng)用中間件進行選型測試,通過其在真實業(yè)務(wù)應(yīng)用系統(tǒng)的表現(xiàn)更客觀地反映針對該特定應(yīng)用系統(tǒng)、數(shù)據(jù)庫和應(yīng)用中間件達到的最佳能效比。
1 傳統(tǒng)Benchmark測試的問題
傳統(tǒng)的基于第三方非盈利機構(gòu)的Benchmark測試工具集測試是基于一個模擬的業(yè)務(wù)模型進行測試。以最常見的TPC-C測試為例,關(guān)于TPC-C的基準規(guī)范業(yè)務(wù)模式,此規(guī)范描述的是一個大型的商品批發(fā)銷售公司,它擁有若干個分布在不同區(qū)域的商品倉庫。當(dāng)業(yè)務(wù)擴展的時候,公司將添加新的倉庫。每個倉庫負責(zé)為10個銷售點供貨,其中每個銷售點為3 000個客戶提供服務(wù)。每個客戶提交的訂單中,平均每個訂單有10項產(chǎn)品,所有訂單中約1%的產(chǎn)品在其直接所屬的倉庫中沒有存貨,必須由其他區(qū)域的倉庫來供貨。同時,每個倉庫都要維護公司銷售的100 000種商品的庫存記錄。但是對于這個基準,TPC不給出基準程序的代碼,只給出基準程序的標(biāo)準規(guī)范。即允許任何廠家或其他測試者構(gòu)造出符合自己硬件或者軟件環(huán)境的被測應(yīng)用,這個被測試的應(yīng)用只要符合這個規(guī)范就可以。
TPC-C測試的結(jié)果主要有兩個指標(biāo),即流量指標(biāo)(Throughput,簡稱tpmC)和性價比(Price/Performance,簡稱Price/tpmC)。流量指標(biāo)值越大,說明系統(tǒng)的聯(lián)機事務(wù)處理能力越高。性價比測試系統(tǒng)的整體價格與流量指標(biāo)的比值,在獲得相同的tpmC值的情況下,價格越低越好。
TPC-C的指標(biāo)僅表明當(dāng)前被測試環(huán)境作為一個有機整體,處理符合TPC-C規(guī)范、模擬OLTP的商品批發(fā)銷售公司應(yīng)用的性能情況。不能離開這個整體去判讀TPC-C數(shù)據(jù)。這個有機整體包含硬件系統(tǒng),如主機設(shè)備、網(wǎng)絡(luò)設(shè)備、存儲設(shè)備;軟件系統(tǒng)如數(shù)據(jù)庫、應(yīng)用軟件、廠商自己開發(fā)的TPC-C模型;以及技術(shù)支持服務(wù),如架構(gòu)設(shè)計優(yōu)化、程序優(yōu)化、參數(shù)優(yōu)化等。
用戶實際的應(yīng)用系統(tǒng)通常與軟件廠商測試時的TPCC模型有差異(如業(yè)務(wù)邏輯、使用習(xí)慣、數(shù)據(jù)量等等方面)。所以客戶應(yīng)用系統(tǒng)的性能即使部署在廠商當(dāng)時測試TPCC應(yīng)用的環(huán)境上,TPPC值也會有差異的。
因此僅靠TPCC值進行軟件選型是不充分、不全面的。
2 基于真實應(yīng)用系統(tǒng)的選型測試
傳統(tǒng)基于Benchmark測試結(jié)果的選型測試,由于測試模型和真實業(yè)務(wù)有區(qū)別,選型測試的結(jié)果往往不能保證所選數(shù)據(jù)庫或者中間件的表現(xiàn)與測試結(jié)果相符。業(yè)務(wù)模型的差異因子是結(jié)果偏差的主要影響因子。區(qū)別于傳統(tǒng)的Benchmark測試,基于真實應(yīng)用系統(tǒng)的選型測試模型是真實的業(yè)務(wù)模型,從業(yè)務(wù)模型的真實性上避免了業(yè)務(wù)模型差異產(chǎn)生的比對選型誤差。該方法的思想是在相同的測試基準下,針對相同的業(yè)務(wù)應(yīng)用模型,進行相同測試的性能測試,通過時間特性和資源利用性兩個方面進行選型評價。
3 選型測試案例說明
通過一個實際的業(yè)務(wù)系統(tǒng)選型測試,介紹了基于應(yīng)用性能表現(xiàn)進行通用基礎(chǔ)軟件選型的實踐。選型委托方是某機構(gòu)的核心業(yè)務(wù)軟件,該系統(tǒng)完全基于J2EE規(guī)范開發(fā)的B/S架構(gòu)的應(yīng)用系統(tǒng),數(shù)據(jù)庫符合美國國家標(biāo)準學(xué)會(ANSI)SQL 2003的關(guān)系型數(shù)據(jù)庫。根據(jù)上述基本要求,本次選型測試涉及5個中間件和4種數(shù)據(jù)庫。選型組合矩陣關(guān)系如表1所示。
根據(jù)上述組合,分別采用相同的性能測試腳本進行相同場景設(shè)置的綜合場景測試,測試點包含了系統(tǒng)的4個典型操作功能點,場景持續(xù)運行時間為2 h。為嚴格保證測試的基準一致性,確保測試相對公平公正,基準一致性應(yīng)包含5個部分內(nèi)容要求:
?。?)操作系統(tǒng)基準一致性要求:數(shù)據(jù)庫服務(wù)器操作系統(tǒng)為AIX 5.3.0.8,應(yīng)用數(shù)據(jù)庫服務(wù)器操作系統(tǒng)為Redhat AS 5.4 64 bit kernel2.6.1.8_164.el5,負載均衡服務(wù)器操作系統(tǒng)為Redhat AS 5.4 64 bit kernel2.6.1.8_164.el5;
?。?)其他相關(guān)軟件版本一致;
?。?)硬件環(huán)境一致;
?。?)測試策略與測試壓力的一致性:測試中執(zhí)行相同的測試策略,對腳本和場景運行的設(shè)置保持一致;
?。?)數(shù)據(jù)一致性要求:測試環(huán)境的數(shù)據(jù)容量保持一致,數(shù)據(jù)庫的數(shù)據(jù)記錄數(shù)量和數(shù)據(jù)內(nèi)容保持一致。
3.1 效率評價模型說明
以貼近系統(tǒng)實際使用情況為選擇依據(jù),本次測試的綜合場景測試最貼近用戶的真實使用情況。所以本評價模型的數(shù)據(jù)基礎(chǔ)來源于綜合場景測試的測試結(jié)果數(shù)據(jù)。評價模型包括時間特性和資源利用性,具體計算權(quán)值可以根據(jù)業(yè)務(wù)需要進行相應(yīng)調(diào)整,本次評價權(quán)值僅供參考。評價模型說明如圖1所示,評分說明如表2所示。
?。?)效率評價總得分=時間特性總得分×0.6+資料利用性得分×0.4
?。?)時間特性總體得分計算說明:
時間特性得分=(功能點1×0.125+功能點2×0.125+功能點3×0.125+功能點4×0.125)+總體吞吐量得分×0.5
?。?)資源利用性得分計算說明:
資源利用性得分=(數(shù)據(jù)庫CPU占用得分+應(yīng)用服務(wù)器CPU占用得分)/2
3.2 選型評價結(jié)果
根據(jù)8個環(huán)境測試的詳細結(jié)果,依據(jù)上述評價模型和評分說明進行總體的選型評價,得分如圖2所示。
依據(jù)上述評價結(jié)果,編號4、5、6、7的得分高于95分,可以結(jié)合采購成本綜合考慮最終的軟件選型。
本文介紹了一種基于應(yīng)用性能表現(xiàn)的通用基礎(chǔ)軟件選型方法,此方法基于真實的業(yè)務(wù)應(yīng)用模型,采用相同的測試約束和統(tǒng)一的評價模型,相對于傳統(tǒng)基于基準測試工具進行選型更具有針對性,是對選型測試的一種方法補充。
參考文獻
[1] TPC Benchmark Testing[EB/OL]. [2012-12-10]. http://www.tpc.org/information/benchmarks.asp.
[2] SPEC Standard Performance Evaluation[EB/OL]. [2012-12-10]. http://www.spec.org.
[3] TPC-C Benchmark Testing[EB/OL]. [2012-12-20].http://www.tpc.org/tpcc.
[4] SPECjAppServer2004[EB/OL]. [2012-12-20].http://www.spec.org/jAppServer2004.