Как я могу отслеживать Tomcat с помощью jvisualvm, показывая visualgc? - PullRequest
6 голосов
/ 06 августа 2011

Я дважды проверил следующее:

  • Я запускаю jvisualvm в том же окне, где работает Tomcat.
  • Это Java 6u19.
  • MyСлужба Tomcat работает от имени того же пользователя, под которым я вошел.
  • Моя служба Tomcat использует тот же каталог JVM, из которого я использую jvisualvm.
  • Tomcat имеет JMX, включенный вконкретный порт, но я не думаю, что это поможет мне.

При всем этом я делаю вижу мой процесс Tomcat в списке "Local" для jvisualvm.Это показано как(pid 5644) ". Если я дважды щелкаю по нему, то на каждой вкладке отображается" Не поддерживается для этой JVM. "Однако VisualVM отображается в" Local ", и все вкладки работают для него, очевидно, с использованием одного и того же экземпляра JVM.нет очевидного способа добавить соединение JMX в ""instance.

Я вижу экземпляр JMX Tomcat в" Local "как" localhost: (мой номер порта) ", и это работает, но на вкладке Visual GC отображается" Не поддерживается для этой JVM "Я предполагаю, что это означает, что Visual GC не работает через JMX.

Что я делаю не так? Я попытался запустить jstatd. Это не имело никакого значения. Когда я запускаю jstatd, то visualvm видит "Local" "jstatd ", но когда я дважды щелкаю по нему, он просто отслеживает этот процесс jstatd, а не любой другой процесс Java.

ПРИМЕЧАНИЕ. Я решил попробовать запустить Tomcat не как службу, а непосредственно в окне CMD и, альт, теперь visualvm работает отлично. Я подумал, что попробую это, когда я запустил «jps» и получу жалобу «Информация о процессе недоступна», и Google для этого нашел и нашел кого-то, кто сказал, что он получил это, когда они запускали любое приложение Java какЭто помогает в испытательном стенде, но не помогает понять, как контролировать производственную систему.

Это Tomcat, работающий в качестве службы Windows под Tanuki wрэпер на Windows Server 2003.

1 Ответ

3 голосов
/ 07 августа 2011

Из вашего описания ясно, что Jvmstat как-то сломан.Jvmstat используется Visual GC, jps и VisualVM.Причина, по которой вы видите свой Tomcat как нераспознанное приложение в узле «Локальный», означает, что VisualVM обнаружил (через jvmstat), что запущено приложение Java, но не может получить никаких данных о нем.Это может быть как-то связано с тем, что вы запускаете Tomcat как службу Windows.Вы можете попытаться выйти из всех Java-приложений и удалить каталог hsperfdata_ {your_user_name}, который находится в каталоге% TMP%, и перезапустить Tomcat и VisualVM.Если Tomcat правильно распознан в узле «Local», Visual GC также будет работать.Если это не удается, запустите Tomcat и запустите jps с:

jps -J-Djps.debug=true -J-Djps.printStackTrace=true

и опубликуйте вывод.Это может показать нам, почему jvmstat не может читать информацию из Tomcat.

...