今天在我工作的公司,我们收到了一份关于我们的某个webapps无法正常工作的报告。
我们做的第一件事就是看硬件利用率:
处理器:5%;
记忆:68%;
磁盘IO容量:4%;
网络:1Mbps / 1Gbps;
经过一些测试,我们发现,实际上,webapp页面没有加载,在webapp超时后的某个时间。
完全相同的tomcat实例中的其他Web应用程序一如既往地正常工作,没有问题。我们尝试重新启动/重新加载webapp但它仍然无法正常运行。最后我们重新启动了tomcat,现在纠正了这个问题。
自昨天工作正常以来,没有重启或重新部署。我们认为这可能是某种类型的周期性错误,因此我们希望尽快纠正它。
有谁知道我们可能采取的任何步骤来调查它可能是什么?
答案 0 :(得分:0)
似乎与锁定IO有关。
如果您使用的是Linux,第一个的事情就是使用 lsof 命令检查打开的文件。如果您的应用程序看到很多打开的文件,则必须检查每个InputStream / OutputStream关闭的代码(即使在异常处理代码中)。
另一个常见问题来源与线程饥饿有关,请参阅 http://tomcat.apache.org/tomcat-9.0-doc/config/valve.html#Stuck_Thread_Detection_Valve