我们的 Web 应用程序之一出现了内存不足的情况。此应用程序在弹性负载均衡器后面的 Aamzon EC2 上的 Tomcat 上运行。从堆转储来看,大部分内存被 SocksSocketImpl 对象消耗。 Yourkit 显示 99% 的对象处于待完成状态。然而,不知怎的,它们并没有被最终确定和GC'ed。相同的应用程序在其他区域具有相同的设置(相同的 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 连接和 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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)