标签 tomcat 下的文章

记一次集群内无可用http服务问题排查

现象是这样的:每天到了某个时间点,就会出现服务不稳定的情况,偶发接口调不通。

线上业务使用了lvs-nginx-tomcat三层结构,首先查看tomcat监控,没有什么特别异常的情况,响应时间和错误码没发现有什么异常,CPU、IO等等指标也都正常。

再查看nginx上的监控,发现在某个时刻这个服务的5xx报错突增,大概7、8秒之后又恢复了。

继续在nginx服务器上找线索,发现Nginx在那个时间点会出现报错:

线上nginx会每秒探测后端所有服务器的某个uri,如果返回的http状态码是200则认为正常,连续3次探测失败则摘除探测失败的服务器,直到探测成功再恢复。

从日志中可以发现nginx在出问题的时间点对于后端所有tomcat的探测请求都出现了问题,导致摘除了所有后端服务器,在这段时间里请求会报502异常。… Read the rest

tomcat7连接数异常导致超时问题的排查

现象和处理

  1. 某天某个跑在tomcat上的java服务的所有接口都突然开始出现偶发超时,响应时间从几十毫秒增长到几秒,甚至几十秒。
  2. 比较灵异的一个现象tomcat处理日志和业务日志中都没有发现超时,日志里打出来的请求的响应时间都在几十毫秒,并且对线程数的监控也没有发现波动。
  3. 怀疑是负载均衡的问题,查看nginx日志,发现nginx访问后端时有很多慢请求。
  4. 查看tomcat的gc情况,比较正常。
  5. 在tomcat本机调用接口,发现同样存在超时问题,排除nginx的嫌疑。
  6. 感觉问题基本出在tomcat上,决定先重启服务,果然重启后响应时间恢复。

原因排查

  1. 重启的时候从集群中摘除了一台节点保留现场,因为服务已经两周没有上过线,所以怀疑跟某种资源堆积有关。
  2. 尝试复现问题:

    1. 直接调用摘除的节点没有发现问题。
    2. 尝试使用ab压测,没有复现。
    3. 尝试使用tcpcopy引流,在引流单台5倍流量的情况下依然没有出现。
Read the rest

分类目录