在Linux服务器上,已经为应用程序指定了vm参数(Xmx=3GB,Xms=3GB)。通过查看堆转储,可以看出使用了超过2.9 GB的内存。有32 MB的内存用于存储无法访问的对象。
但是应用程序没有抛出OOM,而是停止了响应。因此,有必要手动重新启动应用程序。
我可以看到许多线程(96)等待堆栈跟踪中某个特定对象的监视器。有帮助吗?另外,2.9gb的空间大部分被缓存对象占用,我认为这是正常的。MAT只将这些缓存对象显示为泄漏可疑对象。
通过查看堆转储和堆栈跟踪,试图找出导致它不响应但看不到任何特殊内容的原因。

最佳答案

您的应用程序内存泄漏。要找到它,有很多好的工具,比如VisualVM

09-11 19:21
查看更多