Why Monitor the Java Virtual Machine?
The Java Virtual Machine (JVM) is the core of the Java application architecture. It interprets and translates the Java byte code into operations on the host platform. Because the Java middleware - including application servers such as Tomcat, JBoss EAP, WildFly, Glassfish, WebSphere and WebLogic - runs on the JVM, a performance issue in the JVM has a significant impact on business services it supports.
Monitoring of the JVM is an integral part of any Java application performance monitoring strategy. IT Ops and DevOps teams use JVM performance metrics to troubleshoot server-side bottlenecks. Developers and architects can also benefit from JVM monitoring by uncovering code-level issues.
End-to-End JVM Performance Monitoring with eG Enterprise
eG Enterprise is a state-of-the-art Java performance monitoring solution that goes deep into analyzing issues across all Java tiers—from user experience, web front-end, application server, JVM, all the way to backend database and storage. Using JMX, eG Enterprise monitors JVMs in depth, tracking key performance indicators of all aspects of a JVM’s performance.
Unlike other JVM monitoring tools, from a single, easy-to-use web console, administrators and developers can analyze JVM performance, correlate it with other infrastructure metrics (server, virtualization, storage, etc.), and see actionable insights in the form of proactive alerts and intuitive dashboards for rapid problem diagnosis.
What JVM Performance Monitoring with eG Enterprise Delivers?
Heap and Non-Heap Memory Management
Java applications can fail or slow down if the memory available in the JVM is insufficient to handle the workload. eG Enterprise tracks usage levels of the JVM’s heap and non-heap memory and proactively alerts if memory usage levels are high.
Analysis of each of the memory pools including Eden space, Survivor space, Tenured gen and Perm gen space highlights how the JVM’s memory pool settings can be right-sized for improved performance. Memory monitoring at the JVM level also highlights any out-of-memory exceptions and potential memory leaks. In the latter case, top object types consuming memory are highlighted, making it easier for Java developers to fix memory leaks.
JVM Thread Monitoring
Most production Java applications are multi-threaded. eG Enterprise tracks all the thread activity in the JVM. With thread-level metrics, Java application administrators and developers can:
- Proactively identify situations when thread leaks are occurring in the JVM and could ultimately result in the Java application slowing down or failing.
- Receive automatic alerts for situations where one or a few threads are taking up excessive CPU resources, potentially slowing down all processing by the JVM.
- In a single click, drill down to the exact method/line of code that is causing the CPU spike.
- Identify thread blocking and deadlocks: Easily see the stack trace of a blocked thread and its blocking thread to find out why there is blocking or a deadlock condition.
Monitor Garbage Collection Activity
eG Enterprise allows you to easily track all garbage collection activity in the JVM: Identify when garbage collection happened, how often it is happening, how much memory is being collected each time and how long the garbage collection activity is running for.
- Identify times when garbage collection is taking too long and adversely affecting Java application performance
- Compare the performance of different garbage collection settings and determine the optimal setting for each application, using historical and real-time data, plus custom reports
- Monitor JVM uptime statistics and determine when restarts occur unexpectedly
Proactively Detect Memory Leaks in Java Application Code
Although the JVM performs automatic memory management, it cannot counter for memory leaks in your Java applications. Memory leaks are difficult to identify because they can take several days or weeks to manifest. Identifying the cause of Java memory leaks can be challenging, especially in production. eG Enterprise periodically takes and analyzes memory dumps of the JVM and identifies the top consumers of Java heap memory. Based on the automatic analysis of Java memory usage by eG Enterprise, administrators can be alerted to potential memory leaks in the application and can easily identify the exact Java class that may be resulting in a memory leak.
|JVMs Supported Out-of-the-Box by eG Enterprise
||Java HotSpot VM, Oracle JRockit JVM, OpenJDK JVM, IBM J9, SAP JVM, Azul Zing
Key JVM Performance Questions Answered by eG Enterprise
- Is there any runaway thread hogging the CPU?
- Which line of code is it executing, in which class, and which method?
- Is the JVM heap and non-heap memory sized correctly?
- Are there any out-of-memory-exceptions or memory leaks?
- When does garbage collection happen, and how much memory is freed up each time?
- Are there any thread deadlocks causing application processing to hang?
- Single solution to detect and resolve Java application problems, ensuring high service uptime and business continuity
- Faster troubleshooting with real-time alerts that pinpoint the exact line of code that is impacting Java applications
- In-depth analytics to enable architects to optimize Java applications for scaling and support of additional users
- Single pane of glass to monitor everything Java—from app server, JVM, database, all the way to server and storage infrastructure
Why eG? One Monitor to Manage All of IT.
- eG Enterprise is the only single pane-of-glass, virtualization-aware, auto-diagnostic IT infrastructure performance monitor
- Gain actionable answers to performance issues, wherever they originate, from application code to bare metal
- Understand the impact of infrastructure issues on application performance and user experience
- Unify IT performance monitoring, alerting, diagnosing, reporting, and capacity planning in a single console
- Ensure a great user experience and dramatically improve IT efficiency
- Benefit from flexible deployment options (on-premises and SaaS) and IT monitoring approaches (agentless and agent-based)