[VDIASI23] - Ana-Maria Mihălceanu - A Glance At The Java Performance Toolbox

Explore the Java Performance Toolbox, featuring native memory tracking, JFR, and more, to monitor, troubleshoot, and optimize Java application performance, from Docker and Kubernetes to metrics and visualization tools.

Key takeaways
  • JDK has a multitude of tools for Java performance monitoring and troubleshooting.
  • Native memory tracking is a new feature in JDK 11 that allows monitoring of native memory usage.
  • JFR (Java Flight Recorder) is a tool that records events in the JVM, allowing for in-depth analysis of application performance.
  • The JDK Flat Recorder is a tool that allows for profiling of Java applications.
  • JCMD is a command-line tool that allows for control over JVM flags and options.
  • Jinfo is a tool that provides information about JVM flags and options.
  • JStat is a tool that provides statistics about running Java processes.
  • Docker and Kubernetes can be used to containerize and deploy Java applications.
  • Java applications should be designed to be modular and efficient to reduce memory usage.
  • The Event Streams API allows for exposing JFR data through other management APIs.
  • Grafana and Prometheus can be used for monitoring and visualization of Java application performance.
  • The micrometer API provides metrics for Java applications, including request runtime and requests per second.
  • JFR allows for profiling of Java applications and can be used to detect memory leaks.
  • Garbage collection can be configured and monitored using the JDK GC Hotel tool.
  • The JDK event streaming API is useful for processing and analyzing JFR data.
  • Jlink is a tool that allows for building and running Java applications with custom flags and options.