第 1 章 JDK Flight Recorder 简介
JDK Flight Recorder (JFR)是用于监控和分析 Java 应用程序的低开销框架。如需更多信息,请参阅 JEP 328: Flight Recorder。
您可以从源自 JVM 和应用代码的事件收集数据。然后,数据会在内存中写入。首先,到 thread-local 缓冲区,然后提升到固定大小的全局环缓冲,然后再刷新到磁盘上的 JFR 文件(*.jfr)。其他应用可以使用这些文件进行分析。例如,JDK Mission Control (JMC)工具。
1.1. JDK Flight Recorder (JFR)组件
您可以使用 JFR 功能观察在 JVM 内运行的事件,然后从这些观察的事件中收集数据创建记录。
以下列表详情主要 JFR 功能:
- 记录
- 您可以管理系统记录。每个记录都有唯一的配置。您可以启动或停止记录,或者根据需要将其保存到磁盘中。
- 事件
您可以使用事件或自定义事件跟踪 Java 应用程序的数据和元数据,然后从 JFR 文件中的任一事件类型保存数据和元数据。您可以使用各种工具,如 Java Mission Control(JMC)、
jcmd等等,来查看和分析存储在 JFR 文件中的信息。Java 虚拟机(JVM)具有许多持续添加的预先存在的事件。用户可使用 API 将自定义事件注入其应用程序。
您可以在记录时启用或禁用任何事件,以便通过提供事件配置来最小化开销。这些配置采用
xml文档的格式,称为 JFR profiles(*.jfc)。OpenJDK 附带了以下两个配置集,用于最常见的用例集合:-
默认: 默认配置集是一个低overhead 配置,它可以安全地在生产环境中使用。通常,开销小于 1%。 -
Profile :
配置集是一个低overhead 配置,非常适合性能分析。通常,开销小于 2%。
-