Understanding GC and Application Responsiveness Characterization in Java environments

Understanding GC and Application Responsiveness Characterization in Java environments

Bayview B

Managing, monitoring, and improving application responsiveness is a common need for many software professionals. Whether you develop Java applications or manage them, understanding application responsiveness and the major mechanisms that affect it is key to achieving successful applications and happy users. In this workshop, Gil Tene (CTO, Azul Systems) will dive deeply into two common areas of concern for application responsiveness in Java environments: Garbage Collection & Application Response Time Characterization. The workshop will cover these two areas in depth.


We will start with a detailed discussion of Garbage Collection mechanisms: Garbage Collection is an integral part of application behavior on Java platforms, and is often dominantly responsible for application responsiveness behavior. As such, it is critically important for Java developers and application managers to understand the basic workings of garbage collectors so that they can better gauge both as application architecture choices and the actions they can take in selecting and tuning collector mechanisms. Gil will review and classify the various garbage collectors and collection techniques available in JVMs today, and provide an overview of common garbage collection techniques including generational, parallel, stop-the-world, incremental, concurrent and mostly-concurrent algorithms. We will define terms and metrics common to all collectors, and classify each major JVM collector's mechanisms and characteristics and discuss the tradeoffs involved in balancing requirements for responsiveness, throughput, space, and available memory across varying scale levels. We will include an interactive discussion of how these tradeoffs play off in the real world, and discuss ways to minimize or completely eliminate application responsiveness impacts from Garbage Collection.


We will continue with a detailed discussion of Application Responsiveness Characterization: Understanding application responsiveness and latency is critical for delivering good application behavior. Gil will start with a discussion of the common needs and motivations for understanding the behavior of application response time and latency, and ways to successfully capture these descriptions and relate them to business needs. However, good characterization of bad data is useless. If measurements of response time present false or misleading latency information, even the best analysis can lead to wrong operational decisions and poor application experience. Gil will demonstrate and discusses some common pitfalls, false assumptions and problematic measurement techniques that lead to dramatically incorrect reporting results, and will explain how these false measurements naturally occur using the most common measurement methods and tools in use today. We will discuss the coordinated data omission problem, and ways to work around it, and will introduce and demonstrate how simple and recently open sourced tools can be used to improve and gain higher confidence in both latency measurement and reporting.