【发布时间】:2022-07-22 00:18:04
【问题描述】:
在我的 Spring Boot 应用程序负载过重之后,我用 JMC 打开了 JFR 文件。正如你所看到的,JFR 说有超过 8000 个异常,但它没有显示它们是什么。如何读取该异常编号?
注意:从应用层来看,没有异常情况,可能底层系统抛出了一些异常,但我看不到它们是什么。
有什么建议吗? 谢谢。
【问题讨论】:
在我的 Spring Boot 应用程序负载过重之后,我用 JMC 打开了 JFR 文件。正如你所看到的,JFR 说有超过 8000 个异常,但它没有显示它们是什么。如何读取该异常编号?
注意:从应用层来看,没有异常情况,可能底层系统抛出了一些异常,但我看不到它们是什么。
有什么建议吗? 谢谢。
【问题讨论】:
为了保持低开销,默认情况下只记录异常的数量。如果你想知道异常类、堆栈跟踪和消息,你需要启用异常事件。
如果您是从 JMC 开始录制,您可以在组合框中选择更细粒度的异常信息。
如果您从命令行开始并运行 JDK 17 或更高版本:
$ java -XX:StartFlightRecorder:exceptions=all ....
如果您运行的是 JDK 17 之前的 JDK 版本,您可以使用 JMC 中的模板管理器(窗口 -> Flight Recorder 模板管理器)并创建自定义配置,方式与录制向导类似。您可以将配置导出到一个文件,即 my.jfc,并使用它来启动 JFR:
$ java -XX:StartFlightRecording=settings=my.jfc ...
【讨论】: