在我的 Spring Boot 应用程序负载过重后,我使用 JMC 打开了 JFR 文件。正如你所看到的,JFR 说有超过 8000 个异常,但它没有显示它们是什么。我如何读取该异常编号?
注意:从应用层来看,没有异常情况,也许底层系统抛出了一些异常,但我看不到它们是什么。
有什么建议吗? 谢谢。
最佳答案
为了保持较低的开销,默认情况下仅记录错误和异常数量。如果您想了解异常类、堆栈跟踪和消息,您需要启用异常事件。
如果您从 JMC 开始录制,您可以在组合框中选择更细粒度的异常信息。
如果您从命令行启动并运行 JDK 17 或更高版本:
$ java -XX:StartFlightRecording:exceptions=all ...
如果您运行的是 JDK 17 之前的 JDK 版本,则可以使用 JMC 中的模板管理器(窗口 -> 飞行记录器模板管理器)并创建自定义配置,其方式与记录向导类似(使用编辑按钮)。您可以将配置导出到文件,即 my.jfc,并使用它来启动 JFR:
$ java -XX:StartFlightRecording=settings=my.jfc ...
关于java - 我在 JMC 中看不到异常详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73068381/