开发者社区> 问答> 正文

active 41, maxActive 50, runningSqlCount 1 这个是什么意思

com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 3192, active 41, maxActive 50, runningSqlCount 1 : SELECT * FROM CLOUD_BAS.BAS_DEV_VERSION WHERE STORE_ID=? AND DEVICE_ID=?

active 41, maxActive 50, runningSqlCount 1 这个是什么意思?

原提问者GitHub用户weiboyiyou

展开
收起
山海行 2023-07-05 19:57:34 1308 0
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    这是一个数据库连接池的监控信息,其中包含以下几个指标:

    active: 当前正在使用的连接数。
    maxActive: 最大允许的活动连接数。
    runningSqlCount: 当前正在执行的 SQL 语句数量。
    在一个数据库连接池中,连接是有限的资源,每个连接都需要占用一定的内存和其他系统资源。为了避免连接数过多导致系统资源的浪费和性能下降,通常会限制连接数的最大数量。当连接数达到最大数量时,新的连接请求会被阻塞,直到有连接被释放。

    active 指标表示当前正在使用的连接数,该值应该小于或等于 maxActive,否则可能会导致连接池不足,新的连接请求会被阻塞。在您的例子中,当前正在使用的连接数为 41,最大允许的活动连接数为 50,还有 9 个连接可以使用。

    runningSqlCount 指标表示当前正在执行的 SQL 语句数量,该值应该尽可能小,以确保连接的快速回收和可用性。在您的例子中,当前正在执行的 SQL 语句数量为 1。

    2023-07-30 14:36:28
    赞同 展开评论 打赏
  • 这个异常是由Druid引起的,表示当前正在等待获取连接的线程已经等待了3192毫秒,超过了设置的最大等待时间(3000毫秒)。在这种情况下,Druid会尝试释放一些空闲连接来提高连接池的效率。
    关于active和maxActive参数,它们表示当前连接池中正在使用的连接数和最大连接数。如果当前连接池中的连接数超过了maxActive参数设置的最大连接数,Druid会尝试释放一些连接来达到最大连接数的限制。

    2023-07-11 09:59:20
    赞同 展开评论 打赏
  • 最大连接数50,已经在用41个,有一个SQL正在执行中

    原回答者GitHub用户wenshao

    2023-07-06 11:16:20
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

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