В производственной системе, в которой запущено 3 веб-приложения Tomcat, мы недавно заметили, что Tomcat завис из-за утечки потоков. Два из трех веб-пакетов взаимодействуют друг с другом, и я хотел бы выяснить, какой из двух компонентов вызывает накопление этого потока.
Вопрос: Что такое хороший способ / инструмент, чтобы узнать, у какого из 3 веб-приложений есть утечка потоков?
Мои навыки Java очень ржавые. Я не очень знаком с Tomcat, и открываю для себя все время.
Я запустил jconsole
, чтобы узнать об утечке потока. Я не хочу устанавливать дополнительные (или не стандартные) инструменты для устранения этой проблемы, поскольку это производственная система.
На скриншоте jconsole ниже вы можете видеть, как увеличивается количество потоков; процесс Tomcat / Catalina был остановлен в 08:52, через пару минут после того, как число потоков превысило 893 потока.
По запросу,
элемент Connector
: <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" maxThreads = "600" minSpareThreads = "150" acceptCount = "150" connectionTimeout = "30000" />
от "Tomcat crash", я имею в виду, что больше событий не регистрируется в файле catalina.log
, а также ни в одном из файлов журналов 3 веб-приложений. Только лежащий в основе apache регистрирует события с ошибками HTTP 500.