Во время нагрузочного теста мы сталкиваемся с очень высокой средней скоростью ответа (например, 20 секунд ++). . Мы считаем, что основная причина связана с высокой загрузкой ЦП в экземпляре БД, что приводит к большим затратам времени на получение соединения JDBC.
Эта проблема возникает только во время нагрузочного теста, если мы вызываем API один раз, время ответа составит ~2 секунды (плюс минус).
Конфигурация Hikari
Ниже выполнена ли конфигурация Hikari:
Код: Выделить всё
spring.datasource.hikari.poolName=HikariCP
spring.datasource.hikari.minimum-idle= 50
spring.datasource.hikari.maximum-pool-size=100
spring.datasource.hikari.idle-timeout=600000
spring.datasource.hikari.max-lifetime= 1800000
spring.datasource.hikari.connection-timeout = 180000
Нагрузочное тестирование
Первые несколько вызовов со статистикой времени были в порядке, но при дальнейшем срабатывании статистика времени отклоняется. Ниже приведено сравнение статистики первого и последнего раза.
Код: Выделить всё
First time stats:Код: Выделить всё
2024-07-31 01:11:15.698 INFO 81931 --- [masked] i.StatisticalLoggingSessionEventListener : Session Metrics {
204927042 nanoseconds spent acquiring 1 JDBC connections;
0 nanoseconds spent releasing 0 JDBC connections;
96128250 nanoseconds spent preparing 5 JDBC statements;
2582852833 nanoseconds spent executing 5 JDBC statements;
0 nanoseconds spent executing 0 JDBC batches;
0 nanoseconds spent performing 0 L2C puts;
0 nanoseconds spent performing 0 L2C hits;
0 nanoseconds spent performing 0 L2C misses;
61844917 nanoseconds spent executing 4 flushes (flushing a total of 10 entities and 2 collections);
15162333 nanoseconds spent executing 5 partial-flushes (flushing a total of 8 entities and 8 collections)
}
Код: Выделить всё
Last time stats:Код: Выделить всё
2024-07-31 01:12:15.678 INFO 81931 --- [masked] i.StatisticalLoggingSessionEventListener : Session Metrics {
6325645250 nanoseconds spent acquiring 1 JDBC connections;
0 nanoseconds spent releasing 0 JDBC connections;
104583 nanoseconds spent preparing 5 JDBC statements;
9456613083 nanoseconds spent executing 5 JDBC statements;
0 nanoseconds spent executing 0 JDBC batches;
0 nanoseconds spent performing 0 L2C puts;
0 nanoseconds spent performing 0 L2C hits;
0 nanoseconds spent performing 0 L2C misses;
1247332 nanoseconds spent executing 4 flushes (flushing a total of 10 entities and 2 collections);
254583 nanoseconds spent executing 5 partial-flushes (flushing a total of 8 entities and 8 collections)
}
Что не так с нашей настройкой получения соединения JDBC? Как мы можем сократить время, проводимое там?
Подробнее здесь: https://stackoverflow.com/questions/788 ... connection
Мобильная версия