1

我们正在尝试从不同主机上的 tomcat 访问应用程序,但即使 tomcat 正在运行,它也没有加载。过去 3 个月运行良好。我们重新启动了tomcat,现在它工作正常。

但是,我们无法将所发生的事情归零。

知道如何追踪/可能是什么原因造成的吗?

CPU使用率正常,tomcat内存为1205640。

tomcat的内存设置为1024-2048(min-max)

我们正在使用tomcat 7。

非常感谢帮助......在此先感谢......干杯!

4

2 回答 2

2

...也 - 在 Windows 上不确定 - 您可能用完了文件描述符。这通常发生在 finally 块中未正确关闭流时。

此外,检查netstat是否有很多套接字保持打开或在等待状态累积。

不太可能的是,应用程序正在创建线程并且从不释放它们。

应用程序正在泄漏某些东西(内存、文件描述符、套接字、线程……)并且运行超出限制。

有不同的方法可以跟踪这一点。分析器可能会有所帮助,或者更简单地说,定期运行 JVM 转储并检查正在累积的内容。出色的MAT将帮助您分析转储。

于 2013-06-28T12:51:30.760 回答
1

内存泄漏问题并不少见。如果您的 Tomcat 实例运行了三个月,并且突然包含的应用程序变得无响应,那么可能就是这种情况。一种解决方案(如果您的资源允许您这样做)可能是使用jconsole通过JMX监视该 Tomcat 实例以查看其行为方式

于 2013-06-28T10:24:48.007 回答