1. 設置java環境變量等:
export JAVA_HOME=/home/yjiang2/jdk/jdk13-dwhite-centos7.5
export PATH=$JAVA_HOME/bin:$PATH
export SPECJBB_HOME=/home/yjiang2/specjbb
export CLASSPATH=.:$JAVA_HOME/lib:$SPECJBB_HOME/lib
2. 碰到Error: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
Preparing to launch All-in-one SPECjbb2015.
Reading property file: /home/yjiang2/bin/SPECjbb/config/specjbb2015.props
0s: Enumerating plugins...
0s: Connectivity:
0s: HTTP_Grizzly: Grizzly HTTP server, JDK HTTP client
0s: NIO_Grizzly: Grizzly NIO server, Grizzly NIO client
0s: HTTP_Jetty: Jetty HTTP server, JDK HTTP client
0s: Snapshot:
0s: InMemory: Stores snapshots in heap memory
0s: Data Writers:
0s: Demo: Send all frame to listener
0s: InFile: Writing Data into file
0s: Silent: Drop all frames
0s:
0s: Validating kit integrity...
0s: Kit validation had passed.
0s:
0s: Tests are skipped.
0s:
0s: <Thu Sep 05 17:02:06 CST 2019> org.spec.jbb.ic: Init IC
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
at org.spec.jbb.core.comm.transport.TransportFactory.getEncapsulationLayer(TransportFactory.java:120)
at org.spec.jbb.core.comm.transport.TransportFactory.getByteTransport(TransportFactory.java:51)
at org.spec.jbb.core.comm.transport.TransportFactory.getTransport(TransportFactory.java:77)
at org.spec.jbb.core.comm.transport.TransportFactory.<init>(TransportFactory.java:35)
at org.spec.jbb.core.comm.transport.TransportFactory.getInstance(TransportFactory.java:28)
at org.spec.jbb.core.comm.Interconnect$UplinkImpl.<init>(Interconnect.java:689)
at org.spec.jbb.core.comm.Interconnect.addLink(Interconnect.java:252)
at org.spec.jbb.core.comm.Interconnect.addLink(Interconnect.java:280)
at org.spec.jbb.core.comm.Interconnect.<init>(Interconnect.java:177)
at org.spec.jbb.core.comm.InterconnectFactory.getMaster(InterconnectFactory.java:22)
at org.spec.jbb.Launcher$CompositeRunner.run(Launcher.java:398)
at org.spec.jbb.Launcher.launch(Launcher.java:191)
at org.spec.jbb.Launcher.main(Launcher.java:70)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:604)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 13 more
問題分析:
JAXB API類作爲Java 6/7/8中JDK的一部分提供的。由於JAXB API被認爲是Java EE API,因此不再包含在Java SE 9的默認類路徑中。新版本的jdk13也不包含,需要自行下載。進入specjbb/lib目錄,用下面命令下載
wget http://search.maven.org/remotecontent?filepath=com/sun/activation/javax.activation/1.2.0/javax.activation-1.2.0.jar -O javax.activation-1.2.0.jar
wget http://search.maven.org/remotecontent?filepath=javax/xml/bind/jaxb-api/2.3.0/jaxb-api-2.3.0.jar -O jaxb-api-2.3.0.jar
wget http://search.maven.org/remotecontent?filepath=com/sun/xml/bind/jaxb-core/2.3.0/jaxb-core-2.3.0.jar -O jaxb-core-2.3.0.jar
wget http://search.maven.org/remotecontent?filepath=com/sun/xml/bind/jaxb-impl/2.3.0/jaxb-impl-2.3.0.jar -O jaxb-impl-2.3.0.jar
解決方法:
下載好JAXB相關庫後,給運行的java 添加-Xbootclasspath 參數包含JAXB庫
java -Xbootclasspath/a:/home/yjiang2/jdk/jdk13-dwhite-centos7.5/lib/jaxb-api-2.3.0.jar:/home/yjiang2/jdk/jdk13-dwhite-centos7.5/lib/jaxb-core-2.3.0.jar:/home/yjiang2/jdk/jdk13-dwhite-centos7.5/lib/jaxb-impl-2.3.0.jar:/home/yjiang2/jdk/jdk13-dwhite-centos7.5/lib/javax.activation-1.2.0.jar
3. 需要進入specjbb目錄,運行
/home/yjiang2/jdk/jdk13-dwhite-centos7.5/bin/java -Xbootclasspath/a:/home/yjiang2/jdk/jdk13-dwhite-centos7.5/lib/jaxb-api-2.3.0.jar:/home/yjiang2/jdk/jdk13-dwhite-centos7.5/lib/jaxb-core-2.3.0.jar:/home/yjiang2/jdk/jdk13-dwhite-centos7.5/lib/jaxb-impl-2.3.0.jar:/home/yjiang2/jdk/jdk13-dwhite-centos7.5/lib/javax.activation-1.2.0.jar -Xms210g -Xmx210g -Xmn208g -XX:+UseParallelOldGC -XX:ParallelGCThreads=224 -XX:TargetSurvivorRatio=95 -XX:SurvivorRatio=55 -XX:MaxTenuringThreshold=15 -XX:-UseAdaptiveSizePolicy -XX:+AlwaysPreTouch -XX:-UsePerfData -XX:+UseBiasedLocking -XX:+UseLSE -XX:+UseNUMA -XX:-UseNUMAInterleaving -XX:InlineSmallCode=20k -XX:CompileThreshold=1000 -XX:+AvoidUnalignedAccesses -XX:+UseSIMDForMemoryOps -XX:-UseFPUForSpilling -XX:-SegmentedCodeCache -XX:MaxInlineLevel=15 --add-modules ALL-SYSTEM -Dspecjbb.controller.rtcurve.warmup.step=0.7 -Dspecjbb.forkjoin.workers.Tier1=200 -Dspecjbb.forkjoin.workers.Tier2=1 -Dspecjbb.forkjoin.workers.Tier3=32 -Dspecjbb.customerDriver.threads=96 -jar /home/yjiang2/specjbb/specjbb2015.jar -m COMPOSITE -p /home/yjiang2/specjbb/config/specjbb2015.props
儘管我運行java命令時-p 指定了 specjbb的specjbb2015.props
-p /home/yjiang2/specjbb/config/specjbb2015.props
運行的時候還是報錯
Tests are skipped.
8303s:
8303s: Generating level 0 report from ./specjbb2015-C-20190906-00001.data.gz
SPECjbb2015 Java Business Benchmark
(c) Standard Performance Evaluation Corporation, 2015
Preparing to launch SPECjbb2015 reporter.
Problem reading property file: ./config/specjbb2015.props, exiting
Mandatory options are:
-m <mode> Runner mode
。。。
-p <FILE> Property file (default: ./config/specjbb2015.props)
需要進入specjbb目錄,運行。最後提示測試benchmark的報告成功生成 。
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
java老版本不支持-XX:-SegmentedCodeCache --add-modules ALL-SYSTEM,運行命令如下:
/usr/bin/java -Xbootclasspath/a:/home/yjiang2/jdk/jdk13-dwhite-centos7.5/lib/jaxb-api-2.3.0.jar:/home/yjiang2/jdk/jdk13-dwhite-centos7.5/lib/jaxb-core-2.3.0.jar:/home/yjiang2/jdk/jdk13-dwhite-centos7.5/lib/jaxb-impl-2.3.0.jar:/home/yjiang2/jdk/jdk13-dwhite-centos7.5/lib/javax.activation-1.2.0.jar -Xms210g -Xmx210g -Xmn208g -XX:+UseParallelOldGC -XX:ParallelGCThreads=224 -XX:TargetSurvivorRatio=95 -XX:SurvivorRatio=55 -XX:MaxTenuringThreshold=15 -XX:-UseAdaptiveSizePolicy -XX:+AlwaysPreTouch -XX:-UsePerfData -XX:+UseBiasedLocking -XX:+UseLSE -XX:+UseNUMA -XX:-UseNUMAInterleaving -XX:InlineSmallCode=20k -XX:CompileThreshold=1000 -XX:+AvoidUnalignedAccesses -XX:+UseSIMDForMemoryOps -XX:-UseFPUForSpilling -XX:MaxInlineLevel=15 -Dspecjbb.controller.rtcurve.warmup.step=0.7 -Dspecjbb.forkjoin.workers.Tier1=200 -Dspecjbb.forkjoin.workers.Tier2=1 -Dspecjbb.forkjoin.workers.Tier3=32 -Dspecjbb.customerDriver.threads=96 -jar /home/yjiang2/specjbb/specjbb2015.jar -m COMPOSITE -p /home/yjiang2/specjbb/config/specjbb2015.props