当前教程
Jfr - 解析和打印飞行记录器文件

Jfr - 解析和打印飞行记录器文件

 

介绍 Jfr

jfr - 解析和打印飞行记录器文件

 

概要

要将飞行记录的内容打印到标准输出

jfr print [选项] 文件

要打印有关飞行记录事件的元数据信息

jfr metadata 文件

要将块文件组装成飞行记录文件

jfr assemble 存储库 文件

要将飞行记录文件分解成块文件

jfr disassmble [选项] 文件

要查看飞行记录文件的摘要统计信息

jfr summary 文件

选项

可选: 指定用空格分隔的命令行选项。有关可用选项的描述,请参阅各个子组件部分。

文件

指定目标飞行记录文件 (.jfr) 的名称。

存储库

指定要组装成飞行记录的块文件的位置。

 

描述

jfr 命令提供了一个与飞行记录器文件 (.jfr) 交互的工具。主要功能是将飞行记录文件过滤、汇总并输出为人类可读的格式。还支持合并和拆分记录文件。

飞行记录文件以二进制格式创建和保存。拥有一个可以从飞行记录中提取内容、操作内容并将其转换为人类可读格式的工具,可以帮助开发人员调试 Java 应用程序的性能问题。

 

子命令

jfr 命令有几个子命令

  • 打印
  • 摘要
  • 组装
  • 拆卸
  • 元数据

jfr print 子命令

使用 jfr print 将飞行记录文件的内容打印到标准输出。语法是

jfr print [--xml|--json] [--categories <filters>] [--events <filters>] [--stack-depth <depth>] <file>

其中

--xml

以 XML 格式打印记录

--json

以 JSON 格式打印记录

--categories 过滤器

选择与类别名称匹配的事件。过滤器是一个逗号分隔的名称列表,可以是简单的、限定的或带引号的通配符模式

--events 过滤器

选择与事件名称匹配的事件。过滤器是一个逗号分隔的名称列表,可以是简单的、限定的或带引号的通配符模式

--stack-depth 深度

堆栈跟踪中的帧数,默认值为 5

文件

记录文件 (.jfr) 的位置

除非指定了 xmljson,否则打印飞行记录文件内容的默认格式是人类可读的格式。这些选项提供机器可读的输出,可以由用户创建的脚本进一步解析或处理。

使用 jfr --help print 查看过滤器的示例用法。

为了减少显示的数据量,可以过滤掉事件或事件类别。过滤器对事件的符号名称(使用 @Name 注释设置)或类别名称(使用 @Category 注释设置)进行操作。如果使用多个过滤器,则将包含来自两个过滤器的事件。如果未使用过滤器,则将打印所有事件。如果使用类别过滤器和事件过滤器的组合,则选定的事件将是两个过滤器的并集。

例如,要显示所有 GC 事件和 CPULoad 事件,可以使用以下命令

jfr print --categories GC --events CPULoad recording.jfr

事件值根据正在使用的内容类型进行格式化。例如,具有 jdk.jfr.Percentage 注释且值为 0.52 的字段将格式化为 52%。

堆栈跟踪默认情况下被截断为 5 个帧,但可以使用 --stack-depth 命令行选项增加/减少数量。

jfr summary 子命令

使用 jfr summary 打印记录的统计信息。例如,摘要可以说明记录的事件数量以及它们使用了多少磁盘空间。这对于故障排除和了解事件设置的影响很有用。

语法是

jfr summary file

其中: 文件

飞行记录文件 (.jfr) 的位置

jfr metadata 子命令

使用 jfr metadata 查看有关事件的信息,例如事件名称、类别和飞行记录文件中的字段布局。语法是

jfr metadata file

其中

文件

飞行记录文件 (.jfr) 的位置

assemble 子命令

使用 jfr assemble 将块文件组装成记录文件。

语法是

jfr assemble repository file

其中

存储库

包含块文件的存储库所在的目录

文件

飞行记录文件 (.jfr) 的位置

飞行记录信息以块的形式写入。一个块包含解析所需的所有信息。一个块通常包含对故障排除有用的事件。如果 JVM 应该崩溃,这些块可以被恢复并使用此 jfr assemble 命令创建飞行记录文件。这些块文件按时间顺序连接起来,未完成的块文件 (.part) 被排除在外。

jfr disassemble 子命令

使用 jfr disassemble 将飞行记录文件分解成其块文件片段。语法是

jfr disassemble [--max-chunks <块>] [--output <目录>] <文件>

其中

--output 目录

写入分解文件的路径,默认情况下为当前目录

--max-chunks 块

每个文件的最大块数,默认值为 5。块大小各不相同,但通常约为 15 MB。

--max-size 大小

每个文件的最大字节数。

文件

飞行记录文件 (.jfr) 的位置

此功能可用于通过删除有故障的块来修复损坏的文件。它还可以用于减小文件的大小,使其足够小以进行传输。生成的块文件命名为 myfile_1.jfrmyfile_2.jfr 等。如果需要,生成的文件名将用零填充以保持时间顺序。例如,如果记录包含超过 100 个块,则块文件名将为 myfile_001.jfr

 

版本和帮助子命令

使用 jfr --versionjfr version 查看此 jfr 命令的版本字符串信息。

要获取有关任何 jfr 子命令的帮助,请使用

jfr <--help|help> [subcommand]

其中

[子命令] 是以下任何一个

  • 打印
  • 元数据
  • 摘要
  • 组装
  • 拆卸

更多学习


上次更新: 2021 年 9 月 14 日


当前教程
Jfr - 解析和打印飞行记录器文件