Несоответствие вычислений в HikariCP

я использую hikariCP, и я вижу в ведении хозяйства, что максимальное количество подключений составляет 10, но есть несоответствие расчетов, как указано ниже, в пуле-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) 

person Amey Jadiye    schedule 30.06.2015    source источник
comment
Вы нашли решение для этого? @Amey Jadiye   -  person Bilgehan    schedule 06.05.2021


Ответы (1)


Кажется, что все в порядке. То, что вы видите, это всего лишь 24 запроса на подключение, ожидающих бесплатного подключения.

HikariCP зависит (в основном) от minimumIdle и maximumPoolSize [настроек] (https://github.com/brettwooldridge/HikariCP#configuration-knobs-baby). minimumIdle по умолчанию принимает любое значение maximumPoolSize. maximumPoolSize по умолчанию равно 10.

Я предполагаю, что ваши пулы используют конфигурацию по умолчанию, и это объясняет эти 24 ожидающих запроса. Если вашей системе требуется больше доступных подключений, попробуйте увеличить значение для maximumPoolSize и установить minimumIdle на 10.

Когда пул загрузится, он установит 10 соединений (бездействующих) и раздаст их всем, кто их запрашивает. Затем, когда все соединения будут использованы, будет создано еще несколько соединений, до maximumPoolSize. Через некоторое время, когда они больше не используются, эти соединения уничтожаются, сохраняя только первые 10 из minimumIdle.

Всякий раз, когда вы настраиваете параметры своих пулов, принимайте во внимание конфигурацию вашей базы данных, ограничения и влияние третьих лиц, получающих к ней доступ.

person ggalmazor    schedule 30.06.2015
comment
Прежде чем повышать maximumPoolSize, убедитесь, что это необходимо. Вообще говоря, вам нужны отложенные (ожидающие) потоки, если maximumPoolSize настроен близко к пиковому TPS вашей базы данных. Я предполагаю, что 10, вероятно, довольно близко к этому числу. Увеличение пула до 30-40 подключений будет показывать ожидание = 0 и использование = 34, но вы, вероятно, на самом деле работаете медленнее, а не быстрее, с точки зрения фактического выполнения этих запросов. - person brettw; 30.06.2015