Как найти утечку нити в приложении Spring + Tomcat

Максимальное ограничение соединения не является проблемой с http2 + sse.

Это было проблемой на http 1

1
задан P.Péter 18 January 2019 в 11:38
поделиться

1 ответ

Наиболее вероятные причины появления потоков таким образом:

  1. Tomcat был неправильно настроен, например, executor maxThreads установил необоснованно высокое значение по умолчанию 200.
  2. Код приложения создает пул внешних потоков, например Executors.newCachedThreadPool() , который испытывает всплеск нити.
  3. Во время повторного развертывания приложения пул потоков, созданный неразвернутым приложением, не останавливается правильно. См. этот ответ .
  4. Код приложения создает потоки с new Thread().

Точка 4 маловероятна, так как ваша трассировка стека показывает java.util.concurrent.ThreadPoolExecutor. Найдите пул, который создает потоки с префиксом pool- (код приложения grep и конфигурация Tomcat для pool-). Затем закройте бассейн.

0
ответ дан Karol Dowbecki 18 January 2019 в 11:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: