Tomcat не отвечает периодически

Tomcat не отвечает и выбрасывает 504 с перерывами. Но загрузка процессора невелика. Мы подозревали, что это может произойти, мы получили много запросов и сделали tomcat без ответа. Мы указали 400 как maxThreads в server.xml, и единственное, что у нас есть, - это ошибка в журнале.

Максимальное количество потоков (400), созданных для соединителя с нулевым адресом и портом 8090

Мы используем AWS и проверили ELB, это только 299 запросов в то время. Так что нас смущает то, что когда мы видим максимальное количество потоков в ошибке и как ELB показывает меньше, то это.

1 ответ

Такое поведение часто вызвано большим использованием памяти кучи и / или чрезмерной сборкой мусора.

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

В таких ситуациях вы можете видеть или не видеть высокую загрузку процессора. Попробуйте проанализировать использование памяти (в этом может помочь JMX), журналы GC и посмотреть, не является ли это причиной.

Если это так, то, скорее всего, где-то есть утечка памяти. Затем проанализируйте еще немного, найдите его и исправьте или продолжайте перезапускать Tomcat каждый раз, когда он достигает этого состояния.

Другие вопросы по тегам