Пик времени отклика Tomcat - PullRequest
0 голосов
/ 11 июля 2020

Я сталкивался с периодическими всплесками в ответах Rest API, размещенных на Tomcat. Общее время отклика в пределах 2 мс. Но есть некоторые всплески между ними, когда один запрос занимал более 1,5 секунд, эти запросы вызывают тайм-ауты на стороне клиента, поскольку клиент настроен с очень низким таймаутом соединения. Этот всплеск происходит каждые 1 час до 1:30 часа. Нет всплеска ЦП и памяти. Приложение получает данные из Redis, и на машинах Redis также нет скачков. Количество запросов, обрабатываемых в секунду, составляет 500. Пул потоков всегда используется недостаточно. Ниже приведена конфигурация Tomcat.

<Connector port="8080"
               connectionTimeout="60000"
               maxThreads="500"
               minSpareThreads="50"
               acceptCount="2000"
               protocol="org.apache.coyote.http11.Http11NioProtocol"
               useSendfile="false"
               compression="force"
               enableLookups="false"
               redirectPort="8443" />

ОЗУ машины составляет 8 ГБ, а JVM настроена с XMS и XMX как 4 ГБ. Я не использую никаких явных аргументов G C. (Tomcat 9.0.26, Java 11, 4 ядра, 8 ГБ ОЗУ)

Я подозреваю, что G C может быть причиной проблемы, но поскольку я не вижу скачков ни в процессоре, ни в памяти Я понятия не имею, почему это происходит. Может ли кто-нибудь помочь мне, подкинув несколько идей по решению этой проблемы?

...