一個(gè)典型的SPECweb2005實(shí)驗(yàn)環(huán)境

TPC-W衡量電子商務(wù)環(huán)境

TPC-W是衡量服務(wù)器在電子商務(wù)環(huán)境中性能的另一項(xiàng)重要基準(zhǔn)測(cè)試。

TPC-W表現(xiàn)了在一個(gè)站點(diǎn)上多個(gè)服務(wù)器和WEB應(yīng)用聯(lián)合工作,服務(wù)于仿真瀏覽器的請(qǐng)求,它關(guān)注的焦點(diǎn)是整個(gè)系統(tǒng)。

在一個(gè)TPC-W的測(cè)試中,主要的測(cè)試項(xiàng)目是每秒鐘內(nèi)完成的網(wǎng)絡(luò)信息交換數(shù)量(WIPS),每WIPS的花費(fèi)($/WIPS)以及下訂單時(shí)的網(wǎng)絡(luò)交換數(shù)量。另外在這些測(cè)試項(xiàng)目中,測(cè)試者必須提供所有主要子系統(tǒng)的性能參數(shù),諸如處理器、內(nèi)存、磁盤和網(wǎng)絡(luò)等所有服務(wù)器審計(jì)運(yùn)行中所需要的項(xiàng)目。

TPC-W的負(fù)載包含針對(duì)不同網(wǎng)頁(yè)的處理,每一個(gè)網(wǎng)頁(yè)都是在電子商務(wù)中必要的操作。例如,用戶可以測(cè)試使用任何瀏覽器進(jìn)行的主頁(yè)瀏覽、查詢、觀看查詢結(jié)果、購(gòu)買產(chǎn)品、確認(rèn)訂單、檢查訂單狀況,甚至于執(zhí)行管理操作。

TPC-W提供一個(gè)從系統(tǒng)角度出發(fā)的電子商務(wù)解決方案,全面地體現(xiàn)獨(dú)立操作系統(tǒng)性能。盡管有些方面還不完善,但是TPC-W確實(shí)為最終用戶提供了許多平時(shí)得不到的原始數(shù)據(jù)和信息。

第四節(jié):Java應(yīng)用服務(wù)器的基準(zhǔn)

Java從誕生的時(shí)刻,就因?yàn)樗姆奖阈远⒍吮囟餍小?/p>

最近,一項(xiàng)全新的SPECjAppServer2004基準(zhǔn)測(cè)試性能世界記錄誕生了–配置了兩顆四核核英特爾®至強(qiáng)®處理器、裝備Linux操作系統(tǒng)的浪潮英信NF280D(Inspur NF280D)服務(wù)器,在運(yùn)行帶有BEA JRockit 5.0 JVM的BEA WebLogic Server 10時(shí),創(chuàng)下了同類配置的SPECJAppServer2004基準(zhǔn)測(cè)試世界紀(jì)錄,系統(tǒng)處理能力達(dá)到了1538.65JOPS@Standard(每秒處理事務(wù)數(shù))。

這個(gè)新的基準(zhǔn)測(cè)試性能,對(duì)一個(gè)服務(wù)器來說,到底意味著什么?對(duì)企業(yè)又有什么意義呢?這先得從頭說起。

今天,許多應(yīng)用軟件都是用Java編寫的,它的優(yōu)勢(shì)很明顯,就是經(jīng)過一次編寫后可運(yùn)行在不同的操作系統(tǒng)平臺(tái)上,有很大的靈活性。但是,不同的Java版本運(yùn)行在不同的硬件平臺(tái)上,會(huì)反映出不同的性能。如何判定不同硬件平臺(tái)運(yùn)行Java程序的效率,是Java使用者所普遍關(guān)心的問題,而SPEC jbb2004就是一項(xiàng)被廣泛采用的Java虛擬機(jī)性能基準(zhǔn)測(cè)試,它的前身是SPEC jbb2000。

SPECjbb2004是SPEC委員會(huì)制定的一套Java基準(zhǔn)測(cè)試程序,用于測(cè)試Java服務(wù)器性能,但是并不考察到網(wǎng)絡(luò)、磁盤I/O、和圖形處理能力。SPECjbb2004模擬了三層客戶/服務(wù)器模型結(jié)構(gòu),所有的三層結(jié)構(gòu)都在一個(gè)JVM(Java虛擬機(jī))內(nèi)實(shí)現(xiàn)。

這三層結(jié)構(gòu)模擬了一個(gè)典型的商業(yè)應(yīng)用結(jié)構(gòu):第一層是用戶(客戶端輸入);第二層是商業(yè)應(yīng)用邏輯;第三層是數(shù)據(jù)庫(kù)。在SPECjbb2004里,第一層是用進(jìn)程或線程模擬客戶系統(tǒng)的隨機(jī)輸入;由Java類和Java對(duì)象形成的Btree模擬第三層的數(shù)據(jù)庫(kù);在第二層里是對(duì)Btree數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行操作,其機(jī)構(gòu)圖如下:

SPECjbb2004基準(zhǔn)測(cè)試借用了TPC-C基準(zhǔn)測(cè)試的概念、輸入產(chǎn)生、和交易模式。只不過,SPECjbb2004用Java類取代數(shù)據(jù)庫(kù)中的表(Table),用Java對(duì)象取代數(shù)據(jù)庫(kù)中的記錄(Record)。SPECjbb2004主要關(guān)心的是第二層業(yè)務(wù)邏輯的處理能力,即考察用Java編寫的應(yīng)用程序運(yùn)行在某臺(tái)服務(wù)器上所表現(xiàn)出的性能。

SPECjbb2004規(guī)則中要求只運(yùn)行一個(gè)Java虛擬機(jī)(JVM)。在整個(gè)測(cè)試中,JVM(Java虛擬機(jī))、JIT(即時(shí)編譯)、操作系統(tǒng)的內(nèi)核處理、CPU的整型處理能力、Cache的大小、服務(wù)器SMP的線性擴(kuò)展能力等因素都會(huì)成為影響測(cè)試性能的關(guān)鍵。不過,測(cè)試值的好壞更多的依賴于Java虛擬機(jī)的性能,而且受系統(tǒng)帶寬的影響較小。在硬件平臺(tái)不變的情況下,JVM版本的升級(jí)會(huì)帶來性能幾倍的提升。

SPECjbb2004反映的是Java虛擬機(jī)的性能,但在實(shí)際中該值常被用來說明服務(wù)器的擴(kuò)展性,有些廠商甚至用它來證明服務(wù)器的性能是最優(yōu)的、擴(kuò)展能力是線性的。其實(shí),SPECjbb2004基準(zhǔn)測(cè)試完全是在內(nèi)存中運(yùn)行,不涉及I/O操作、網(wǎng)絡(luò)操作等。如果用它來衡量服務(wù)器的整體能力和擴(kuò)展性,這未免以點(diǎn)帶面過于主觀,TPC-C、Oracle ASB11i、SAP等這些基準(zhǔn)測(cè)試更能貼近客戶的實(shí)際情況,更能代表服務(wù)器的性能和擴(kuò)展性。

第三回:專用基準(zhǔn)測(cè)試探悉

世間萬物,既有以廣度取勝者,也有以深取勝者。

在基準(zhǔn)測(cè)試體系中,隨著企業(yè)級(jí)應(yīng)用的不斷擴(kuò)展和深入,一些應(yīng)用很廣泛的軟件平臺(tái)逐漸衍生出了自己專屬的Benchmark體系,以方便用戶衡量這些軟件平臺(tái)在某服務(wù)器上的運(yùn)行效率,這就是專用基準(zhǔn)測(cè)試。

實(shí)際上,除了TPC、SPEC兩大基準(zhǔn)測(cè)試體系以及Linkpack等具有普遍意義的的基準(zhǔn)測(cè)試以外,業(yè)界還創(chuàng)立了許多專用基準(zhǔn)測(cè)試,用以衡量服務(wù)器運(yùn)行某些專有應(yīng)用的性能,目前較為廣泛的包括SAP基準(zhǔn)測(cè)試、Oracle基準(zhǔn)測(cè)試、郵件服務(wù)器基準(zhǔn)SPEC mail2001等。

這里,我們以流行度很高、企業(yè)應(yīng)用種也很普遍的Oracle基準(zhǔn)測(cè)試為例,來熟悉一下專用基準(zhǔn)測(cè)試是如何來對(duì)服務(wù)器性能進(jìn)行度量的。

Oracle應(yīng)用標(biāo)準(zhǔn)基準(zhǔn)包含兩個(gè)主要的組件:在線組件和批處理組件。在線組件可執(zhí)行多數(shù)用戶都會(huì)頻繁使用的通用用戶界面(UI)流。批量流包含訂單導(dǎo)入(Order Import)程序(大批量訂單處理),主要用于按批量模式處理和導(dǎo)入訂單。

Oracle應(yīng)用標(biāo)準(zhǔn)基準(zhǔn)理事會(huì)(Oracle Applications Standard Benchmark Council)是一個(gè)由多家硬件企業(yè)、Oracle產(chǎn)品開發(fā)和Oracle產(chǎn)品線事業(yè)群的代表組成的機(jī)構(gòu)。

該機(jī)構(gòu)推出的Oracle應(yīng)用性能基準(zhǔn)測(cè)試指標(biāo)(Oracle Applications Standard Benchmark)是一種可比較的標(biāo)準(zhǔn)工作負(fù)載。硬件廠商可以使用這種基準(zhǔn)測(cè)試對(duì)系統(tǒng)進(jìn)行壓力測(cè)試,使其能夠滿足較高水平的用戶并發(fā)請(qǐng)求,并且在響應(yīng)時(shí)間保持在可接受范圍內(nèi)的同時(shí),獲得盡可能高的用戶數(shù),使用戶可以對(duì)不同系統(tǒng)配置上的Oracle應(yīng)用性能進(jìn)行對(duì)比。

用戶數(shù)可測(cè)量系統(tǒng)能夠支持的并發(fā)Oracle應(yīng)用用戶數(shù)量,并且在支持這一用戶數(shù)量的同時(shí),系統(tǒng)仍然能夠?qū)㈨憫?yīng)時(shí)間保持在預(yù)先定義的最大值以內(nèi)。用戶進(jìn)程是由他們所執(zhí)行的事務(wù)類型來定義的,而每個(gè)用戶都將保持一個(gè)最低的每小時(shí)事務(wù)率。事務(wù)率和工作負(fù)載的組合都不會(huì)隨著系統(tǒng)負(fù)載或響應(yīng)時(shí)間的增加而發(fā)生變化。

Oracle應(yīng)用標(biāo)準(zhǔn)基準(zhǔn)可使用一系列選定的最常用Oracle應(yīng)用模塊來模擬真實(shí)的客戶場(chǎng)景。有些事務(wù)的定義會(huì)對(duì)基準(zhǔn)進(jìn)行對(duì)比,這些定義是通過與實(shí)施顧問的協(xié)作而獲得的,而且它們都具備OLTP、批處理和自助服務(wù)組件。

后記:測(cè)試與應(yīng)用的關(guān)系

如果脫離實(shí)際,那就會(huì)淪為紙上談兵。

實(shí)際上,Benchmark只能作為參考,因?yàn)樗举|(zhì)上是個(gè)應(yīng)用,除了對(duì)硬件環(huán)境有要求外,與系統(tǒng)的編譯、應(yīng)用的優(yōu)化都是有關(guān)系的,換句話說,所有的Benchmark都是基于最優(yōu)化環(huán)境產(chǎn)生的,這一點(diǎn)用戶心里一定要清楚。

經(jīng)過近二十年的發(fā)展,Benchmark體系已經(jīng)相當(dāng)成熟了。盡管如此,相對(duì)于用戶應(yīng)用環(huán)境的千差萬別,Benchmark是一個(gè)最優(yōu)化環(huán)境中產(chǎn)生的"實(shí)驗(yàn)室結(jié)果",并不能完全反映到用戶的實(shí)際應(yīng)用中。

所以,成熟的心態(tài),是科學(xué)地、全面地看待并應(yīng)用Benchmark。

1. 基準(zhǔn)測(cè)試作為專項(xiàng)指標(biāo),并不全面

任何一個(gè)基準(zhǔn)測(cè)試都只能反映系統(tǒng)在某一方面的性能,而不可能反映系統(tǒng)的全面特性,比如SPECfp測(cè)試的是浮點(diǎn)能力,而不能反映系統(tǒng)I/O上的特性。即使是某些應(yīng)用的專用基準(zhǔn)測(cè)試程序(如SAP-SD),也同樣不能完全反映用戶的實(shí)際生產(chǎn)環(huán)境。所以在設(shè)備選型過程中,首先要做的是認(rèn)真分析應(yīng)用的特點(diǎn),特別是在高負(fù)載下的性能瓶頸分析,以此采用相應(yīng)的基準(zhǔn)測(cè)試指標(biāo)作為選型的重點(diǎn)。最能夠反映服務(wù)器適用性的依然是實(shí)際(或仿真)應(yīng)用的線上測(cè)試。

2. 考慮系統(tǒng)性能的線性能力

在多處理器系統(tǒng)中,隨著處理器數(shù)目的增加,服務(wù)器性能往往不能同步線性增加,在OLTP、浮點(diǎn)等運(yùn)算中,雙處理器的性能往往只是單處理器的1.4到1.7倍,而4路MP服務(wù)器、8路服務(wù)器的線性能力會(huì)更弱。在英特爾®至強(qiáng)®(Xeon)及安騰®處理器當(dāng)中,通過超強(qiáng)的并行能力及大量的板上資源,使得處理器的線性能力得到加強(qiáng)。在選型過程中,用戶如果使用多處理器或多服務(wù)器并行的應(yīng)用,應(yīng)該對(duì)處理性能的線性能力給以足夠關(guān)注,在基準(zhǔn)測(cè)試報(bào)告中會(huì)給出不同配置下的結(jié)果。

3. 基準(zhǔn)測(cè)試只反映性能,但不是全部

基準(zhǔn)測(cè)試可以幫助用戶判斷系統(tǒng)的性能特征,但適用性本身不止是性能,特別是在大型系統(tǒng)中,其它一些因素,包括耗電量、散熱、可管理能力等等,直接影響用戶的擁有成本及維護(hù)難度,應(yīng)予以充分考慮。

Tips 1:

基準(zhǔn)測(cè)試是系統(tǒng)性能的良好指標(biāo),只要你能:

了解選擇的基準(zhǔn)測(cè)試測(cè)量對(duì)你重要的性能特性

保證測(cè)試的硬件和軟件反應(yīng)需求

保證性能測(cè)試的準(zhǔn)確與公平

每個(gè)基準(zhǔn)測(cè)試只能測(cè)量系統(tǒng)某個(gè)或某些方面的性能。盡量使用已有的基準(zhǔn)測(cè)試,而不要建立自己的基準(zhǔn)測(cè)試。基準(zhǔn)測(cè)試數(shù)據(jù)僅僅是做出決定的一部分指標(biāo),其它方面,如可用性、服務(wù)、可靠性、策略也需要被考慮。

Tips 2:

對(duì)于將服務(wù)器系統(tǒng)用于科學(xué)運(yùn)算的多數(shù)高性能計(jì)算機(jī)用戶來說,在采購(gòu)服務(wù)器的時(shí)候,對(duì)于廠商提供的SPECfp2000浮點(diǎn)運(yùn)算基準(zhǔn)測(cè)試要給與重點(diǎn)關(guān)注,而對(duì)于一般的商業(yè)用戶來說,一個(gè)計(jì)算機(jī)系統(tǒng)的浮點(diǎn)運(yùn)算能力強(qiáng)或者弱,并沒有太大的實(shí)質(zhì)意義,這個(gè)用戶群體更應(yīng)該關(guān)注注入TPC-C等在線事務(wù)交易處理性能。

Tips 3:

TPC-C雖然客觀的反映了各個(gè)計(jì)算機(jī)廠商的系統(tǒng)處理性能,并且基準(zhǔn)測(cè)試也在不斷完善以更加貼近現(xiàn)實(shí)應(yīng)用的交易環(huán)境,但是仍然無法與紛繁多樣的各類實(shí)際應(yīng)用完全吻合;而且參加TPC測(cè)試的主機(jī)系統(tǒng)都做了適當(dāng)程度的系統(tǒng)優(yōu)化。因此,在實(shí)際業(yè)務(wù)應(yīng)用系統(tǒng)選擇主機(jī)服務(wù)器乘載體時(shí),必須考慮到多方面的因素,以最大程度的做到適合應(yīng)用系統(tǒng)的生產(chǎn)需求。

Tips 4:

通過加大L2緩存數(shù)量和使用更快的內(nèi)存升級(jí)系統(tǒng),會(huì)有助于優(yōu)化Web服務(wù)器的性能。因?yàn)閃eb服務(wù)器主要運(yùn)行操作系統(tǒng)代碼,系統(tǒng)應(yīng)該使用最新優(yōu)化版本的驅(qū)動(dòng)程序和Web服務(wù)器軟件

通過使用更大緩存尺寸和更快的內(nèi)存升級(jí)系統(tǒng),會(huì)有助于郵件服務(wù)器功能的發(fā)揮,同時(shí)削減內(nèi)存延遲。

數(shù)據(jù)庫(kù)服務(wù)器具有大量的數(shù)據(jù)共享,并需要足夠的總線吞吐來高效運(yùn)行。系統(tǒng)需要平衡配置才能將數(shù)據(jù)訪問分散在系統(tǒng)內(nèi)部不同總線上。使用帶有最大緩存數(shù)量的處理器和相干性過濾器(如果可以用)會(huì)降低系統(tǒng)內(nèi)引起相干錯(cuò)過的因素,并提高系統(tǒng)性能。

 Tips 5:

英特爾平臺(tái)和基準(zhǔn)測(cè)試

(1) (2) (3)

分享到

多易

相關(guān)推薦