我有一个正在运行的应用程序,最近注意到我的容器没有响应并且行为不同,就像没有写入日志等…
所以我想到了收集gth堆转储并分析正在发生的事情。
我选择了VisualVM和MAT。在分析的时候,我现在感到困惑。
请找到下面的图片,如果我有一些想法,那就太好了。
MAT显示报告正常,但堆大小更多。我们是否需要考虑崩溃的浅堆大小。找不到太多关于shallo堆的信息。
Visualvm显示完整的内存。
VISUALVM
垫unreachable_objects
垫型造影
除非有大量的并发SSL连接,否则我不会期望SSL引擎类占用这么多内存。那里发生了一些可疑的事情。
您的选择:
如果您需要更多帮助,请务必添加有关应用程序看到的负载类型、您使用的容器以及JVM版本的信息。
“泄漏嫌疑人”显示了什么吗?如果你不想找到你在哪里创建所有这些SSLEngineResult
对象以及为什么它们仍然可以访问——“通往GC根的路径”应该做到这一点。选项真的很少:只是打开了这么多并发连接,你在单例/静态类字段或ThreadLocal
中引用了它们。