【问题标题】:What is taking HikariCP so long to create new connections?是什么让 HikariCP 花了这么长时间来创建新的连接?
【发布时间】:2016-10-19 02:41:25
【问题描述】:

我正在使用 Java 6 的 2.3.7 版本。我已将 maximumPoolSize 设置为 200 并将 connectionTimeout 设置为 30 秒。在我们的一个负载测试用例中,我遇到了来自BaseHikariPool.getConnectionSQLTimeoutExceptions,其中涉及 70 个同时用户上传 10 个文件。我打开了调试日志并获得了pool stats。所以看起来池并没有被耗尽。相反,HikariCP 需要比 connectionTimeout 更长的时间来创建新连接。如何调试这部分过程?底层数据源为SQLServerDataSource 4.1版。

【问题讨论】:

    标签: sql-server java-6 connection-timeout hikaricp


    【解决方案1】:

    connectionTimeout 是等待从池中获取连接的最长时间。 从数据源创建连接不是超时。没有。

    您可能需要考虑减小池大小。以最小开始负载测试并逐渐增加,直到 SqlServer 开始花费更长的时间来创建连接。 检查about pool size

    HTH

    【讨论】:

      【解决方案2】:

      这可能是因为在 HikariCP 中打开连接是一个阻塞调用( https://github.com/brettwooldridge/HikariCP/issues/1287)

      您可能会发现此选项很有用com.zaxxer.hikari.blockUntilFilled。使用此选项,连接池将在初始化期间并行打开 minimumIdle 连接,而不是延迟初始化连接。

      【讨论】:

        猜你喜欢
        • 2010-10-07
        • 2015-01-26
        • 1970-01-01
        • 1970-01-01
        • 2021-06-01
        • 2016-04-30
        • 1970-01-01
        • 1970-01-01
        • 2016-05-29
        相关资源
        最近更新 更多