2

执行时收到以下错误消息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
4

2 回答 2

1

你用的是什么版本的JDK?该块不需要被填充。

如果您在启动时指定要转储的文件的文件名,但在转储文件时未指定,则会在 JDK 11 或更高版本中发生错误 [1]。

试试这个作为解决方法:

$ jcmd 115 JFR.dump filename=recording.jfr

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

于 2019-06-05T08:21:13.443 回答
1

Azul 的支持帮助解决了这个问题。如果您在启动 VM 时未指定文件名,则以下方法有效:

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

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

于 2019-07-22T17:16:19.660 回答