2011-08-05 13 views
6

I dwukrotnie sprawdzane następujące:Jak mogę monitorować Tomcat za pomocą jvisualvm, wyświetlając visualgc?

  • Używam jvisualvm na tym samym polu, gdzie Tomcat jest uruchomiony.
  • To jest Java 6u19.
  • Usługa Mój Tomcat działa jako ten sam użytkownik, na którym jestem zalogowany jako.
  • Usługa Mój Tomcat używa dokładnie tego samego katalogu JVM, z którego korzystam jvisualvm.
  • Tomcat ma włączoną obsługę JMX na określonym porcie, ale nie sądzę, że to mi pomoże.

z tym wszystkim, zrobić zobaczyć mój proces Tomcat w „lokalny” listy dla jvisualvm. Jest to pokazane jako "< Nieznana aplikacja> (pid 5644)". Jeśli dwukrotnie go kliknę, na każdej karcie pojawi się komunikat "Nieobsługiwany dla tej maszyny JVM". Jednak VisualVM jest pokazany w "Local" i wszystkie karty działają na niego, oczywiście przy użyciu tej samej instancji JVM. Nie ma oczywistego sposobu dodania połączenia JMX do instancji "< Nieznana aplikacja>".

Widzę wystąpienie JMX Tomcat w "Local" jako "localhost: (mój numer portu)", a to działa, ale karta Visual GC pokazuje "Nie obsługiwane dla tej maszyny JVM", co zakładam, że Visual GC nie działa poprzez JMX.

Co robię źle? Próbowałem już zaczynać od jstatd. To nie miało znaczenia. Kiedy zaczynam jstatd, wtedy visualvm widzi "lokalny" "jstatd", ale kiedy dwukrotnie go klikam, wydaje się, że monitoruje on ten proces jstatd, a nie inny proces Java.

UWAGA: Postanowiłem uruchomić Tomcat nie jako usługę, ale bezpośrednio w oknie CMD i Viola, teraz visualvm działa idealnie. Pomyślałem, że spróbuję tego, gdy uruchomię "jps" i otrzymam skargę "informacje o procesie niedostępne" i Google na nią i znalazłem kogoś, kto powiedział, że dostali to, gdy uruchomili jakąkolwiek aplikację Java jako usługę. Pomaga to w testowaniu, ale nie pomaga dowiedzieć się, jak monitorować system produkcyjny.

to Tomcat uruchomiony jako usługa systemu Windows pod owijki Tanuki w systemie Windows Server 2003.

Odpowiedz

3

Jest oczywiste z opisu, który jest jakoś Jvmstat łamanego. Jvmstat jest używany przez Visual GC, jps i VisualVM. Powód, dla którego Tomcat jest postrzegany jako nierozpoznana aplikacja w węźle "Lokalny", oznacza, że ​​VisualVM wykrył (za pośrednictwem jvmstat), że działa uruchomiona aplikacja Java, ale nie może uzyskać żadnych danych na jej temat. Może to być w jakiś sposób związane z faktem, że uruchamiasz Tomcat jako usługę Windows. Możesz spróbować zamknąć wszystkie aplikacje java i usunąć katalog hsperfdata_ {nazwa_użytkownika}, który znajduje się w katalogu% TMP% i ponownie uruchomić Tomcat i VisualVM. Jeśli Tomcat zostanie poprawnie rozpoznany w węźle "Local", Visual GC również będzie działał. Jeśli to się nie powiedzie, uruchom Tomcat i uruchom jps z:

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

i opublikuj dane wyjściowe. To może nam pokazać, dlaczego jvmstat nie może odczytać informacji z Tomcat.

Powiązane problemy