我们正在尝试从不同主机上的 tomcat 访问应用程序,但即使 tomcat 正在运行,它也没有加载。过去 3 个月运行良好。我们重新启动了tomcat,现在它工作正常。
但是,我们无法将所发生的事情归零。
知道如何追踪/可能是什么原因造成的吗?
CPU使用率正常,tomcat内存为1205640。
tomcat的内存设置为1024-2048(min-max)
我们正在使用tomcat 7。
非常感谢帮助......在此先感谢......干杯!
...也 - 在 Windows 上不确定 - 您可能用完了文件描述符。这通常发生在 finally 块中未正确关闭流时。
此外,检查netstat
是否有很多套接字保持打开或在等待状态累积。
不太可能的是,应用程序正在创建线程并且从不释放它们。
应用程序正在泄漏某些东西(内存、文件描述符、套接字、线程……)并且运行超出限制。
有不同的方法可以跟踪这一点。分析器可能会有所帮助,或者更简单地说,定期运行 JVM 转储并检查正在累积的内容。出色的MAT将帮助您分析转储。
内存泄漏问题并不少见。如果您的 Tomcat 实例运行了三个月,并且突然包含的应用程序变得无响应,那么可能就是这种情况。一种解决方案(如果您的资源允许您这样做)可能是使用jconsole通过JMX监视该 Tomcat 实例以查看其行为方式