ThreadPool 满 任务排查
发布时间
阅读量:
阅读量
问题背景概述
当前LEX业务场景由两个模块组成,分别为FM与LineHaulShuttle。这两部分数据均通过ODPS离线同步后,借助Blink传输至gateway的MQ中。其对应的QPS分别为:FM模块每秒处理1000次请求,LineHaulShuttle模块每秒处理600次请求。该流量会对系统造成一定压力,但由于系统尚未经过压力测试,因此其承受能力尚不明确。在接入LinHaul场景过程中,出现了线程池被占满的异常情况。

问题排查
鉴于Lindorm入库与发风控功能采用了线程池进行异步处理,这种方式不仅有助于增强系统的运行效率,同时也能有效提升数据吞吐能力。然而,由于线程资源存在限制,因此可能会出现上述异常情况。通过查阅相关代码可以发现以下两个问题:
- 当前所配置的线程缓冲队列容量为200,在QPS数值超过200甚至更高时,将触发最大线程数的创建机制
- 现有线程池所采用的拒绝策略为AbortPolicy,这意味着当系统达到预设的最大线程数量后,新接收到的任务将会被直接丢弃
@EnableAsync
@Con
全部评论 (0)
还没有任何评论哟~
