我正在为Spring Boot应用程序和Postgres DB配置JDBC连接池以使用HikariCP连接池并尝试查找配置设置的最佳实践,遗憾的是网络中此主题的信息不多。
我正在为不同的设置准备我自己的性能测试,但是会感激任何帮助。应用程序节点
的平均吞吐量约为<20> req / sec我对这些属性的最佳值最感兴趣:
minimumIdle: ?
maximumPoolSize: ?
idleTimeout: ?
maxLifetime: ?
connectionTimeout: ?
特别高兴知道maximumPoolSize
的最佳价值
有很多其他可用于连接池设置的选项,我们希望了解它们对应用程序性能的影响。
答案 0 :(得分:4)
@ aliaksei-stadnik 20 req / sec,在宏观计划中,相当低。所以,我不会过分担心游泳池调整;更重要的是专注于查询性能。查询时间越短,使用较少数量的连接就可以处理的请求越多。
我们始终建议将HikariCP作为固定大小的池运行以获得最佳性能(保留 minimumIdle 和 idleTimeout 未设置)。 maximumPoolSize 可能是您需要调整的密钥编号,并且如上面引用的链接所示,它主要取决于 数据库服务器所具有的CPU核心数。< / p>
平均查询时间为2ms,即使是单个连接也可以处理~500 req / sec,平均查询时间为10ms,每个连接可以产生~100 req / sec。但是,以单个请求为代价,可能需要等待一秒钟才能得到服务。在这种情况下,其他连接可用于减少请求的排队时间。