в асинхронной обработке с DeferredResult?
ожно увеличить время ожидания, чтобы до обработки ответа запрос не превышался?
Настройки Tomcat в Spring Boot -
server.tomcat.max-connections=2000
server.tomcat.max-threads=200
server.connection-timeout=1200000
Запрос в секунду были поднятыconstantUsersPerSec(20) during (15)
до 300 в течение 15 секунд, и все запросы были обработаны, как можно видеть на графике ниже из гатлинга (синий).
scn.inject(
constantUsersPerSec(20) during (15),
)
Это связано сmax-connections = 2000
который обслуживал 300 запросов, используя200
рабочие темы.
Контроллер написан на Spring MVC, который возвращаетDeferredResult
который выполняет асинхронную обработку запроса и, следовательно, возобновит ответ после обработки ответа.
Но даже еслиserver.connection-timeout
установлен на большое число1200000
Есть много 503 к концу (красный)
> status.find.in(200,304,201,202,203,204,205,206,207,208,209), b 78 (100.0%)
ut actually found 503
Gatling.conf также настроен на увеличение времени ожидания -
timeOut {
simulation = 8640000 # Absolute timeout, in seconds, of a simulation
}
ahc {
#keepAlive = true # Allow pooling HTTP connections (keep-alive header automatically added)
connectTimeout = 600000 # Timeout when establishing a connection
handshakeTimeout = 600000 # Timeout when performing TLS hashshake
pooledConnectionIdleTimeout = 600000 # Timeout when a connection stays unused in the pool
readTimeout = 600000 # Timeout when a used connection stays idle
#maxRetry = 2 # Number of times that a request should be tried again
requestTimeout = 600000