淺談基準測試SPECjbb2000

發表于:2007-05-22來源:作者:點擊數: 標簽:測試基準淺談基準測試specjbb2000
眾所周知,當今許多應用軟件都是用 Java 編寫的,其優勢是經過一次編寫后,可運行在不同的操作系統平臺上,有很大的靈活性。但不同的Java版本運行在不同的硬件平臺上,會反映出不同的 性能 。如何判定不同硬件平臺運行Java程序的效率,是Java使用者所普遍關

眾所周知,當今許多應用軟件都是用Java編寫的,其優勢是經過一次編寫后,可運行在不同的操作系統平臺上,有很大的靈活性。但不同的Java版本運行在不同的硬件平臺上,會反映出不同的性能。如何判定不同硬件平臺運行Java程序的效率,是Java使用者所普遍關心的問題。

1.     SPECjbb2000 Java基準測試

SPECjbb2000 是SPEC委員會制定的一套Java基準測試程序,它是用于測試Java服務器性能的。SPECjbb2000模擬了三層客戶/服務器模型結構,所有的三層結構都在一個JVM(Java虛擬機)內實現。

這三層結構模擬了一個典型的商業應用結構:第一層是用戶(客戶端輸入);第二層是商業應用邏輯;第三層是數據庫。在SPECjbb2000里,第一層是用進程或線程模擬客戶系統的隨機輸入;由Java類和Java對象形成的Btree模擬第三層的數據庫;在第二層里是對Btree數據庫中的數據進行操作,其結構圖如下:

結構圖

SPECjbb2000 基準測試借用了TPC-C基準測試的概念、輸入產生、和交易模式。只不過,SPECjbb2000用Java類取代數據庫中的表(Table),用Java對象取代數據庫中的記錄(Record)。SPECjbb2000主要關心的是第二層業務邏輯的處理能力,即考察用Java編寫的應用程序運行在某臺服務器上所表現出的性能。

SPECjbb2000規則中要求只運行一個Java虛擬機(JVM)。在整個測試中,以下因素是影響測試性能的關鍵:

  •   JVM(Java虛擬機)

  •   JIT(即時編譯)

  •   Garbage Collection(垃圾收集)

  •   Thread(線程)等技術

  •   操作系統的內核處理

  •   CPU的整型處理能力、Cache的大小,內存大小和結構。

  •   服務器SMP的線性擴展能力。

SPECjbb2000測試中,并沒有考察到網絡、磁盤I/O、和圖形處理能力。

2. SPECjbb2000 Java基準測試結果分析

下表收集了一些廠商的服務器運行SPECjbb2000基準測試的結果。

機器型號 CPU Memory JVM版本 結果(ops/s)
HP Superdome 64-way (875MHz, PA-8700+) 256GB Hotspot 64-bit Server VM 1.4.0.01 614358
Sun Fire 15K 104-way (1050 MHz, UltraSPARC III) 576GB HotSpot 64-Bit Server VM on Solaris/SPARC version 1.4.0_01 602270
Sun Fire 15K 72-way(1050 MHz, UltraSPARC III) 288GB HotSpot 64-Bit Server VM on Solaris/SPARC version 1.4.0_01 433166
HP Superdome 32-way (875MHz, PA-8700+) 128GB Hotspot 1.4.1.02 64-bit VM on HP-UX11i for PA-RISC 8700+ 346862
pSeries 690 Turbo 32-way (1300 MHz, POWER4) 128GB J2RE 1.3.1 IBM AIX 5L for PowerPC (64 bit JVM) 339484
Sun Fire 6800 24-way (1200 MHz, UltraSPARC III) 48GB HotSpot Server VM on Solaris/SPARC, version 1.4.2 231121

上述結果截止于2003年5月31日。

SPECjbb2000測試值的好壞更多的依賴于Java虛擬機的性能,而且受系統帶寬的影響較小。在硬件臺不變的情況下,JVM版本的升級會帶來性能幾倍的提升。

從上表中可看到HP Superdome 32-way比IBM p690 32-way測試值高,雖然HP Superdome的CPU主頻低于IBM p690的CPU主頻,但是其使用的JVM的版本已經是1.4.1.02,而IBM p690上的JVM版本是1.3.1。從詳細的測試結果中去看,HP Superdome 64-way的機器在啟動到32個客戶端時的值是335403 ops/s,低于其32-way(32個客戶端)機器的測試值。原因就在于32-way機器測試時使用的是JVM 1.4.1.02,而64-way機器使用的是JVM 1.4.0.01。

Sun Fire 15K 104-way 的測試值高于IBM p690 32-way,除了JVM版本較高外,其測試時的CPU個數很多。另外,我們還要看到Sun Fire 15K在啟動到55個客戶端時的測試值是334986 ops/s,低于IBM p690 32-way(32個客戶端)的值。

2. 小結

SPECjbb2000反映的是Java虛擬機的性能,但在實際中該值常被用來說明服務器的擴展性,尤其是我們的友商常用它來證明它們的服務器的性能是最優的、擴展能力是線性的。

SPECjbb2000基準測試完全是在內存中運行,不涉及I/O操作、網絡操作等。如果用它來衡量服務器的整體能力和擴展性,這未免以點帶面過于主觀,TPC/C、Oracle ASB11i、SAP等這些基準測試更能貼近客戶的實際情況,更能代表服務器的性能和擴展性。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97