捕获用于Spring启动应用程序的heapdump

问题描述 投票:0回答:1

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

http://localhost:8080/actuator/heapdump

但每次,我正在进行堆转储,堆使用率正在降低。我怀疑可能是GC一直踢的。如果我错了,请纠正。所以我无法捕捉实际情况。有没有办法在不触发GC的情况下进行堆转储?或者无论如何,只要堆使用量增加超过500 MB,就会生成heapdump。

java spring-boot spring-boot-actuator heap-dump
1个回答
1
投票

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

要在外部做到这一点:

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

© www.soinside.com 2019 - 2024. All rights reserved.