2013-09-02 3 views
19

Оттуда взять свалку резьбы от Tomcat. Я хочу отслеживать текущие потоки на Tomcat в определенное время.Сжатие нити Tomcat

Примечание: Я делал это на веб-логике, но я не знаю, как это сделать на Tomcat.

ответ

32

Если вы используете Linux, вы можете отправить kill -3 [pid вашего tomcat], и он сбрасывает все текущие потоки в файле catalina.out.

+7

Я хотел бы добавить, что это, скорее всего, будет 'catalina.out' –

+0

Хорошее дополнение действительно. – Julien

+2

Лучший ответ здесь: http://stackoverflow.com/questions/4876274/kill-3-to-get-java-thread-dump – arun

5

Существует простой способ контролировать TOMCAT темы и сделать свалку. Начните с кота на следующих параметрах Java:

-Dcom.sun.management.jmxremote.port=<some free port> 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false 

После того, как кот перезапуск вы можете просто начать JConsole (часть JDK) или VisualVM и создать новое соединение JMX к порту вы выбрали выше.
В обоих инструментах вы также можете взять свалку;)

!!! Но делайте это только в закрытой/защищенной среде - так как нет аутентификации. !!!

0

Следующие шаги должны помочь вам получить текущие Java темы работы и анализировать их:

  1. Скачать IBM JCA который является хорошим анализатор нить свалка из IBM Thread & Dump Monitor Analyzer
  2. Выполните следующие действия, чтобы получить нити Tomcat свалка : [email protected]:~# sudo -u $TOMCAT_USER $JAVA_HOME/bin/jstack -J-d64 -l $(ps aux | grep '[c]atalina' | awk '{print $2}') > ~/threads.log
  3. Открыть нити сваливать с IBM Thread & Dump Monitor Analyzer

Примечание: Замените $JAVA_HOME на ваш путь к вашему текущему JDK, $TOMCAT_USER с пользователем, управляющим Tomcat; если вы передаете неправильный пользователь или даже с помощью корня, вы получите сообщение об ошибке, как это:

3047: well-known file is not secure 
Смежные вопросы