Java Performance

The SPECjbb 2015 benchmark has "a usage model based on a world-wide supermarket company with an IT infrastructure that handles a mix of point-of-sale requests, online purchases, and data-mining operations." It uses the latest Java 7 features and makes use of XML, compressed communication, and messaging with security.

Benchmark architecture diagram

We tested with four groups of transaction injectors and backends. The Java version was OpenJDK 1.8.0_91.

We applied relatively basic tuning to mimic real-world use, while aiming to fit everything inside a server with 64 GB of RAM (to be able to compare to lower end systems):

"-server -Xmx8G -Xms8G -Xmn4G -XX:+AlwaysPreTouch -XX:+UseLargePages"

With these settings, the benchmark takes about 43-55GB of RAM. Java tends to consume more RAM as more core/threads are involved. Therefore, we also tested the Xeon E5-2640v4 and ThunderX with these settings:

"-server -Xmx24G -Xms24G -Xmn16G -XX:+AlwaysPreTouch -XX:+UseLargePages"

The setting above uses about 115 GB. The labels "large" ("large memory footprint") report the performance of these settings. We did not give the Xeon D-1581 the same treatment as we wanted to mimic the fact that the Xeon has only 4 DIMM slots, while the Xeon E5 and ThunderX have (at least) eight.

The first metric is basically maximum throughput.

SPECJBB 2015-Multi max-jOPS

Notice how the Xeon D-1581 beats the Xeon E5-2640 in a typical throughput situation by 8%, while the SPECint_rate numbers told us that the Xeon E5 would be slightly faster. It is a typical example of how running parallel instances overemphasizes bandwidth. The extra 6 cores (@2.1 GHz) push the Xeon D past the Xeon E5 (10 cores@ 2.6 GHz) despite the fact that the Xeon D has only half the bandwidth available.

The ThunderX offers low end Xeon E5 performance, but that still a lot better than what we would have expected from the SPECint_rate numbers (Dual socket ThunderX = Xeon-D). Once we offer more memory to ThunderX, performance goes up by 14%. The Xeon E5 gets a 10% performance boost.

The Critical-jOPS metric is a throughput metric under response time constraint.

SPECJBB 2015-Multi Critical-jOPS

The critical jOPS is the most important metric as it shows how many requests can be served in a timely manner. At first we though that the lack of single threaded performance to run the heavier pieces of Java code fast enough is what made the ThunderX so much slower than the rest of the pack.

However, the 48 threads were mostly hindered by the lack of memory per thread. Once we offer enough memory to the 48-headed ThunderX, performance explodes: it is multiplied by 2.4x! The Xeon E5 benefits too, but performance is "only" 60% higher. Thanks to the DRAM breathing room, the ThunderX moves from "slower than low end Xeon D" to "midrange Xeon E5" territory.

SPECJBB®2015 is a registered trademark of the Standard Performance Evaluation Corporation (SPEC).
Database Performance A Quick Look at Floating Point Performance: C-ray
Comments Locked

82 Comments

View All Comments

  • Daniel Egger - Wednesday, June 15, 2016 - link

    I could hardly disagree more about the remote management of SuperMicro vs. HP. Remote management of HP is *the horror*, I've never seen worse and I've seen a lot. It's clunky, it requires a license to be useful (others do to but SuperMicro does not have such nonsense), the BCM tends to crash a lot (which is very annoying for a remote management solution), boot is even slower than all other systems I know due to the way they integrate the BIOS and remote management on the system and it also uses Java unless you have Windows machines around to use the .NET version.

    For the remote management alone I would chose SuperMicro over most other vendors any day.
  • JohanAnandtech - Thursday, June 16, 2016 - link

    I found the .Net client of HP much less sluggish, and I have seen no crashing at all. I guess there is no optimal remote management client, but I really like the "boot into firmware" option that Intel implemented.
  • rahvin - Thursday, June 16, 2016 - link

    Not only that but Supermicro actually releases updates for their BCM's. I had the same shocked reaction to the HP claim. Started to wonder if I was the only one that thought supermicro was light years ahead in usability.

    I should note that Supermicro's awful Java tool works on Linux as well as windows. Though it refuses to run if your Java isn't the newest version available.
  • pencea - Wednesday, June 15, 2016 - link

    All these articles and yet still no review for the GTX 1080, while other major sites have already posted their reviews of both 1070 & 1080. Guru3D already has 2 custom 1080 and a custom 1070 review up.
  • Ryan Smith - Wednesday, June 15, 2016 - link

    It'll be done when it's done.
  • pencea - Wednesday, June 15, 2016 - link

    Unacceptably late for something that should've been posted weeks ago.
  • Meteor2 - Thursday, June 16, 2016 - link

    Will anyone read it though? Your ad impressions are going to suffer.
  • Ryan Smith - Thursday, June 16, 2016 - link

    Maybe. Maybe not. But it's my own fault regardless. All I can do is get it done as soon as I reasonably can, and hope it's something you guys find useful.
  • name99 - Thursday, June 16, 2016 - link

    Give it a freaking rest. No-one is impressed by your constant whining about this.
  • pencea - Thursday, June 16, 2016 - link

    Not looking to impress anyone. As a long time viewer of this site, I'm simply disappointed that a reputational site like this is constantly late for GPU reviews.

Log in

Don't have an account? Sign up now