我有一个在tomcat上运行的java应用程序,xmx = 2GB 我看到tomcat上的内存消耗缓慢上升,超过了2GB的堆限制。 通过这个论坛,我知道不仅仅是消耗内存的堆。
问题是内存不断增加到3甚至4GB,直到机器上没有更多可用内存,我需要重启tomcat。
查看GC日志,我发现堆不超过2GB。
我的问题是如何查找和分析使用的内存。 此外,它可以与代码相关吗? 这显然是某种泄漏,但我不知道如何定位和修复它,甚至不知道源代码(我的代码,tomcat等)。
由于 Maayan
答案 0 :(得分:0)
由于代码中的内存泄漏比tomcat更容易发生,所以我从这里开始。
使用JMap创建堆转储,并尝试使用Eclipe Memory Analyzer
等工具对其进行分析