Bottlenecks detected in the JVM
Java Agent monitoring Java Virtual Machines detect server-side bottlenecks for slow user interactions & API calls. The bottlenecks detected in the JVM are either occurring inside the JVM (for example lock contentions on synchronization or GC pauses) or occurring downstream from the monitored JVM (a particular JDBC call to database or web service call over HTTP to a node not monitored by Plumbr).
Plumbr Java Agent uses bytecode instrumentation and JVMTI hooks to capture the information about the bottlenecks from within the JVM and link the bottleneck with the particular user interaction.
As a result, Plumbr Java Agent is able to expose the following as bottlenecks in JVM:
- JDBC calls to databases, including MySQL, Oracle, Postgres and IBM DB2 databases.
- Lock contention issues
- GC pauses
- Filesystem operations
- WebService invocations over HTTP
- MongoDB calls
- Lucene searches and index updates
- Threadpooling-related issues
- N+1 issues occurring while communicating with remote systems