JBoss Data Grid Performance Study Comparing Java HotSpot to Azul Zing



Similar documents
JVM Performance Study Comparing Oracle HotSpot and Azul Zing Using Apache Cassandra

An Oracle White Paper March Load Testing Best Practices for Oracle E- Business Suite using Oracle Application Testing Suite

Enabling Java in Latency Sensitive Environments

Oracle Corporation Proprietary and Confidential

JVM Garbage Collector settings investigation

An Oracle White Paper September Advanced Java Diagnostics and Monitoring Without Performance Overhead

Java Performance Tuning

Performance Characteristics of VMFS and RDM VMware ESX Server 3.0.1

Performance brief for IBM WebSphere Application Server 7.0 with VMware ESX 4.0 on HP ProLiant DL380 G6 server

Liferay Portal Performance. Benchmark Study of Liferay Portal Enterprise Edition

Mission-Critical Java. An Oracle White Paper Updated October 2008

MID-TIER DEPLOYMENT KB

Informatica Ultra Messaging SMX Shared-Memory Transport

11.1 inspectit inspectit

Oracle Database Scalability in VMware ESX VMware ESX 3.5

How NOT to Measure Latency

Business white paper. HP Process Automation. Version 7.0. Server performance

Garbage Collection in the Java HotSpot Virtual Machine

Removing Performance Bottlenecks in Databases with Red Hat Enterprise Linux and Violin Memory Flash Storage Arrays. Red Hat Performance Engineering

Performance Comparison of Fujitsu PRIMERGY and PRIMEPOWER Servers

Integrated Grid Solutions. and Greenplum

Azul Pauseless Garbage Collection

SOLUTION BRIEF: SLCM R12.8 PERFORMANCE TEST RESULTS JANUARY, Submit and Approval Phase Results

Oracle Hyperion Financial Management Virtualization Whitepaper

Performance Evaluation of VMXNET3 Virtual Network Device VMware vsphere 4 build

Red Hat Network Satellite Management and automation of your Red Hat Enterprise Linux environment

Introduction to Spark and Garbage Collection

A Comparison of Oracle Performance on Physical and VMware Servers

Capacity Planning Guide for Adobe LiveCycle Data Services 2.6

Accelerating Enterprise Applications and Reducing TCO with SanDisk ZetaScale Software

An Oracle Benchmarking Study February Oracle Insurance Insbridge Enterprise Rating: Performance Assessment

Red Hat Satellite Management and automation of your Red Hat Enterprise Linux environment

Java Garbage Collection Characteristics and Tuning Guidelines for Apache Hadoop TeraSort Workload

Informatica Data Director Performance

AgencyPortal v5.1 Performance Test Summary Table of Contents

How To Test For Performance And Scalability On A Server With A Multi-Core Computer (For A Large Server)

VirtualCenter Database Performance for Microsoft SQL Server 2005 VirtualCenter 2.5

DIABLO TECHNOLOGIES MEMORY CHANNEL STORAGE AND VMWARE VIRTUAL SAN : VDI ACCELERATION

Performance Analysis of Web based Applications on Single and Multi Core Servers

Achieving Nanosecond Latency Between Applications with IPC Shared Memory Messaging

Virtualization Performance on SGI UV 2000 using Red Hat Enterprise Linux 6.3 KVM

A Comparison of Oracle Performance on Physical and VMware Servers

HP ProLiant BL660c Gen9 and Microsoft SQL Server 2014 technical brief

SOLUTION BRIEF: SLCM R12.7 PERFORMANCE TEST RESULTS JANUARY, Load Test Results for Submit and Approval Phases of Request Life Cycle

Adobe LiveCycle Data Services 3 Performance Brief

HeapStats: Your Dependable Helper for Java Applications, from Development to Operation

XTM Web 2.0 Enterprise Architecture Hardware Implementation Guidelines. A.Zydroń 18 April Page 1 of 12

Benchmarking Couchbase Server for Interactive Applications. By Alexey Diomin and Kirill Grigorchuk

BigMemory & Hybris : Working together to improve the e-commerce customer experience

Accelerating Server Storage Performance on Lenovo ThinkServer

Agility Database Scalability Testing

JBoss Seam Performance and Scalability on Dell PowerEdge 1855 Blade Servers

SQL Server Consolidation Using Cisco Unified Computing System and Microsoft Hyper-V

HP reference configuration for entry-level SAS Grid Manager solutions

BigMemory: Providing competitive advantage through in-memory data management

Informatica Master Data Management Multi Domain Hub API: Performance and Scalability Diagnostics Checklist

Comparison of Windows IaaS Environments

Technical Paper. Moving SAS Applications from a Physical to a Virtual VMware Environment

Solving the Hypervisor Network I/O Bottleneck Solarflare Virtualization Acceleration

Understanding Java Garbage Collection

System Requirements Table of contents

Avoid Paying The Virtualization Tax: Deploying Virtualized BI 4.0 The Right Way. Ashish C. Morzaria, SAP

Garbage Collection in NonStop Server for Java

Oracle TimesTen In-Memory Database on Oracle Exalogic Elastic Cloud

Delivering Quality in Software Performance and Scalability Testing

Liferay Performance Tuning

Zing Vision. Answering your toughest production Java performance questions

The Fundamentals of Tuning OpenJDK

How To Store Data On An Ocora Nosql Database On A Flash Memory Device On A Microsoft Flash Memory 2 (Iomemory)

SAS Business Analytics. Base SAS for SAS 9.2

BLACKBOARD LEARN TM AND VIRTUALIZATION Anand Gopinath, Software Performance Engineer, Blackboard Inc. Nakisa Shafiee, Senior Software Performance

Low level Java programming With examples from OpenHFT

Performance Optimization For Operational Risk Management Application On Azure Platform

An Oracle White Paper July Oracle Primavera Contract Management, Business Intelligence Publisher Edition-Sizing Guide

An Oracle White Paper August Oracle VM 3: Server Pool Deployment Planning Considerations for Scalability and Availability

Performance Management for Cloudbased STC 2012

Where IT perceptions are reality. Test Report. OCe14000 Performance. Featuring Emulex OCe14102 Network Adapters Emulex XE100 Offload Engine

How to Choose your Red Hat Enterprise Linux Filesystem

Vertical Scaling of Oracle 10g Performance on Red Hat Enterprise Linux 5 on Intel Xeon Based Servers. Version 1.0

terracotta technical whitepaper:

Enterprise Manager Performance Tips

Holistic Performance Analysis of J2EE Applications

Using VMware VMotion with Oracle Database and EMC CLARiiON Storage Systems

Microsoft Windows Server 2003 with Internet Information Services (IIS) 6.0 vs. Linux Competitive Web Server Performance Comparison

Choosing the Best Network Interface Card for Cloud Mellanox ConnectX -3 Pro EN vs. Intel XL710

Java Garbage Collection Basics

Identifying Performance Bottleneck using JRockit. - Shivaram Thirunavukkarasu Performance Engineer Wipro Technologies

PARALLELS CLOUD SERVER

Amazon EC2 XenApp Scalability Analysis

ZooKeeper. Table of contents

Performance and scalability of a large OLTP workload

Benchmarking Cassandra on Violin

An Oracle White Paper September, Enterprise Manager 12c Cloud Control: Monitoring and Managing Oracle Coherence for High Performance

HP ProLiant BL460c takes #1 performance on Siebel CRM Release 8.0 Benchmark Industry Applications running Linux, Oracle

CentOS Linux 5.2 and Apache 2.2 vs. Microsoft Windows Web Server 2008 and IIS 7.0 when Serving Static and PHP Content

IBM Tivoli Composite Application Manager for WebSphere

Tool - 1: Health Center

Transcription:

JBoss Data Grid Performance Study Comparing Java HotSpot to Azul Zing January 2014

Legal Notices JBoss, Red Hat and their respective logos are trademarks or registered trademarks of Red Hat, Inc. Azul Systems, Zing and the Azul logo are trademarks or registered trademarks of Azul Systems, Inc. Linux is a registered trademark of Linus Torvalds. CentOS is the property of the CentOS project. Oracle, Java, and HotSpot are trademarks or registered trademarks of Oracle Corporation and/or its affiliates. Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. Solarflare is a trademark or registered trademark of Solarflare Communications, Inc. GitHub is a registered trademark of GitHub, Inc. Other marks are the property of their respective owners and are used here only for identification purposes 2 of

Table of Contents Legal Notices... 2 1 Executive Summary... 4 2 Background... 5 3 Testing Environment... 5 4 Testing Methodology... 7 5 Results... 9 6 Conclusion... 10 7 References... 12 8 Appendix... 13 3 of

1 Executive Summary While new In-memory Computing (IMC) techniques hold the promise of better scalability and performance, ensuring consistent, low latency performance isn t a guarantee for all Java applications. Careful attention to product choices, runtime components and deployment topologies are essential to maximizing the values of these new IMC solutions, including In-memory Data Grids (IMDGs). This benchmark study compares the response time performance of the JBoss Data Grid at different node cache sizes when deployed on different Java Virtual Machines (JVMs). For this performance brief only the Azul Zing and the Java HotSpot JVMs were tested. All benchmark results were derived using the open source RadarGun framework and the jhiccup measurement tool. The testing methodology was designed to measure response time consistency and throughput of the data grid nodes at different JVM heap sizes. The data grid was configured for distributed mode with one data node and one backup node replicated across two physical servers (4 nodes total). The jhiccup measurement tool was used to capture and graph the response time distribution of the two JVMs during all benchmark runs. The results of the benchmark clearly show that response time distributions and runtime consistency vary widely between the two JVMs. For Java HotSpot, which employs a stop-the-world young generation collector, response time variance was more than 250x across individual runs and was not computable using standard deviation. In contrast the Azul Zing runtime showed highly predictable response time consistency across the entire distribution, including 5 9s, with a maximum of only milliseconds for the 200 GB node test. In addition, Java HotSpot, which reported response time outliers exceeding multiple seconds at 100 GB, was not able to complete the benchmark run at 200 GB because of system saturation due to consecutive garbage collections. The profound difference in response time profile of the two JVMs suggests that Azul Zing is superior for data grid deployments that require low latency SLAs, lower node response times (<50 msec), greater resistance to node failures due to heavy load and larger node capacity with support for Java heaps up to 340 GB. This paper describes the testing environment, testing methodology and resulting response time profiles of two different JVMs while running the JBoss Data Grid. Companies considering deploying JBoss Data Grid can use this information to make better informed decisions on which JVM to use to meet their specific business use case or they can leverage this benchmark to design their own JBoss Data Grid testing scenarios. 4 of

2 Background Red Hat JBoss Data Grid, based on the Infinispan open source community project, is a distributed in-memory grid, supporting local, replicated, invalidation and distributed modes, While JBoss Data Grid can be configured in a number of different topologies, it is typically deployed as a data tier to provide faster read/write behavior and data replication while offloading the database or persistent data store. As an in-memory schema-less key/value store, JBoss Data Grid can provide a simple and flexible means to storing different objects without a fixed data model. Because the JBoss Data Grid is a Java application, it requires a Java Virtual Machine (JVM) for runtime deployment. Since not all JVMs are the same and employ different garbage collection algorithms (e.g. Concurrent Mark Sweep), the benchmark was configured to capture response time variances at the JVM which can be affected by the size of the Java heap, live set size, objection allocation rates, mutation rates and other application specific characteristics. For this performance study, the RadarGun benchmarking framework coupled with the jhiccup measurement tool was used to simulate load and measure response time variances. Originally designed to compare the performance of different data grid products, RadarGun provides a reproducible way to simulate a specific transaction load and measure the performance of the individual data grid nodes. To ensure accurate runtime measurements, even during long garbage collection (GC) pauses, jhiccup was added to the benchmark. Designed to measure only JVM responsiveness, jhiccup shows the best possible response time the application or data grid could have experienced during the benchmark run. jhiccup is not an end-toend performance measurement tool and does not capture the additional overhead of the application or data grid transaction logic. 3 Testing Environment The test environment consisted of two nearly identical Iron Systems servers; Node Servers A and B. Each server had 4 Intel Xeon processors with 512 GB of memory, running Red Hat Enterprise Linux 6 and JBoss Data Grid version 6.2. The two machines were directly interconnected using Solarflare Communications Solarstorm SFC9020 10GbE network cards. The exact configurations are listed below: Machine Configuration Manufacturer Processors (x 4) Memory (x 32) Networking Node Server A Iron Systems Intel Xeon CPU E7-4820 @ 2.00GHz 16GB RDIMM, 1066MHz, Low Volt, Dual Rank 1 x Solarflare Communications SFC9020 (Solarstorm) OS Red Hat Enterprise Linux Server release 6.2 (Santiago) 5 of

Machine Configuration Manufacturer Processors (x 4) Memory (x 32) Networking Node Server B Iron Systems Intel Xeon CPU E5-4620 0 @2.20GHz 16GB RDIMM, 1333MHz, Low Volt, Dual Rank 1 x Solarflare Communications SFC9020 (Solarstorm) OS Red Hat Enterprise Linux Server release 6.2 (Santiago) The data grid was configured on the two servers in distributed mode with 1 backup or copy node replicated on the other system (i.e. 4 nodes in total). The RadarGun benchmark was configured with a master process on Node Server A which communicated directly with all 4 nodes via an in-process client which in turn issued requests to individual data grid nodes. jhiccup version 1.3.7 was used to launch the RadarGun benchmark, capturing JVM response times across all 4 grid nodes and then graphing the response time distribution up to the 99.999 th percentile. Both servers where configured to support both JVMs. The Java HotSpot JVM was configured to use the CMS collector with the following flags: -XX:NewRatio=3 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:MaxPermSize=512m -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+UseLargePages The Azul Zing runtime did not employ any runtime flags and used the default C4 collector. For both Zing and Java HotSpot, the RHEL operating system was configured to us LargePages: -XX:+UseLargePages Java Configuration Azul Zing Java HotSpot JVM Version Azul Systems Zing java version "1.7.0-zing_5.8.0.0" Zing Runtime Environment for Java Applications (build 1.7.0-zing_5.8.0.0-b4) Zing 64-Bit Tiered VM (build 1.7.0-zing_5.8.0.0-b15-product-azlinuxM-X86_64, mixed mode) Java HotSpot java version "1.7.0_05" Java SE Runtime Environment (build 1.7.0_05-b06) Java HotSpot 64-Bit Server VM (build.1-b03, mixed mode) 6 of

4 Testing Methodology The benchmark was designed to measure JVM response times and throughput of JBoss Data Grid at multiple JVM heap sizes. Performance runs at 20, 40, 60, 100 and 200 GB heaps were repeated on both the Azul Zing and Java HotSpot JVMs. The JBoss Data Grid was configured in distributed mode with just a single copy of the data and a backup replicated across two physical servers. In order to simulate real world conditions, the individual grid nodes and corresponding JVM memory heaps, were primed by the RadarGun benchmark for each test and before jhiccup measurements were taken. Initial data loads were approximately 40% of the maximum heap size for each run. In order to avoid full garbage collection pauses during the measurement period, the default NewRatio=3 was used, so that 25% of the heap was allocated to the young generation and 75% was dedicated to the old generation. In addition to priming the data nodes, the benchmark utilized multiple object sizes (i.e. 15% 1K, 35% 2K and 50% 4K) to better simulate real world scenarios. For the first 3 Java heap sizes (20, 40, and 60 GB), the transitional mix of the RadarGun benchmark was set to a ratio of 67% read, 32% write, 1% remove. However, in order to accelerate the priming of the data notes to 40% for the 100 and 200 GB runs, the transactional mix was set to 39% read, 60% write, and 1% remove. Because the RadarGun benchmark was primarily designed to measure the throughput of individual grid nodes for a given load, the jhiccup tool was added to capture and graph the responsiveness of the JVMs during the benchmark runs. The tool captured the JVM response times for all 4 nodes and then combined the distributions into a single graph or Hiccup Chart. The graphs below show the individual Hiccup Charts for the Java HotSpot test at 60 GB: 7 of

Figure 1 Individual Hiccup Chart for Java HotSpot using 60 GB heaps The benchmark ran the same transaction loads on each JVM at different Java heap sizes (20, 40, 60, 100 and 200 GB). Both JVM response times and RadarGun throughput metrics were captured for each run. RadarGun Benchmark Configuration 20GB heap test Benchmark Duration 15 minute runs Message Payload Sizes 15% 1024 bytes, 35% 2048 bytes, 50% 4096 bytes Mode of Data Grid Operation Distributed Heap Priming 35 45% Transactions 50,000 Transaction mix 67% read, 32% write, 1% remove Number of threads 30 8 of

5 Results By overlaying the different Hiccup Charts for all the Azul Zing and Java HotSpot runs, we can clearly see that response time consistency is vastly different for the two JVMs. While both JVMs performed well approximately 90% or the time (or 9 out of every 10 transactions), Java HotSpot starts to encounter response time delays at the 95 th percentile directly associated with CMS s young generation collector. Pauses for Java HotSpot at 20 GB approach 500 milliseconds (or ½ second) at the 99.9 th percentile. At 40 GB Java HotSpot approaches 1 second pauses, and at 60 GB, the JVM approaches 2 seconds. On even larger heaps Java HotSpot outliers start to dramatically increase (i.e. 5 seconds at 100 GB) and could not complete the benchmark at 200 GB because of sever thrashing. Figure 2 Aggregated Hiccup Chart Showing Pauses in Milliseconds From the graph in figure 2 Azul Zing shows highly consistent response time behavior across the entire benchmark spectrum. Whether at 20 GB or 200 GB, Zing response times are less than 30 milliseconds, with only a few outliers in the tails of the distributions as shown in Figure 3: 9 of

Figure 3 Hiccup Chart for Azul Zing using 200 GB heap When comparing the performance and consistency of the two JVMs, Azul Zing showed 22x better max outliers than Java HotSpot at 20 GB and more than a 250x advantage at 100 GB. While response time profiles of the two JVMs where very different, the throughput of the date grid as measured by RadarGun was very close, with only a slight advantage to Zing (about 1 3% across the nodes) over the short duration of this benchmark. 6 Conclusion This benchmark study clearly demonstrates that while In-Memory Computing (IMC) techniques, such as in-memory data grids (IMGDs), can improve overall performance and throughput, response time consistency can vary based on your choice of JVM. For IMDG deployments that require runtime consistency across a range of Java heap sizes, only Azul Zing provides a viable solution. When IMDGs are deployed with strict SLAs below 50-500 milliseconds, only Azul Zing will guarantee success. For JBoss Data Grid configurations where node timeouts needs to be very low (e.g. under 50 milliseconds), only the Zing runtime can guarantee response times that will not cause nodes to go offline. In additional to providing much better response time performance, Azul Zing held a small throughput advantage (i.e. 1-3%) for this short duration benchmark (15-120 minutes). Had the benchmark run for several hours to more accurately reflect realworld conditions, it is likely the Java HotSpot CMS collector would have encountered even larger, full garbage collection pauses which would have further reduced throughput metrics. These performance variances of the Java HotSpot JVM not only effect metrics such as Sustained Throughput (i.e. a throughput value which never exceeds a specific response time SLA), but can also impact time-to-market, when organizations need to carefully tune and resize their Java HotSpot JVMs in order to avoid devastating pauses. For some organizations that need consistent response times, Java HotSpot may require reducing the number of replicated nodes or even eliminating some grid functionality that could increase load. 10 of

Therefore, Azul Zing is a key component for JBoss Data Grid deployments that: 1. require response time consistency across a range of node sizes (for example, in order to meet SLAs) 2. would benefit from larger individual L1/L2 data nodes (up to 340 GB) 3. need lower data grid timeouts (< 50 msec) 4. benefit from a simpler configuration of fewer, yet large data nodes 11 of

7 References Red Hat JBoss Data Grid http://www.redhat.com/products/jbossenterprisemiddleware/data-grid/ Azul Systems C4 Continuously Concurrent Compacting Collector (ISMM paper) http://www.azulsystems.com/products/zing/c4-java-garbage-collector-wp Understanding Java Garbage Collection White Paper http://www.azulsystems.com/dev/resources/wp/understanding_java_gc RadarGun Framework Tutorial on Github https://github.com/radargun/radargun/wiki/five-minute-tutorial JHiccup open source performance measurement tool http://www.azulsystems.com/jhiccup Azul Inspector http://www.azulsystems.com/dev_resources/azul_inspector Azul Systems Zing FAQ http://www.azulsystems.com/products/zing/faq Contact Azul Systems Phone: +1.650.0.6500 Email: info@azulsystems.com www.azulsystems.com Red Hat JBoss Data Grid Phone: +1.888.REDHAT1 WebForm: www.redhat.com/contact/sales.html www.redhat.com 12 of

8 Appendix 8.1 Test Durations and Settings RadarGun Benchmark Configuration 20GB heap test Benchmark Duration 15 minute runs Message Payload Sizes 15% 1024 bytes, 35% 2048 bytes, 50% 4096 bytes Mode of Data Grid Operation Distributed Heap Priming 35 45% Transactions 50,000 Transaction mix 67% read, 32% write, 1% remove Number of threads 30 RadarGun Benchmark Configuration 40GB heap test Benchmark Duration 15 minute runs Message Payload Sizes 15% 1024 bytes, 35% 2048 bytes, 50% 4096 bytes Mode of Data Grid Operation Distributed Heap Priming 35 45% Transactions 50,000 Transaction mix 67% read, 32% write, 1% remove Number of threads 60 RadarGun Benchmark Configuration 60GB heap test Benchmark Duration 35 minute runs Message Payload Sizes 15% 1024 bytes, 35% 2048 bytes, 50% 4096 bytes Mode of Data Grid Operation Distributed Heap Priming 35 45% Transactions 50,000 Transaction mix 67% read, 32% write, 1% remove Number of threads 80 13 of

RadarGun Benchmark Configuration 100GB heap test Benchmark Duration 60 minute runs Message Payload Sizes 15% 1024 bytes, 35% 2048 bytes, 50% 4096 bytes Mode of Data Grid Operation Distributed Heap Priming 35 45% Transactions 100,000 Transaction mix 39% read, 60% write, 1% remove Number of threads 100 RadarGun Benchmark Configuration 200GB heap test Benchmark Duration 120 minute runs Message Payload Sizes 15% 1024 bytes, 35% 2048 bytes, 50% 4096 bytes Mode of Data Grid Operation Distributed Heap Priming 35 45% Transactions 200,000 Transaction mix 39% read, 60% write, 1% remove Number of threads 100 14 of

8.2 Hiccup Charts for All Runs Zing 200 GB 15 of

Zing 100 GB 16 of

Zing 60 GB 17 of

Zing 40 GB 18 of

Zing 20 GB 19 of

Java HotSpot 100 GB 20 of

Java HotSpot 60 GB 21 of

Java HotSpot 40 GB 22 of

Java HotSpot 20 GB of