oceanbase连接池的问题.

【 使用环境 】正式环境
【 OB 】1-1-1 集群
【 使用版本 】4.3.2.1
【问题描述】 打开连接超时,没有空闲的连接可用, 但没有达到我所配置的最大连接数(配置最大连接数:250)

  • 错误日志
HikariPool-1 - Connection is not available, request timed out after 10141ms (total=102, active=102, idle=0, waiting=55)
  • jdbc配置
minimum-idle: 10
maximum-pool-size: 250
connection-timeout: 10000
max-lifetime: 300000
  • oceanbase的配置
max_connections	2147483647
  • obproxy 配置
client_max_connections 8192

@论坛小助手

根据提供的信息来看,虽然 OceanBase 的 max_connections 配置为 2147483647,OBProxy 的 client_max_connections 配置为 8192,且 HikariCP 连接池配置了最大连接数为 250,但您在使用过程中遇到了打开连接超时且没有空闲连接可用的问题。从 OCP 查看到的会话数来看,当前的会话数在高峰期达到了 579,超过了 HikariCP 连接池配置的最大连接数 250,这可能是导致没有空闲连接可用的原因之一。

此外,根据 HikariCP 的日志显示,当前连接池中的活跃连接数达到了 102,而空闲连接数为 0,这表明连接池中的连接已经被耗尽。建议检查以下几个方面:

  1. 连接泄漏:确保应用程序在使用完连接后正确关闭连接,避免连接泄漏。可以通过 HikariCP 的 connectionTimeoutmaxLifetime 参数来检测和移除被遗弃的连接。
  2. 连接池配置:调整 HikariCP 的 minimumIdlemaximumPoolSize 参数,确保连接池中有足够的空闲连接。
  3. OBProxy 配置:检查 OBProxy 的 client_max_connections 配置是否合理,确保 OBProxy 能够处理更多的连接请求。
  4. 应用程序逻辑:检查应用程序的逻辑,确保没有长时间占用连接的情况。

检索到的文档如下:

  1. 数据库连接规范
  2. 使用 JMeter 运行业务场景测试
  3. DBCP 连接池连接 OceanBase 数据库示例程序
  4. 使用限制

show processlist;可以看到当前回话数

1 个赞

感谢回复. 使用ocp 查看了出现错误那段时间的总会话数, 为579. 虽说是比平时要高些. 但也不至于创建不出新的会话吧

这边jdbc端不是配置最大连接数为250么 应该已经满了

这250个是限制当前服务的最大连接, 还有其他服务也在连接这个租户的.

麻烦提供一下obproxy的obproxy_diagnose.log

obproxy_nodes_diagnosis.zip (455.6 KB)
日志已上传

obproxy的error日志也麻烦提供一下看看

今天9-10点只有这一条错误日志

2025-11-05 09:59:34.921441,new_as_proxy,,,,as_release:game:bj_game,OB_MYSQL,gs_user_game_login_log,gs_user_game_login_log,OB_MYSQL_COM_STMT_EXECUTE,,failed,-4124,,0us,0us,0us,0us,Y0-00007F2CE1B8CE50,,172.31.32.185:47822,,0,,Connect error,