【超过线程阈值】线程数持续增长问题排查与处理

一个商户中心系统因线程数超过800的阈值引发报警。排查发现是由于feign调用时,hystrix开启的守护线程过多。当currentThreadCount<maxQueueSize时,每次会新建线程执行网络请求,导致大量等待线程。解决方案是调整feign hystrix配置,限制核心线程数以防止线程数过度增长。
摘要由CSDN通过智能技术生成

背景

一个商户中心系统,线程数配置的阈值为800,并发量不高,但是突然报警提示超过设定的最大线程数。

排查过程

联系运维组,执行jmap -dump。都是名称有规律的hystrix守护线程,通过这个线索排查到问题在于,feign调用时,hystrix的开启的守护线程问题,如下:
hystrix-risk-trade-platform
hystrix-invoice
hystrix-kohala-card
hystrix-merchant-open-api
原理在于当执行feign逻辑时,会判断currentThreadCount<maxQueueSize,若小于则每次都会新建一个线程来执行网络请求。
如果coreSize设置的过大,通过feign调用的服务过的,且每个服务调用的次数足够多,将导致wating线程数很大
当核心线程数coreSize设置为200,5个服务持续调用,当调用1000次后线程总数将达到1000,每个服务200线程 如果并发低的话 可能只有几个线程在工作 其他线程都在sleep。

解决方案

调整feign hystrix的配置,经过测试,将配置修改如下:

hystrix:
  command:
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值