开发者社区> 问答> 正文

activeCount不释放,达到maxActive后,服务不可用

druid版本 1.1.22 参数: {"initialSize":70,"minIdle":70,"maxActive":80,"maxWait":1500,"removeAbandoned":false,"removeAbandonedTimeoutMillis":180000,"timeBetweenEvictionRunsMillis":15000,"minEvictableIdleTimeMillis":54000,"maxEvictableIdleTimeMillis":54000,"validationQuery":"SELECT 'x'","testWhileIdle":true,"testOnBorrow":false,"testOnReturn":false,"keepAlive":true,"useUnfairLock":true,"filters":"stat"}

问题:线上突然有部分机器activeCount持续缓慢增长,直到达到maxActive,服务不可用

dump内存 发现 activeCount=65,但是此时应用上没有使用连接的线程

T15.png

看历史issure中有不少反馈activeCount计算出错的,有一些是keepAliveBetweenTimeMillis、minEvictableIdleTimeMillis、maxEvictableIdleTimeMillis设置不当导致 连接池中重复;但是好像也有一些是其他原因,定位了一段时间,一直没查到具体是哪里导致这个activeCount计算错。

原提问者GitHub用户BruceZhangXL

展开
收起
山海行 2023-07-05 18:02:48 121 0
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    在使用 Druid 数据源时,如果连接数达到 maxActive 配置的最大连接数,新的连接请求就会被阻塞,直到有连接被释放为止。如果您的服务在高并发情况下频繁创建连接,可能会导致连接数达到 maxActive,从而导致服务不可用。

    2023-07-30 20:48:19
    赞同 展开评论 打赏
  • 升级到1.2.6试试。 老版本统计不准。

    原回答者GitHub用户kimmking

    2023-07-06 10:42:41
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载