JFR 命令行工具
介绍 Jfr
jfr - 解析和打印 Flight Recorder 文件
概要
要将飞行记录的内容打印到标准输出
jfr print [选项] 文件
要打印有关飞行记录事件的元数据信息
jfr metadata 文件
要将块文件组装成飞行记录文件
jfr assemble 存储库 文件
要将飞行记录文件拆解成块文件
jfr disassmble [选项] 文件
要查看飞行记录文件的摘要统计信息
jfr summary 文件
选项
可选:指定以空格分隔的命令行选项。有关可用选项的说明,请参阅各个子组件部分。
文件
指定目标飞行记录文件 (.jfr
) 的名称。
存储库
指定要组装成飞行记录的块文件的位置。
描述
jfr
命令提供了一个与飞行记录器文件 (.jfr
) 交互的工具。其主要功能是将飞行记录文件过滤、汇总并输出为人类可读的格式。它还支持合并和拆分记录文件。
飞行记录文件以二进制格式创建并保存。拥有一个可以从飞行记录中提取内容、操作内容并将其转换为人类可读格式的工具,有助于开发人员调试 Java 应用程序的性能问题。
子命令
jfr
命令有几个子命令
-
print
-
summary
-
assemble
-
disassemble
-
metadata
jfr print
子命令
使用 jfr print
将飞行记录文件的内容打印到标准输出。语法为
jfr print [--xml|--json] [--categories <filters>] [--events <filters>] [--stack-depth <depth>] <file>
其中
--xml
以 XML 格式打印记录
--json
以 JSON 格式打印记录
--categories 过滤器
选择与类别名称匹配的事件。过滤器是一个逗号分隔的名称列表,包括简单名称和/或限定名称,以及/或引用的 glob 模式
--events 过滤器
选择与事件名称匹配的事件。过滤器是一个逗号分隔的名称列表,包括简单名称和/或限定名称,以及/或引用的 glob 模式
--stack-depth 深度
堆栈跟踪中的帧数,默认值为 5
文件
记录文件 (.jfr
) 的位置
除非指定了 xml
或 json
,否则打印飞行记录文件内容的默认格式为人类可读形式。这些选项提供机器可读的输出,可以由用户创建的脚本进一步解析或处理。
使用 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.jfr
、myfile_2.jfr
等。如果需要,生成的文件名将用零填充以保持时间顺序。例如,如果记录包含超过 100 个块,则块文件名将为 myfile_001.jfr
。
版本和帮助子命令
使用 jfr --version
或 jfr version
查看此 jfr 命令的版本字符串信息。
要获取有关任何 jfr 子命令的帮助,请使用
jfr <--help|help> [subcommand]
其中
[子命令]
是以下任何一个
-
print
-
metadata
-
summary
-
assemble
-
disassemble
上次更新: 2021 年 9 月 14 日