# 线上排查tomcat假死情况
之前线上的 Tomcat 运行一段时间就会假死,导致用户访问页面打不开,这里记录一下解决问题的步骤;
由于此项目是老项目,所以并不是很清楚里面的技术实现细节;打开服务器日志也没发现什么异常;
怀疑是最近业务量上来了,导致 db 扛不住,查看阿里云 rds 云监控,发现 mysql 所有指标一切正常。
按照以往经验,猜想跟 web 服务器有关,查看 tomcat 监听端口占用情况,一看吓一跳,大量的 tcp 链接都在等待关闭:
肯定是代码问题,由于情况紧急,不可能每行代码去 review,于是将服务器线程堆栈 dump 下来分析具体的问题,好在 jdk 下面提供了各种工具给我们,bingo,打开 jvisualvm,导入线程堆栈信息,发现全是 http 的请求:
接下来可以看具体的哪行代码导致的:
ok,因为代码里面大量的创建 http 链接,而未进行及时关闭导致,改掉之后重新上线,观察一段时间后再也没出现
文章转载于地址:https://blog.csdn.net/t594362122/article/details/78258185
← 管道的理解 编码、字符集你都了解吗? →