Tomcat 特定的网络应用程序速度变慢

Tomcat specific webapp slowdown

今天,在我工作的公司,我们收到了一份关于我们的一个网络应用程序无法运行的报告。

我们做的第一件事是查看硬件利用率:

经过一些测试,我们发现,确实,webapp 页面在 webapp 超时一段时间后没有加载。

完全相同 tomcat 实例中的其他 Web 应用程序一如既往地运行良好且快速,没有问题。我们尝试 restart/reload 网络应用程序,但它仍然无法正常工作。最后,我们重新启动了 tomcat,暂时解决了这个问题。

自昨天运行良好以来,没有重新启动或重新部署。我们认为这可能是某种周期性错误,因此我们希望尽快更正它。

有谁知道我们可以采取哪些步骤来调查它可能是什么?

好像跟IO锁定有关

如果您使用 linux,首先 要做的是使用命令 lsof 检查打开的文件.如果您看到您的应用程序打开了很多文件,则必须检查每个 InputStream/OutputStream 都已关闭的代码(即使在异常处理代码中)。

另一个常见的问题来源与线程饥饿有关,请参阅 http://tomcat.apache.org/tomcat-9.0-doc/config/valve.html#Stuck_Thread_Detection_Valve