3.3. Java Flight Recorder


3.3.1. 关于 Java Flight Recorder

Oracle JDK Mission Control 用户指南 将 Java Flight Recorder (JFR)描述为"profiling and event collection framework"。开发人员可以将 JFR 与 JDK Mission Control (JMC)搭配使用,以收集有关 Java 虚拟机(JVM)和其他 Java 应用程序的数据。开发人员可以使用这些数据来识别和修复性能问题。

JFR 经过仔细设计,因此需要低程度的开销(消耗资源)。这意味着,JFR 分析可在某些生产环境中持续运行,且影响最小。开发人员可以使用 JFR 和 JMC 在事件后快速分析运行时信息。

注意

JFR 由 Java OpenJDK 8u262 或更高版本提供,作为 Java Diagnostic Command Tool 的一部分。

3.3.2. Java Flight Recorder 分析配置

开发人员可以修改性能分析配置,以自定义 Java Flight Recorder (JFR)的实例。JFR 提供两个不同的性能分析配置:

  • 默认 :提供稀疏信息抽样 ; 低性能分析详情
  • 配置集 :提供更全面的信息抽样;中文性能分析详细信息

开发人员可以修改任何配置文件,以启用额外的事件指标抽样。

3.3.3. 启用 Java Flight Recorder 配置文件捕获

开发人员可以使用 Java Flight Recorder (JFR)在裸机或 Red Hat OpenShift Container Platform 上对 JBoss EAP 安装进行性能分析。

要了解在 OpenShift 中使用 JFR 的信息,请参阅对 Cryostat:容器的 JDK Flight Recorder 简介

3.3.3.1. 在裸机上启用 Java Flight Recorder 分析

开发人员可以使用命令行或 Java Mission Control (JMC)桌面应用程序启动 Java Flight Recorder (JFR)配置集。

您可以使用配置标志在 Java 虚拟机(JVM)上使用 JBoss EAP 配置 Java Flight Recorder (JFR)分析。

JVM 配置示例

-XX:StartFlightRecording=delay=15s,duration=60s,name=jboss-eap-profile, filename=C:\TEMP\jboss-eap-profile.jfr,settings=default
Copy to Clipboard Toggle word wrap

通过 StartFlightRecording=delay 配置标志,您可以在启动性能分析会话前设置 JVM 引导后等待的时间 JFR。在前面的示例中,StartFlightRecording=delay 设置为 15 秒,这意味着性能分析将在 15 秒延迟后启动。

持续时间 配置标志允许您设置每个性能分析会话的时间长度。在前面的示例中,持续时间 设置为 60 秒。

name 配置标志允许您在内存配置集名称中设置。在本例中,内存配置文件名称设置为 jboss-eap-profile

filename 配置标志允许您设置要保存文件的文件名和路径。在本例中,filename 设置为 C:\TEMP\jboss-eap-profile.jfr

通过设置 配置标志,您可以选择性能分析配置。在本例中 设置为默认。请注意,配置集配置的文件扩展已被排除。

分析会话完成后,将在 filename 选项定义的文件路径上创建文件。

您可以使用 Java Flight Recorder (JFR) JFR.start 命令配置正在运行的 JBoss EAP Java 虚拟机(JVM)以使用 Java 命令工具 jcmd 进行性能分析。

流程

  • 使用以下命令之一:

    • 对于 Linux 操作系统:

      $ jcmd <PID> JFR.start duration=TIME filename=path/to/YOUR_PROFILE_NAME.jfr
      Copy to Clipboard Toggle word wrap

      例如:

      用于 Linux 的 JFR.start 命令

      $ jcmd <PID> JFR.start duration=60s filename=/tmp/jboss-eap-profile.jfr
      Copy to Clipboard Toggle word wrap

      JFR 分析会话启动后,您将收到以下确认消息:

      $ jcmd <PID> JFR.start duration=60s filename=/tmp/jboss-eap-profile.jfr
      <PID>:
      Started recording 1. The result will be written to:
      
      /tmp/jboss-eap-profile.jfr
      Copy to Clipboard Toggle word wrap
    • 对于 Windows 操作系统:

      > jcmd.exe <PID> JFR.start duration=TIME filename=path/to/YOUR_PROFILE_NAME.jfr
      Copy to Clipboard Toggle word wrap

      例如:

      用于 Windows 的 JFR.start 命令示例

      > jcmd.exe <PID> JFR.start duration=60s filename=C:\TEMP\jboss-eap-profile.jfr
      Copy to Clipboard Toggle word wrap

      JFR 分析会话启动后,您将收到以下确认消息:

      > jcmd.exe <PID> JFR.start duration=60s filename=C:\TEMP\jboss-eap-profile.jfr
      <PID>:
      Started recording 1. The result will be written to:
      
      C:\TEMP\jboss-eap-profile.jfr
      Copy to Clipboard Toggle word wrap

duration 选项允许您设置每个性能分析会话的时间长度。在前面的示例命令中,持续时间 设置为 60 秒。

filename 选项允许您设置要保存该文件的文件名和路径。在前面的示例命令中,在 Linux 示例中将 filename 设置为 /tmp/jboss-eap-profile.jfr,在 Windows 示例中为 C:\TEMP\jboss-eap-profile.jfr

您可以使用 Java Mission Control (JMC)连接在与 JMC 实例相同的服务器上运行的本地 Java 虚拟机(JVM)。

先决条件

  • 配置了 JBoss EAP 库的 Java Mission Control。具体步骤请查看 如何远程连接 Java Mission Control?
  • JBoss EAP 被配置为远程监控连接,并且在 ApplicationRealm 中创建用于监控的用户。

流程

  1. Open Java Mission Control。
  2. JVM 浏览器 窗格中,选择 JVM to profile。
  3. 展开 JVM 的下拉菜单,以显示 Flight Recorder 项。

    1. 右键单击 Flight Recorder 打开子菜单,选择 Start Flight Recording…​

      图 3.1. JMC 中的 JVM 浏览器

  4. Start Flight Recording 窗口中,配置选项用于性能分析。

    图 3.2. JVM 分析设置

  5. 单击 Next 以了解详细的低级别设置。

    图 3.3. JVM 分析高级设置

  6. 单击 Finish 以开始性能分析。

您可以使用 Java Mission Control (JMC)连接到远程 Java 虚拟机(JVM)配置集。

先决条件

  • 使用 JBoss EAP 库配置 Java Mission Control。具体步骤请查看 如何远程连接 Java Mission Control?
  • 配置 JBoss EAP 以进行远程监控连接,并在 ApplicationRealm 中创建用于监控的用户。

流程

  1. Open Java Mission Control。
  2. File 菜单中,选择 Connect
  3. Connect 窗口中,选择 Create a new connection,然后单击 Next

    图 3.4. JMC 中的连接窗口

  4. JVM 连接 窗口中,完成要配置文件的远程 JBoss EAP JVM 的详细信息。

    图 3.5. JMC 中的 JVM 连接详情

    1. Host 字段中,添加您的主机名或 IP 地址。
    2. Port 字段中,添加您的端口号。
    3. User 字段中,添加您在 ApplicationRealm 中创建的用户。
    4. Password 字段中,添加在 ApplicationRealm 中创建的密码。
    5. 可选 要将凭据存储在设置文件中,请点击在设置文件 中存储凭据 旁边的复选框。
  5. Custom JMX Service URL 覆盖默认设置。

    图 3.6. 用于 JVM 连接的 JMX 服务 URL

  6. 更改 JMX 服务 URL 以定义 JBoss 远程协议。

    service:jmx:remote+http://<host>:9990
    Copy to Clipboard Toggle word wrap
  7. Test connection 验证您的设置。
  8. Finish 保存您的设置。
  9. 这时将显示 JMXRMI Preferences 未设置 警告信息。

    图 3.7. JMXRMI 首选项警告信息

    1. 单击 OK 以接受连接尝试。
  10. JVM 浏览器 窗格中,选择 JVM to profile。

    1. 展开 JVM 的下拉菜单,以显示 Flight Recorder 项。
    2. 右键单击 Flight Recorder 打开子菜单,然后选择 Start Flight Recording…​

      图 3.8. 使用 JMC 配置集菜单连接远程 JVM

  11. Start Flight Recording 窗口中,配置选项用于性能分析。

    图 3.9. JVM 分析设置

  12. 单击 Next 以了解详细的低级别设置。

    图 3.10. JVM 分析高级设置

  13. 单击 Finish 以开始性能分析。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat