一、前言
SPECjbb 是這幾個字母的首字母組成的,Standard Performance Evaluation Corporation(spec公司),JAVA server Business Benchmark(java服務器業務測試工具)。
在SPECjbb 這個基準測試中,被測產品要運行JVM,模擬一家全球大型零售企業的各種終端銷售點請求、在線購買、數據挖掘等日常業務,通過不斷增加的業務量來測試系統能夠處理的最大值,同時會測試隨着業務量增加,系統響應時間的變化,以全面評估運行各項Java業務應用的服務器性能水平。
SPECjbb 模擬了三層客戶/服務器模型結構:第一層是用戶(客戶端輸入);第二層是商業應用邏輯;第三層是數據庫。
二、測試平臺配置
硬件配置:
- 至少需要一臺8GB內存的服務器。性能運行建議使用24g及以上
軟件配置:
- 操作系統:jvm 7或更高版本可用的任何操作系統上運行
- Java虛擬機(JVM):specjdd的測試工作負載是用Java編寫的,需要運行在JVM上。
三、SPECJBB介紹
1. specjbb 原理圖
benchmark的組件由 Controller (Ctr)、Transaction Injector(s) (TxI)和Backend(s) (BE)組成。這三個組件可以在一個JVM裏運行,也可以分別運行在不同的JVM中。
2. specjbb特性:
- 一種基於一家全球超市公司的使用模型,該公司擁有處理銷售點請求、在線購買和數據挖掘操作的IT基礎設施。
- 純吞吐量度量標準和根據服務級別協議(sla)度量關鍵吞吐量的度量標準,指定的響應時間從10毫秒到100毫秒不等。
- 支持多運行配置,使用戶能夠分析和克服系統堆棧的多個層的瓶頸,包括硬件、操作系統、jvm和應用程序層。
- 使用新的Java 7特性和其他重要的性能元素,包括最新的數據格式(XML)、使用壓縮的通信以及具有安全性的消息傳遞。
- 支持虛擬化和雲環境。
3. specjbb運行時間
平均運行時間爲2小時,benchmark基準測試有以下幾個階段:
搜索HBIR(Search HBIR:High Bound Injection Rate):一般約15-20分鐘。對於更大的系統可能需要更長的時間。
RT曲線構建(RT curve building):約90分鐘
驗證 (Validation):約5分鐘
配置(Profile):約2分鐘
報告(Report):“0級”大約需要2分鐘,而“3級”需要30分鐘或更長時間,並配置了大型組
4. Benchmark測試Metirc結果
基準測試有兩個Metirc量,一個是max jops爲純吞吐量量,一個是critical jops爲限制響應時間下的吞吐量量。
如下:RUN RESULT: hbIR (max attempted) = 87464, hbIR (settled) = 83601, max-jOPS = 76094, critical-jOPS = 54396
<Mon Sep 09 12:22:55 CST 2019> org.spec.jbb.group1.txinjector.compositetxinjector: Exiting
<Mon Sep 09 12:22:55 CST 2019> org.spec.jbb.group1.txinjector.compositetxinjector: Exiting
<Mon Sep 09 12:22:55 CST 2019> org.spec.jbb.group1.backend.compositebackend: Exiting
Tests are skipped.
8241s:
8241s: Generating level 0 report from ./specjbb2015-C-20190909-00001.data.gz
SPECjbb2015 Java Business Benchmark
(c) Standard Performance Evaluation Corporation, 2015
Preparing to launch SPECjbb2015 reporter.
Reading property file: /home/yjiang2/bin/SPECjbb/./config/specjbb2015.props
Report directory is result/specjbb2015-C-20190909-00001/report-00001
8242s: Building report...
2109 msec: Pre-reading source
0 msec: Validation
1 msec: Printing JbbProperties
0 msec: Controller time verification
5 msec: Dump run logs
5 msec: Build report with HW/SW parameters
56 msec: Parsing attributes
5 msec: Parsing agent names
155 msec: Building throughput - response time curve
RUN RESULT: hbIR (max attempted) = 87464, hbIR (settled) = 83601, max-jOPS = 76094, critical-jOPS = 54396
84 msec: Primary metrics calculation
243 msec: Render Allowed Failures
1765 msec: Render IR/PR Accuracy
1576 msec: Request Mix accuracy
1548 msec: Max Delay during RT curve building
1677 msec: Render IR by probes tasks
1686 msec: Overall RT curves
0 msec: Render RT
10 msec: Render template to file result/specjbb2015-C-20190909-00001/report-00001/data/specjbb2015-C-20190909-00001-runProperties.txt
54 msec: Render template to file result/specjbb2015-C-20190909-00001/report-00001/specjbb2015-C-20190909-00001.html
Report generation finished. Wallclock = 4391 msecs, real = 10979 msecs, parallelism = 2.50x
對應的網頁report,specjbb2015-C-20190909-00001.html
後續:
specjbb 牽手 jdk 系列(二):安裝jdk及運行specjbb
參考:
www.spec.org/jbb2015/
SPECjbb2015-DesignDocument
SPECjbb2015-UserGuide
SPECjbb2015-Run_Reporting_Rules