线程池拒绝策略抛出错误

1.看报错是自定义线程池拒绝策略默认抛出的错误。线程池队列和最大线程都已饱和。

2.找到线上机器,使用ps -ef |grep "服务运行所在的名称",找到对应的进程id号

3.top -H -p 进程号,观察对应进程的线程和内存使用情况

4.sudo -u (进程归属的用户) jstack 进程号, 将进程下所有的线程信息dump下来分析 

5.猜测是执行代码地方,响应超时,以及线程池设置的超时时间不为0的正数时候,可能由于网络原因,或者慢sql,导致线程在调用future.get()方法时候阻塞,线程被挂起,从而一直消耗资源。 后面将阿里云上面的慢sql给导出,分析对应代码逻辑处理做对照。

6.排查中,因为这种情况很奇怪。。可能原因三条 

1)测试的库跟生产的库可能不一样  有可能测试的库后来加索引了  生产的没加之类的

2)库索引之类的  是不是有慢sql或者这几个sql之间导致了死锁之类的

3) 性能是一方面  另一方面。。。  还有一个是缓存被击穿了,多次请求   都没访问到缓存  直接全去到数据库,导致所有线程都在执行任务的时候,等待数据返回,然而一直未拿到返回的结果,然后线程就一直被挂起了。

7.缓存穿透解决:

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值