我们在其中一个Web应用程序中使用了OutOfMemory.此应用程序在Elastic Load Balancer后面的Aamzon EC2上的Tomcat上运行.从堆转储中,大多数内存都被SocksSocketImpl对象占用. Yourkit显示99%的这些对象处于Pending Finalization状态.然而,不知何故,他们还没有最终确定和GC.在其他区域具有相同设置(相同的tomcat版本和JDK版本)的相同应用程序并没有问题.
以前有没有人见过这种行为?任何指针都会有所帮助.谢谢你的时间.
最佳答案 我遇到了运行Tomcat 6.0.39的完全相同的问题,当Ubuntu服务器上的JDK升级了安全补丁时,内存问题就开始了:
java version "1.6.0_30"
OpenJDK Runtime Environment (IcedTea6 1.13.1) (6b30-1.13.1-1ubuntu2~0.12.04.1)
OpenJDK Server VM (build 23.25-b01, mixed mode)
使用Eclipse Memory Analyzer进行概述,跟踪到SSL Connections的对象的终结器队列和消耗所有内存的Hibernate会话.升级到以下问题解决了问题
java version "1.7.0_51"
OpenJDK Runtime Environment (IcedTea 2.4.4) (7u51-2.4.4-0ubuntu0.12.04.2)
OpenJDK Server VM (build 24.45-b08, mixed mode)