HikariCP 中的计算不匹配

Calculation mismatch in HikariCP

我正在使用 hikariCP,我可以在管家中看到最大连接数为 10,但计算不匹配,如下所示,在 pool-2 中我可以看到总共 10 个,但等待 24 个,这是个问题吗?

|DEBUG|Hikari Housekeeping Timer (pool HikariPool-0)|||com.zaxxer.hikari.pool.HikariPool|Before cleanup pool stats HikariPool-0 (total=10, inUse=0, avail=10, waiting=0) 
|DEBUG|Hikari Housekeeping Timer (pool HikariPool-0)|||com.zaxxer.hikari.pool.HikariPool|After cleanup pool stats HikariPool-0 (total=10, inUse=0, avail=10, waiting=0) 
|DEBUG|Hikari Housekeeping Timer (pool HikariPool-1)|||com.zaxxer.hikari.pool.HikariPool|Before cleanup pool stats HikariPool-1 (total=10, inUse=0, avail=10, waiting=0) 
|DEBUG|Hikari Housekeeping Timer (pool HikariPool-1)|||com.zaxxer.hikari.pool.HikariPool|After cleanup pool stats HikariPool-1 (total=10, inUse=0, avail=10, waiting=0) 
|DEBUG|Hikari Housekeeping Timer (pool HikariPool-2)|||com.zaxxer.hikari.pool.HikariPool|Before cleanup pool stats HikariPool-2 (total=10, inUse=10, avail=0, waiting=24) 
|DEBUG|Hikari Housekeeping Timer (pool HikariPool-2)|||com.zaxxer.hikari.pool.HikariPool|After cleanup pool stats HikariPool-2 (total=10, inUse=10, avail=0, waiting=24) 
|DEBUG|HikariCP connection filler (pool HikariPool-2)|||com.zaxxer.hikari.pool.HikariPool|After fill pool stats HikariPool-2 (total=10, inUse=10, avail=0, waiting=24) 
|DEBUG|Hikari Housekeeping Timer (pool HikariPool-3)|||com.zaxxer.hikari.pool.HikariPool|Before cleanup pool stats HikariPool-3 (total=10, inUse=0, avail=10, waiting=0) 
|DEBUG|Hikari Housekeeping Timer (pool HikariPool-3)|||com.zaxxer.hikari.pool.HikariPool|After cleanup pool stats HikariPool-3 (total=10, inUse=0, avail=10, waiting=0) 
|DEBUG|Hikari Housekeeping Timer (pool HikariPool-4)|||com.zaxxer.hikari.pool.HikariPool|Before cleanup pool stats HikariPool-4 (total=10, inUse=0, avail=10, waiting=0) 
|DEBUG|Hikari Housekeeping Timer (pool HikariPool-4)|||com.zaxxer.hikari.pool.HikariPool|After cleanup pool stats HikariPool-4 (total=10, inUse=0, avail=10, waiting=0) 
|DEBUG|HikariCP connection closer (pool HikariPool-4)|||com.zaxxer.hikari.pool.PoolUtilities|Closing connection com.sybase.jdbc4.jdbc.SybConnection@5129f018 
|DEBUG|Hikari Housekeeping Timer (pool HikariPool-5)|||com.zaxxer.hikari.pool.HikariPool|Before cleanup pool stats HikariPool-5 (total=10, inUse=0, avail=10, waiting=0) 
|DEBUG|Hikari Housekeeping Timer (pool HikariPool-5)|||com.zaxxer.hikari.pool.HikariPool|After cleanup pool stats HikariPool-5 (total=10, inUse=0, avail=10, waiting=0) 

看来一切正常。您看到的只有 24 个连接请求在等待空闲连接。

HikariCP(主要)取决于 minimumIdlemaximumPoolSize [设置] (https://github.com/brettwooldridge/HikariCP#configuration-knobs-baby)。 minimumIdle 默认为 maximumPoolSize 的任何值。 maximumPoolSize 默认为 10。

我猜您的池正在使用默认配置,这可以解释那 24 个等待请求。如果您的系统需要更多可用连接,请尝试增加 maximumPoolSize 的值并将 minimumIdle 设置为 10。

当池启动时,它将建立 10 个连接(空闲)并将它们提供给任何请求它们的人。然后,当所有连接都在使用中时,它会产生最多 maximumPoolSize 个连接。一段时间后,当它们不再使用时,这些连接将被破坏,仅保留 minimumIdle.

中的前 10 个

每当您调整池的设置时,请考虑数据库的配置、限制以及访问它的第三方的影响。