线上tomcat服务器假死排查

     之前线上的Tomcat运行一段时间就会假死,导致用户访问页面打不开,这里记录一下解决问题的步骤;

由于此项目是老项目,所以并不是很清楚里面的技术实现细节;打开服务器日志也没发现什么异常;

     怀疑是最近业务量上来了,导致db扛不住,查看阿里云rds云监控,发现mysql所有指标一切正常。

     按照以往经验,猜想跟web服务器有关,查看tomcat监听端口占用情况,一看吓一跳,大量的tcp链接都在等待关闭:

线上tomcat服务器假死排查_第1张图片

     

肯定是代码问题,由于情况紧急,不可能每行代码去review,于是将服务器线程堆栈dump下来分析具体的问题,好在jdk下面提供了各种工具给我们,bingo,打开jvisualvm,导入线程堆栈信息,发现全是http的请求:

线上tomcat服务器假死排查_第2张图片

接下来可以看具体的哪行代码导致的:

线上tomcat服务器假死排查_第3张图片


ok,因为代码里面大量的创建http链接,而未进行及时关闭导致,改掉之后重新上线,观察一段时间后再也没出现

你可能感兴趣的:(互联网,问题排查,java)