在我们的团队中,我们正在使用一个溢出问题的服务。它是由长时间的API延迟引起的,其中GC时间占据了大部分部分。然后我发现堆内存使用率非常高。我使用jmap为服务获得了大约4.4 GB的堆转储。我使用Eclipse Memory Analyzer来解析堆转储。我发现2.8GB的堆转储是无法访问的对象。 任何人都有建议我应该怎么做才能进一步调试这个问题? 谢谢。
答案 0 :(得分:0)
如果从内存耗尽时有堆转储,我建议使用MAT查找任何可疑的支配树,这是一个较大的保留集大小的参考路径。
可能是同一个类在不同的类加载器中结束,或者如果Web应用程序或错误的缓存问题可能是HTTP会话保留。
我建议你先从简单的事情开始。