【发布时间】:2014-03-10 04:20:59
【问题描述】:
我们的一个 Web 应用程序中一直存在 OutOfMemory。此应用程序在 Elastic Load Balancer 后面的 Aamzon EC2 上的 Tomcat 上运行。从堆转储中,SocksSocketImpl 对象消耗了大部分内存。 Yourkit 显示这些对象中有 99% 处于 Pending Finalization 状态。然而,不知何故,它们并没有被最终确定和 GC'ed。在其他地区具有相同设置(相同 tomcat 版本和 JDK 版本)的相同应用程序并且没有问题。
以前有人见过这种行为吗?任何指针都会有所帮助。谢谢你的时间。
【问题讨论】:
-
您检查/监控您的流量模式了吗?也许您的应用程序有内存泄漏正在接收更多的流量。
-
感谢您的回复,Rico。交通不是问题。堆上的 Socket 对象数量超过全天流量的 50%。我们也有按小时细分。流量过大绝对不是原因。
-
奇怪。您是否始终如一地看到这一点?您是否在遇到问题的地区尝试过多次?
-
是的。它在同一台机器上至少发生了 3 次。
-
我的意思是不同的机器,而不仅仅是同一地区的同一台机器
标签: java tomcat memory-leaks amazon-ec2