在Linux服务器上,已经为应用程序指定了vm参数(Xmx=3GB、Xms=3GB)。通过查看堆转储,可以看到已经使用了超过2.9 GB的内存。32MB内存可用于无法访问的对象。
但是应用程序并没有抛出OOM,而是停止了响应。因此有必要手动重新启动应用程序。
我可以看到许多线程(96)在堆栈跟踪中等待某个特定对象的监视器。这有帮助吗?此外,2.9 GB空间的大部分被缓存对象占用,我认为这是正常的。MAT仅将这些缓存对象显示为泄漏可疑对象。
通过查看堆转储和堆栈跟踪,试图找出它没有响应的原因,但没有看到任何特殊之处。
发布于 2012-11-22 18:19:18
您的应用程序存在内存泄漏。试着找到它,有像VisualVM这样的好工具。
发布于 2012-11-22 18:23:44
通常,在使用OOM之前,应用程序会非常慢。
在您的情况下,您应该通过示例使用VisualVM分析您的应用程序。
https://stackoverflow.com/questions/13510391
复制相似问题