4.2. 使用诊断命令(JCMD)配置 JDK Flight Recorder


您可以使用 Java 诊断命令配置 JDK Flight Recorder (JFR)。执行诊断命令的最简单方法是使用位于 Java 安装目录中的 jcmd 工具。若要使用命令,您必须传递 JVM 的进程标识符或主类的名称,并将实际命令作为参数传递给 jcmd。您可以通过运行不带参数的 jcmd 或主类名称来检索 JVM 或主类的名称。jps(Java Process Status)工具列出了目标系统上其具有访问权限的 JVM。

要查看所有正在运行的 Java 进程的列表,请使用不带任何参数的 jcmd 命令。要查看正在运行的 Java 应用程序可用的命令的完整列表,请在进程标识符或主类的名称后将 help 指定为诊断命令。

对 JFR 使用以下诊断命令:

4.2.1. 启动 JFR

使用 JFR.start 诊断命令启动 flight 记录。例如:

jcmd <PID> JFR.start delay=10s duration=10m filename=recording.jfr
Copy to Clipboard Toggle word wrap
Expand
表 4.1. 下表列出了您可以使用的参数:
参数描述数据类型默认值

name

记录的名称

字符串

-

设置

服务器端模板

字符串

-

duration

记录持续时间

Time

0s

filename

生成记录文件名

字符串

-

maxAge

缓冲数据的最长期限

Time

0s

maxsize

缓冲区的最大大小(以字节为单位)

Long

0

dumponexit

JVM 关闭时运行的转储记录

布尔值

-

path-to-gc-roots

收集垃圾收集器 root 的路径

布尔值

False

4.2.2. 停止 JFR

使用 JFR.stop 诊断命令停止运行 flight 记录。例如:

jcmd <PID> JFR.stop name=output_file
Copy to Clipboard Toggle word wrap
Expand
表 4.2. 下表列出了您可以使用的参数。
参数描述数据类型默认值

name

记录的名称

字符串

-

filename

将记录数据复制到文件中

字符串

-

4.2.3. 检查 JFR

使用 JFR.check 命令显示正在进行中的记录的信息。例如:

jcmd <PID> JFR.check
Copy to Clipboard Toggle word wrap
Expand
表 4.3. 下表列出了您可以使用的参数。
参数描述数据类型默认值

name

记录的名称

字符串

-

filename

将记录数据复制到文件中

字符串

-

maxAge

转储文件的最大持续时间

Time

0s

maxsize

转储的最大字节数

Long

0

begin

开始转储数据的时间

字符串

-

end

转储数据的结束时间

字符串

-

path-to-gc-roots

收集垃圾收集器 root 的路径

布尔值

false

4.2.4. dump JFR

使用 JFR.dump 诊断命令将 flight 记录的内容复制到文件中。例如:

jcmd <PID> JFR.dump name=output_file filename=output.jfr
Copy to Clipboard Toggle word wrap
Expand
表 4.4. 下表列出了您可以使用的参数。
参数描述数据类型默认值

name

记录的名称

字符串

-

filename

将记录数据复制到文件中

字符串

-

maxAge

转储文件的最大持续时间

Time

0s

maxsize

转储的最大字节数

Long

0

begin

开始转储数据的时间

字符串

-

end

转储数据的结束时间

字符串

-

path-to-gc-roots

收集垃圾收集器 root 的路径

布尔值

false

4.2.5. 配置 JFR

使用 JFR.configure 诊断命令配置 flight 记录。例如:

jcmd <PID> JFR.configure repositorypath=/home/jfr/recordings
Copy to Clipboard Toggle word wrap
Expand
表 4.5. 下表列出了您可以使用的参数。
参数描述数据类型默认值

repositorypath

到仓库的路径

字符串

-

dumppath

转储的路径

字符串

-

stackdepth

堆栈深度

Jlong

64

globalbuffercount

全局缓冲区数

Jlong

32

globalbuffersize

全局缓冲区的大小

Jlong

524288

thread_buffer_size

线程缓冲的大小

Jlong

8192

memorysize

总内存大小

Jlong

16777216

maxchunksize

单个磁盘块的大小

Jlong

12582912

Samplethreads

激活线程抽样

布尔值

true

更新于 2024-05-11

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat