代码之家  ›  专栏  ›  技术社区  ›  Aliaksei Stadnik

Spring引导连接池配置的最佳实践

  •  8
  • Aliaksei Stadnik  · 技术社区  · 7 年前

    我正在为Spring Boot app和Postgres DB配置JDBC连接池,以使用HikariCP连接池,并试图找到配置设置的最佳实践,不幸的是,web上没有太多关于这个主题的信息。

    我正在为不同的设置准备自己的性能测试,但如果有任何帮助,我将不胜感激。平均吞吐量约为 20请求/秒 对于应用程序节点

    我最感兴趣的是这些属性的最佳值,例如:

        minimumIdle: ?
        maximumPoolSize: ?
        idleTimeout: ?
        maxLifetime: ?
        connectionTimeout: ?
    

    特别是如果能知道 maximumPoolSize 有很多其他选项可用于连接池设置。如果您能就其对应用程序性能的影响提供任何建议,我们将不胜感激。

    1 回复  |  直到 7 年前
        1
  •  12
  •   brettw    7 年前

    @从总体上看,aliaksei stadnik 20 req/sec相当低。所以,我不会过分担心池调优;更重要的是关注查询性能。查询时间越短,可以用更少的连接处理更多的请求。

    我们始终建议将HikariCP作为一个固定大小的池来运行,以获得最佳性能(离开 minimumIdle公司 空闲超时 未设置)。这个 最大工具大小 可能是您需要调整的关键数字,正如上面引用的链接所述,这取决于 主要地 数据库服务器的CPU内核数。

    在平均查询时间为2ms的情况下,即使是单个连接也可以处理约500个请求/秒,平均查询时间为10ms时,每个连接将产生约100个请求/秒。然而,以单个请求的代价可能要等待一秒钟才能得到服务。在这种情况下,额外的连接将有助于减少请求的排队时间。