一個典型的SPECweb2005實驗環(huán)境
TPC-W衡量電子商務環(huán)境
TPC-W是衡量服務器在電子商務環(huán)境中性能的另一項重要基準測試。
TPC-W表現了在一個站點上多個服務器和WEB應用聯合工作,服務于仿真瀏覽器的請求,它關注的焦點是整個系統(tǒng)。
在一個TPC-W的測試中,主要的測試項目是每秒鐘內完成的網絡信息交換數量(WIPS),每WIPS的花費($/WIPS)以及下訂單時的網絡交換數量。另外在這些測試項目中,測試者必須提供所有主要子系統(tǒng)的性能參數,諸如處理器、內存、磁盤和網絡等所有服務器審計運行中所需要的項目。
TPC-W的負載包含針對不同網頁的處理,每一個網頁都是在電子商務中必要的操作。例如,用戶可以測試使用任何瀏覽器進行的主頁瀏覽、查詢、觀看查詢結果、購買產品、確認訂單、檢查訂單狀況,甚至于執(zhí)行管理操作。
TPC-W提供一個從系統(tǒng)角度出發(fā)的電子商務解決方案,全面地體現獨立操作系統(tǒng)性能。盡管有些方面還不完善,但是TPC-W確實為最終用戶提供了許多平時得不到的原始數據和信息。
第四節(jié):Java應用服務器的基準
Java從誕生的時刻,就因為它的方便性而注定了必定流行。
最近,一項全新的SPECjAppServer2004基準測試性能世界記錄誕生了–配置了兩顆四核核英特爾®至強®處理器、裝備Linux操作系統(tǒng)的浪潮英信NF280D(Inspur NF280D)服務器,在運行帶有BEA JRockit 5.0 JVM的BEA WebLogic Server 10時,創(chuàng)下了同類配置的SPECJAppServer2004基準測試世界紀錄,系統(tǒng)處理能力達到了1538.65JOPS@Standard(每秒處理事務數)。
這個新的基準測試性能,對一個服務器來說,到底意味著什么?對企業(yè)又有什么意義呢?這先得從頭說起。
今天,許多應用軟件都是用Java編寫的,它的優(yōu)勢很明顯,就是經過一次編寫后可運行在不同的操作系統(tǒng)平臺上,有很大的靈活性。但是,不同的Java版本運行在不同的硬件平臺上,會反映出不同的性能。如何判定不同硬件平臺運行Java程序的效率,是Java使用者所普遍關心的問題,而SPEC jbb2004就是一項被廣泛采用的Java虛擬機性能基準測試,它的前身是SPEC jbb2000。
SPECjbb2004是SPEC委員會制定的一套Java基準測試程序,用于測試Java服務器性能,但是并不考察到網絡、磁盤I/O、和圖形處理能力。SPECjbb2004模擬了三層客戶/服務器模型結構,所有的三層結構都在一個JVM(Java虛擬機)內實現。
這三層結構模擬了一個典型的商業(yè)應用結構:第一層是用戶(客戶端輸入);第二層是商業(yè)應用邏輯;第三層是數據庫。在SPECjbb2004里,第一層是用進程或線程模擬客戶系統(tǒng)的隨機輸入;由Java類和Java對象形成的Btree模擬第三層的數據庫;在第二層里是對Btree數據庫中的數據進行操作,其機構圖如下:
SPECjbb2004基準測試借用了TPC-C基準測試的概念、輸入產生、和交易模式。只不過,SPECjbb2004用Java類取代數據庫中的表(Table),用Java對象取代數據庫中的記錄(Record)。SPECjbb2004主要關心的是第二層業(yè)務邏輯的處理能力,即考察用Java編寫的應用程序運行在某臺服務器上所表現出的性能。
SPECjbb2004規(guī)則中要求只運行一個Java虛擬機(JVM)。在整個測試中,JVM(Java虛擬機)、JIT(即時編譯)、操作系統(tǒng)的內核處理、CPU的整型處理能力、Cache的大小、服務器SMP的線性擴展能力等因素都會成為影響測試性能的關鍵。不過,測試值的好壞更多的依賴于Java虛擬機的性能,而且受系統(tǒng)帶寬的影響較小。在硬件平臺不變的情況下,JVM版本的升級會帶來性能幾倍的提升。
SPECjbb2004反映的是Java虛擬機的性能,但在實際中該值常被用來說明服務器的擴展性,有些廠商甚至用它來證明服務器的性能是最優(yōu)的、擴展能力是線性的。其實,SPECjbb2004基準測試完全是在內存中運行,不涉及I/O操作、網絡操作等。如果用它來衡量服務器的整體能力和擴展性,這未免以點帶面過于主觀,TPC-C、Oracle ASB11i、SAP等這些基準測試更能貼近客戶的實際情況,更能代表服務器的性能和擴展性。
第三回:專用基準測試探悉
世間萬物,既有以廣度取勝者,也有以深取勝者。
在基準測試體系中,隨著企業(yè)級應用的不斷擴展和深入,一些應用很廣泛的軟件平臺逐漸衍生出了自己專屬的Benchmark體系,以方便用戶衡量這些軟件平臺在某服務器上的運行效率,這就是專用基準測試。
實際上,除了TPC、SPEC兩大基準測試體系以及Linkpack等具有普遍意義的的基準測試以外,業(yè)界還創(chuàng)立了許多專用基準測試,用以衡量服務器運行某些專有應用的性能,目前較為廣泛的包括SAP基準測試、Oracle基準測試、郵件服務器基準SPEC mail2001等。
這里,我們以流行度很高、企業(yè)應用種也很普遍的Oracle基準測試為例,來熟悉一下專用基準測試是如何來對服務器性能進行度量的。
Oracle應用標準基準包含兩個主要的組件:在線組件和批處理組件。在線組件可執(zhí)行多數用戶都會頻繁使用的通用用戶界面(UI)流。批量流包含訂單導入(Order Import)程序(大批量訂單處理),主要用于按批量模式處理和導入訂單。
Oracle應用標準基準理事會(Oracle Applications Standard Benchmark Council)是一個由多家硬件企業(yè)、Oracle產品開發(fā)和Oracle產品線事業(yè)群的代表組成的機構。
該機構推出的Oracle應用性能基準測試指標(Oracle Applications Standard Benchmark)是一種可比較的標準工作負載。硬件廠商可以使用這種基準測試對系統(tǒng)進行壓力測試,使其能夠滿足較高水平的用戶并發(fā)請求,并且在響應時間保持在可接受范圍內的同時,獲得盡可能高的用戶數,使用戶可以對不同系統(tǒng)配置上的Oracle應用性能進行對比。
用戶數可測量系統(tǒng)能夠支持的并發(fā)Oracle應用用戶數量,并且在支持這一用戶數量的同時,系統(tǒng)仍然能夠將響應時間保持在預先定義的最大值以內。用戶進程是由他們所執(zhí)行的事務類型來定義的,而每個用戶都將保持一個最低的每小時事務率。事務率和工作負載的組合都不會隨著系統(tǒng)負載或響應時間的增加而發(fā)生變化。
Oracle應用標準基準可使用一系列選定的最常用Oracle應用模塊來模擬真實的客戶場景。有些事務的定義會對基準進行對比,這些定義是通過與實施顧問的協(xié)作而獲得的,而且它們都具備OLTP、批處理和自助服務組件。
后記:測試與應用的關系
如果脫離實際,那就會淪為紙上談兵。
實際上,Benchmark只能作為參考,因為它本質上是個應用,除了對硬件環(huán)境有要求外,與系統(tǒng)的編譯、應用的優(yōu)化都是有關系的,換句話說,所有的Benchmark都是基于最優(yōu)化環(huán)境產生的,這一點用戶心里一定要清楚。
經過近二十年的發(fā)展,Benchmark體系已經相當成熟了。盡管如此,相對于用戶應用環(huán)境的千差萬別,Benchmark是一個最優(yōu)化環(huán)境中產生的"實驗室結果",并不能完全反映到用戶的實際應用中。
所以,成熟的心態(tài),是科學地、全面地看待并應用Benchmark。
1. 基準測試作為專項指標,并不全面
任何一個基準測試都只能反映系統(tǒng)在某一方面的性能,而不可能反映系統(tǒng)的全面特性,比如SPECfp測試的是浮點能力,而不能反映系統(tǒng)I/O上的特性。即使是某些應用的專用基準測試程序(如SAP-SD),也同樣不能完全反映用戶的實際生產環(huán)境。所以在設備選型過程中,首先要做的是認真分析應用的特點,特別是在高負載下的性能瓶頸分析,以此采用相應的基準測試指標作為選型的重點。最能夠反映服務器適用性的依然是實際(或仿真)應用的線上測試。
2. 考慮系統(tǒng)性能的線性能力
在多處理器系統(tǒng)中,隨著處理器數目的增加,服務器性能往往不能同步線性增加,在OLTP、浮點等運算中,雙處理器的性能往往只是單處理器的1.4到1.7倍,而4路MP服務器、8路服務器的線性能力會更弱。在英特爾®至強®(Xeon)及安騰®處理器當中,通過超強的并行能力及大量的板上資源,使得處理器的線性能力得到加強。在選型過程中,用戶如果使用多處理器或多服務器并行的應用,應該對處理性能的線性能力給以足夠關注,在基準測試報告中會給出不同配置下的結果。
3. 基準測試只反映性能,但不是全部
基準測試可以幫助用戶判斷系統(tǒng)的性能特征,但適用性本身不止是性能,特別是在大型系統(tǒng)中,其它一些因素,包括耗電量、散熱、可管理能力等等,直接影響用戶的擁有成本及維護難度,應予以充分考慮。
Tips 1:
基準測試是系統(tǒng)性能的良好指標,只要你能:
了解選擇的基準測試測量對你重要的性能特性
保證測試的硬件和軟件反應需求
保證性能測試的準確與公平
每個基準測試只能測量系統(tǒng)某個或某些方面的性能。盡量使用已有的基準測試,而不要建立自己的基準測試?;鶞蕼y試數據僅僅是做出決定的一部分指標,其它方面,如可用性、服務、可靠性、策略也需要被考慮。
Tips 2:
對于將服務器系統(tǒng)用于科學運算的多數高性能計算機用戶來說,在采購服務器的時候,對于廠商提供的SPECfp2000浮點運算基準測試要給與重點關注,而對于一般的商業(yè)用戶來說,一個計算機系統(tǒng)的浮點運算能力強或者弱,并沒有太大的實質意義,這個用戶群體更應該關注注入TPC-C等在線事務交易處理性能。
Tips 3:
TPC-C雖然客觀的反映了各個計算機廠商的系統(tǒng)處理性能,并且基準測試也在不斷完善以更加貼近現實應用的交易環(huán)境,但是仍然無法與紛繁多樣的各類實際應用完全吻合;而且參加TPC測試的主機系統(tǒng)都做了適當程度的系統(tǒng)優(yōu)化。因此,在實際業(yè)務應用系統(tǒng)選擇主機服務器乘載體時,必須考慮到多方面的因素,以最大程度的做到適合應用系統(tǒng)的生產需求。
Tips 4:
通過加大L2緩存數量和使用更快的內存升級系統(tǒng),會有助于優(yōu)化Web服務器的性能。因為Web服務器主要運行操作系統(tǒng)代碼,系統(tǒng)應該使用最新優(yōu)化版本的驅動程序和Web服務器軟件
通過使用更大緩存尺寸和更快的內存升級系統(tǒng),會有助于郵件服務器功能的發(fā)揮,同時削減內存延遲。
數據庫服務器具有大量的數據共享,并需要足夠的總線吞吐來高效運行。系統(tǒng)需要平衡配置才能將數據訪問分散在系統(tǒng)內部不同總線上。使用帶有最大緩存數量的處理器和相干性過濾器(如果可以用)會降低系統(tǒng)內引起相干錯過的因素,并提高系統(tǒng)性能。
Tips 5:
英特爾平臺和基準測試