从应用频繁502说起ES的超时问题——es setTimeout无效

缘起

应用用的ES集群版本是1.7,公司内部让升级版本,说是这个集群版本太老了,由于种种原因没有升级,就这样应用拖到了618,结果在这期间应用频繁的发生502和rpc线程池被打满的情况,给我们本应该顺畅的618带来了一片乌云。

得到此报警之后,开始dump机器线程,发现有大量的es线程在阻塞,并且有很多的http线程也在阻塞,这也就不难排查发生502和RPC线程池被打满的原因,由于es操作迟迟未返回,导致业务线程池被打满,http连接一直等待结果返回,连接不释放,导致了tomcat接收业务请求也被打满,进而导致应用访问频繁出现502。

上图就是jstack下来线程,可以看到有大量的http线程被阻塞,然后查看详情,

详情中有大量的线程被阻塞在了ES的调用上,这样问题就很明显了,按理来说问题定

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值