JFR.dump 失败。 "No data in specified interval"

JFR.dump fails. "No data in specified interval"

我在执行 jcmd 115 JFR.dump name=continuous_recording 时收到以下错误消息:

115:
Dump failed. No data found in the specified interval.

我使用以下配置开始录制:

XX:StartFlightRecording=disk=true,dumponexit=true,
filename=/home/site/diagnostics/recording.jfr,
maxsize=1024m,maxage=1d,name=continuous_recording

可能是缓冲区尚未填充最小块大小。但是 JFR.check 命令不提供该信息。

更新:

如果我 运行 JFR.dump 不指定录音名称,我可以从 Java 应用程序获取转储。我尝试用引号(转义和未转义)封装录音名称并得到与之前相同的错误。

005c736ce3ee:/home# jcmd 115 JFR.dump filename="home/6_10_dump1.jfr"
Picked up JAVA_TOOL_OPTIONS:  -Djava.net.preferIPv4Stack=true
115:
Dumped recording, 155.8 MB written to: /home/6_10_dump1.jfr

您使用的 JDK 是什么版本? chunk应该不需要被填满。

在 JDK 11 或更高版本中存在错误 [1],如果您在启动时指定要转储文件的文件名,但在转储文件时不指定它.

试试这个作为解决方法:

$ jcmd 115 JFR.dump filename=recording.jfr

[1] https://bugs.openjdk.java.net/browse/JDK-8220657

Azul 支持帮助解决了这个问题。如果您在启动 VM 时未指定文件名,则将执行以下操作:

XX:StartFlightRecording=disk=true,name=continuous_recording,dumponexit=true,maxsize=1024m,maxage=1d

此错误已归档并修复为 JDK-8220657。 Azul 表示他们将在未来将此移植到 Zulu 8 和 11。