Photo by Brett Jordan on Unsplash
Managing JVM Applications in Production
Defensive Driving
Thirty years of unbroken compatibility promises accumulated to quite a number of choices between different concepts in the Java Virtual Machine (JVM) runtime environment (Figure 1). Looking at some of those ideas today makes them appear to be a statement of Zeitgeist more than anything else, but you still have to choose the parameters for running your applications. Understanding how the JVM manages memory and how to observe the many metrics it exposes is essential to operating JVM applications in production.
Figure 1: Java Virtual Machine tuning is an art in and of itself. Over the last 30 years, many knobs have been added, but only a subset is crucial for operators to know.
To observe a JVM application's behavior and memory usage, operators need more than a few heap graphs: They need a reliable way to observe JVM memory usage, interpret it correctly, and spot failure patterns early enough to intervene. In the following sefctions, we dive into the details of JVM memory observation: which metrics exist, how to retrieve them, how to visualize them in Grafana, and what memory trends tend to precede JVM memory failures.
JVM Memory Areas Explained
The JVM
...Buy this article as PDF
(incl. VAT)
Buy ADMIN Magazine
Subscribe to our ADMIN Newsletters
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Most Popular
Support Our Work
ADMIN content is made possible with support from readers like you. Please consider contributing when you've found an article to be beneficial.
