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