tomcat7连接数异常导致超时问题的排查
现象和处理
- 某天某个跑在tomcat上的java服务的所有接口都突然开始出现偶发超时,响应时间从几十毫秒增长到几秒,甚至几十秒。
- 比较灵异的一个现象tomcat处理日志和业务日志中都没有发现超时,日志里打出来的请求的响应时间都在几十毫秒,并且对线程数的监控也没有发现波动。
- 怀疑是负载均衡的问题,查看nginx日志,发现nginx访问后端时有很多慢请求。
- 查看tomcat的gc情况,比较正常。
- 在tomcat本机调用接口,发现同样存在超时问题,排除nginx的嫌疑。
- 感觉问题基本出在tomcat上,决定先重启服务,果然重启后响应时间恢复。
原因排查
- 重启的时候从集群中摘除了一台节点保留现场,因为服务已经两周没有上过线,所以怀疑跟某种资源堆积有关。
-
尝试复现问题:
- 直接调用摘除的节点没有发现问题。
- 尝试使用ab压测,没有复现。
- 尝试使用tcpcopy引流,在引流单台5倍流量的情况下依然没有出现。