Towards High Performance Processing in Modern Java-based Control Systems. Marek Misiowiec Wojciech Buczak, Mark Buttner CERN ICalepcs 2011

Similar documents
JVM Memory Model and GC

Garbage Collection. Hwansoo Han

New Java performance developments: compilation and garbage collection

HBase Practice At Xiaomi.

NG2C: Pretenuring Garbage Collection with Dynamic Generations for HotSpot Big Data Applications

Exploiting the Behavior of Generational Garbage Collector

Fundamentals of GC Tuning. Charlie Hunt JVM & Performance Junkie

Java Performance Tuning

The C4 Collector. Or: the Application memory wall will remain until compaction is solved. Gil Tene Balaji Iyengar Michael Wolf

The G1 GC in JDK 9. Erik Duveblad Senior Member of Technical Staf Oracle JVM GC Team October, 2017

Attila Szegedi, Software

Concurrent Garbage Collection

Optimising Multicore JVMs. Khaled Alnowaiser

Java Memory Management. Märt Bakhoff Java Fundamentals

G1 Garbage Collector Details and Tuning. Simone Bordet

The Garbage-First Garbage Collector

THE TROUBLE WITH MEMORY

Running class Timing on Java HotSpot VM, 1

OS-caused Long JVM Pauses - Deep Dive and Solutions

Java Garbage Collection Best Practices For Tuning GC

Generational Garbage Collection Theory and Best Practices

Do Your GC Logs Speak To You

Garbage collection. The Old Way. Manual labor. JVM and other platforms. By: Timo Jantunen

Configuring the Heap and Garbage Collector for Real- Time Programming.

Compiler construction 2009

Boosting the Priority of Garbage: Scheduling Collection on Heterogeneous Multicore Processors

Enabling Java-based VoIP backend platforms through JVM performance tuning

Java Performance Tuning From A Garbage Collection Perspective. Nagendra Nagarajayya MDE

Low latency & Mechanical Sympathy: Issues and solutions

2011 Oracle Corporation and Affiliates. Do not re-distribute!

JVM Performance Tuning with respect to Garbage Collection(GC) policies for WebSphere Application Server V6.1 - Part 1

Java Performance: The Definitive Guide

Java Performance Tuning and Optimization Student Guide

Java Without the Jitter

Kodewerk. Java Performance Services. The War on Latency. Reducing Dead Time Kirk Pepperdine Principle Kodewerk Ltd.

Debugging Your Production JVM TM Machine

Java Application Performance Tuning for AMD EPYC Processors

Lecture 15 Garbage Collection

Implementation Garbage Collection

Contents. Created by: Raúl Castillo

Garbage Collection Algorithms. Ganesh Bikshandi

JVM Troubleshooting MOOC: Troubleshooting Memory Issues in Java Applications

Algorithms for Dynamic Memory Management (236780) Lecture 4. Lecturer: Erez Petrank

Lecture 13: Garbage Collection

Insight Case Studies. Tuning the Beloved DB-Engines. Presented By Nithya Koka and Michael Arnold

The Z Garbage Collector Scalable Low-Latency GC in JDK 11

Sustainable Memory Use Allocation & (Implicit) Deallocation (mostly in Java)

JDK 9/10/11 and Garbage Collection

SPECjAppServer2002 Statistics. Methodology. Agenda. Tuning Philosophy. More Hardware Tuning. Hardware Tuning.

Shenandoah An ultra-low pause time Garbage Collector for OpenJDK. Christine H. Flood Roman Kennke

Java & Coherence Simon Cook - Sales Consultant, FMW for Financial Services

Multicore OCaml. Stephen Dolan Leo White Anil Madhavapeddy. University of Cambridge. OCaml 2014 September 5, Multicore OCaml

The Fundamentals of JVM Tuning

Azul Pauseless Garbage Collection

Runtime Application Self-Protection (RASP) Performance Metrics

Java On Steroids: Sun s High-Performance Java Implementation. History

TECHNOLOGY WHITE PAPER. Azul Pauseless Garbage Collection. Providing continuous, pauseless operation for Java applications

Garbage Collection. Steven R. Bagley

JVM Performance Study Comparing Java HotSpot to Azul Zing Using Red Hat JBoss Data Grid

PERFORMANCE ANALYSIS AND OPTIMIZATION OF SKIP LISTS FOR MODERN MULTI-CORE ARCHITECTURES

High Performance Managed Languages. Martin Thompson

A JVM Does What? Eva Andreasson Product Manager, Azul Systems

Hard Real-Time Garbage Collection in Java Virtual Machines

Garbage Collection. Akim D le, Etienne Renault, Roland Levillain. May 15, CCMP2 Garbage Collection May 15, / 35

Java Garbage Collection. Carol McDonald Java Architect Sun Microsystems, Inc.

Pause-Less GC for Improving Java Responsiveness. Charlie Gracie IBM Senior Software charliegracie

Real-Time Garbage Collection Panel JTRES 2007

Java Platform, Standard Edition HotSpot Virtual Machine Garbage Collection Tuning Guide. Release 10

Garbage Collection (aka Automatic Memory Management) Douglas Q. Hawkins. Why?

Enabling Java in Latency Sensitive Environments

Shenandoah: Theory and Practice. Christine Flood Roman Kennke Principal Software Engineers Red Hat

MEMORY MANAGEMENT HEAP, STACK AND GARBAGE COLLECTION

How to keep capacity predictions on target and cut CPU usage by 5x

Finally! Real Java for low latency and low jitter

CS Computer Systems. Lecture 8: Free Memory Management

Schism: Fragmentation-Tolerant Real-Time Garbage Collection. Fil Pizlo *

OCaml for MultiCore. Deuxième réunion du GDR GPL/LTP. LACL / Université Paris XII 21 Octobre 2009

New Features Overview

Virtualizing JBoss Enterprise Middleware with Azul

CA341 - Comparative Programming Languages

Typical Issues with Middleware

Comparison of Garbage Collectors in Java Programming Language

NUMA in High-Level Languages. Patrick Siegler Non-Uniform Memory Architectures Hasso-Plattner-Institut

It s Good to Have (JVM) Options

A new Mono GC. Paolo Molaro October 25, 2006

Dynamic Vertical Memory Scalability for OpenJDK Cloud Applications

Garbage Collection (2) Advanced Operating Systems Lecture 9

Automatic Memory Management

JBoss Performance Tuning. Bill Meyer JBoss Sr. Solutions Architect

SAP ENTERPRISE PORTAL. Scalability Study - Windows

Part I Garbage Collection Modeling: Progress Report

Limits of Parallel Marking Garbage Collection....how parallel can a GC become?

Habanero Extreme Scale Software Research Project

The Application Memory Wall

Real Time: Understanding the Trade-offs Between Determinism and Throughput

Managed runtimes & garbage collection. CSE 6341 Some slides by Kathryn McKinley

Dynamic Selection of Application-Specific Garbage Collectors

Acknowledgements These slides are based on Kathryn McKinley s slides on garbage collection as well as E Christopher Lewis s slides

Top Ten Enterprise Java performance problems. Vincent Partington Xebia

Understanding Garbage Collection

Transcription:

Towards High Performance Processing in Modern Java-based Control Systems Marek Misiowiec Wojciech Buczak, Mark Buttner CERN ICalepcs 2011

Performance with soft real time Distributed system - Monitoring & Alarms at CERN collect data from over 10 000 devices heterogenous environment tens of consoles! Performance in middle-tier process with soft real-time constraints lose no data during calculations deliver results within time frame build on standard JDK SRV! monitoring rule engine alarms 30ʼ000 data/s! 10MB/s net! 100ʼ000! calc/s! DB! DAQ! high-level middleware! 10ʼ000 monitored devices! 2!

Technical focus common view on data and devices decomposition for concurrency immutability favors parallelism multithreaded communication data uniformity parallelism memory management optimal structures and algorithms garbage collectors, 32 vs 64 bit, Java Virtual Machine settings 3!

Memory Management Garbage Collection (GC) stack! A! B! introduces non-deterministic behaviour slows the application with potentially long stop-the-world pauses C! D! to be collected! app! pauses! makes it hard to achieve real-time 4!

Soft real-time with GC Real-time is not about speed deadline! deadline! critical task" GC" " "critical task" period 1! period 2! Translates into requirements for GC we expect a degree of determinism number of stop-the-world pauses limited for a period hard real-time: fatal soft real-time: undesireable 5!

Solution steady progress in Garbage Collection techniques tuning JVM with over 50 properties memory sizes, number of GC threads, 90 s Serial Collector 00 s JVM GC history Parallel-Compacting, Concurrent Mark-Sweep now GarbageFirst 6!

Heap Garbage Collection concepts

GC concepts can work with different collectors! Young generation Old generation Eden! Survivors! Young much smaller than Old objects tend to live shortly new objects in Eden

GC concepts minor collection: stop-the-world! Young generation Old generation Young much smaller than Old objects tend to live shortly new objects in Eden moderate in Survivors

GC concepts minor collection: stop-the-world! Young generation Old generation Young much smaller than Old objects tend to live shortly new objects in Eden moderate in Survivors old in Old

GC concepts major collection: stop-the-world! Old generation 1 st marking live objects 2 nd sweeping memory

GC concepts major collection: stop-the-world! Old generation 1 st marking live objects 2 nd sweeping memory defragmentation: compacting

GC concepts Young generation Old generation Key improvements to collections: parallel multiple GC threads concurrent GC along with application 1 st marking live objects 2 nd sweeping memory defragmentation: compacting

Concurrent Mark-Sweep (CMS) parallel collection! parallel + concurrent marking & sweeping! Young generation Old generation GC threads! app threads! generational, incremental, parallel partially concurrent: marking & sweeping in stages no compacting Well tuned, most effective in our tests

GarbageFirst (G1) Meets soft real time goal with high probability default in JDK7, succeeds Concurrent Mark-Sweep targeted for multi-processors with large memories heavy use of multithreading heap with many equal regions, no generations compaction algorithmically complex enabling in Java 6:" -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC" 15!

Outcome Performance analysis with Java Standard Edition 6 fine-tuned CMS most effective, G1 close second Observations 64 bit architecture 4GB limit per JVM crossed too much memory used - performance penalty repetitive nature of processing diminishes effects of dynamic class loading long startup time is negligible short lived objects, locality 16!

Conclusions High Performance Computing with soft real time requirements can be achieved with modern JVMs JVM tuning is indispensable select most fitting garbage collector set JVM options approach 64 bit boost with restraint constant improvement in memory management G1 (Java 7) more efficient than CMS (Java 6) 17!