捕获springdump应用程序的heapdump

时间:2019-04-05 09:49:47

标签: java spring-boot spring-boot-actuator heap-dump

我是堆分析的新手。我们一直在Web应用程序中使用spring boot。最近,堆使用率变得过高。为了使用Mat和JProfiler之类的工具分析堆转储,我使用执行器下载它,如下所示:

http://localhost:8080/actuator/heapdump

但是每次我进行堆转储时,堆使用率都会降低。我怀疑那段时间可能是GC踢。如果我错了,请纠正。因此,我无法捕获实际情况。有什么办法可以在不触发GC的情况下进行堆转储?还是无论如何,只要堆使用量增加超过500 MB,就会生成heapdump。

1 个答案:

答案 0 :(得分:1)

您可以执行@Scheduled任务来定期获取堆使用量并生成500 MB的堆转储。您可以使用ManagementFactory.getMemoryPoolMXBeans();,它显示了不同的堆区域及其用法。

要在外部执行此操作:

您可以使用jstat对堆使用情况进行外部监视。将其包装在脚本中,该脚本将分析jstat -gc,然后使用jmap获取堆转储。