#mysql #spring-boot #hikaricp #jmeter-5.0
#mysql #весенняя загрузка #hikaricp #jmeter-5.0
Вопрос:
Я пытаюсь выполнить тестирование Jmeter для rest api, созданного с использованием spring boot micro service и JPA.
API подключается к экземпляру Mysql, выполняет пару запросов параллельно (асинхронно) и предоставляет результат в формате JSON.
Экземпляр Mysql развернут в aws.
Он отлично работает для 10 пользователей. Если я увеличу его еще больше, то получу соединение недоступным.
engine.jdbc.spi.SqlExceptionHelper : HikariPool-1 - Connection is not available, request timed out after 30000ms.
Единственное свойство, которое я настроил в application.properties, — ConnectionTimeout (это свойство определяет максимальное количество миллисекунд, в течение которых клиент (то есть вы) будет ожидать соединения из пула. Если это время будет превышено, а соединение не станет доступным, будет выдано исключение SQLException. Минимально допустимый тайм-аут соединения составляет 250 мс. По умолчанию: 30000 (30 секунд))
spring.datasource.hikari.ConnectionTimeout: 80000 (80 секунд).
Я прочитал о HikariCP и обнаружил, что maximumPoolSize: default: 10. minimumIdle : По умолчанию: то же, что и maximumPoolSize maxLifetime: По умолчанию: 1800000 (30 минут)
Я пытаюсь использовать различные комбинации свойств, упомянутых выше, для одновременного тестирования 100 одновременных пользователей.
Может кто-нибудь сказать мне, какие свойства пула соединений нужно настроить, чтобы протестировать это для 100 пользователей? Или какова оптимальная конфигурация?
Заранее спасибо
Комментарии:
1. maximumPoolSize определенно должен помочь. Но, похоже, ваши свойства не учитываются приложением. Вы установили время ожидания на 80 секунд, но в журнале по-прежнему указано, что оно ожидает только 30 секунд.