OpenJDK Mission Control

JDK Flight Recorder (JFR) is an agent in the HotSpot and IBM Semeru Runtimes JVMs that provides a low-overhead, production-ready sampling profiler and monitoring tool. JFR is very similar to the IBM Java Health Center agent.

JDK Mission Control (JMC) is a project by OpenJDK that provides a GUI client to review JFR collections. Various downloads of the JMC client are available including from Eclipse Adoptium. Review the JMC User Guide.

IBM Semeru Runtimes Support

IBM Semeru Runtimes supports JFR starting with:

  • Technical preview on all supported platforms since OpenJ9 0.51:
    • 11.0.27, 17.0.15, and 21.0.7
    • Only jcmd enablement at runtime for headless collection (JFR.start/stop/dump)
  • Technical preview on Linux x64 and AArch64 since OpenJ9 0.49:
    • 11.0.26, 17.0.14, and 21.0.6
    • Only jcmd enablement at runtime for headless collection (JFR.start/stop/dump)

Start JFR on IBM Semeru Runtimes

jcmd $PID JFR.start filename=/tmp/defaultJ9recording.jfr duration=30m

Stop JFR on IBM Semeru Runtimes

jcmd $PID JFR.stop

HotSpot

Recording data with the agent on HotSpot

There are various HotSpot JVM options to produce JFR recordings. Summaries:

Mission Control Usage

Time Zones

The data stored in JFR files are in UTC time. The time zone displayed in JMC are in local time. If the local time where the JFR files were produced does not match the local time of the JMC client machine, then you may set the time zone when launching JMC using the time zone name; for example:

-vmargs
-Duser.timezone=America/New_York