Korzystanie z konsoli JConsole
JConsole (Java™ Monitoring and Management Console) to graficzne narzędzie, które umożliwia użytkownikowi monitorowanie i zarządzanie zachowaniem aplikacji Java.
Narzędzie JConsole jest zbudowane w interfejsie API produktu java.lang.management . Konsola JConsole łączy się z aplikacjami, które działają na tej samej stacji roboczej lub na zdalnej stacji roboczej. Aplikacje muszą być skonfigurowane w taki sposób, aby zezwalać na dostęp.
Gdy konsola JConsole łączy się z aplikacją Java, raportuje informacje na temat aplikacji. Szczegóły obejmują użycie pamięci, uruchomione wątki i załadowane klasy. Te dane ułatwiają monitorowanie działania aplikacji i wirtualnej maszyny języka Java. Informacje te są przydatne w zrozumieniu problemów z wydajnością, problemów z użyciem pamięci, zawieszenia lub zakleszczenia.
Konfigurowanie programu JConsole do monitorowania aplikacji Java
- Aplikacja Java, która ma być monitorowana, musi być uruchomiona z opcjami wiersza komend, które umożliwiają dostęp do konsoli JConsole z innych systemów lub innych użytkowników. Program JConsole może przyłączać się do procesów należących do tego samego użytkownika w tym samym systemie bez tych opcji. Najprostszy zestaw opcji monitorowania jest przedstawiony w poniższym przykładzie:
Wartość dla < numer portu > musi być bezpłatnym portem w systemie. W tym przykładzie opcje authenticate i ssl zapobiegają uwierzytelnianiu i szyfrowaniu haseł za pomocą protokołu Secure Sockets Layer (SSL). Za pomocą tych opcji można połączyć się z aplikacją Java za pomocą konsoli JConsole lub dowolnego innego agenta JMX, jeśli ma on dostęp do określonego portu. Tych opcji bez zabezpieczeń należy używać tylko w środowisku programistycznym lub testowym. Więcej informacji na temat konfigurowania opcji zabezpieczeń można znaleźć w sekcji.-Dcom.sun.management.jmxremote.port=<port number> -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false - Uruchom konsolę JConsole, wpisując jconsole w wierszu komend. Ścieżka musi zawierać katalog bin instalacji Java.
- Zostanie otwarte okno dialogowe Nowe połączenie w konsoli JConsole: wprowadź nazwę hosta i numer portu określone w kroku 1. Jeśli konsola JConsole jest uruchomiona na tej samej stacji roboczej, co aplikacja Java, należy pozostawić wartość nazwy hosta localhost. W przypadku systemu zdalnego należy ustawić wartość pola hosta na nazwę hosta lub adres IP stacji roboczej. Pozostaw puste pola Nazwa użytkownika i Hasło , jeśli zostały użyte opcje określone w kroku 1.
- Kliknij przycisk Połącz. Konsola JConsole zostanie uruchomiona i wyświetlona zostanie karta Podsumowanie .
Konfigurowanie programu JConsole do monitorowania samego siebie
- Uruchom konsolę JConsole, wpisując jconsole w wierszu komend. Ścieżka musi zawierać katalog bin pakietu SDK.
- Zostanie otwarte okno dialogowe Nowe połączenie w konsoli JConsole: w polu Proces zdalny wpisz wartość localhost:0 .
- Kliknij przycisk Połącz. Konsola JConsole zostanie uruchomiona i wyświetlona zostanie karta podsumowania.
Korzystanie z programu JConsole do monitorowania aplikacji Java
Na karcie JConsole Podsumowanie wyświetlane są szczegółowe informacje na temat połączonej maszyny JVM. W tym miejscu można wybrać dowolną z pozostałych kart, aby uzyskać więcej szczegółów na temat konkretnego aspektu. Na karcie Pamięć wyświetlana jest historia użycia każdej puli pamięci w maszynie JVM,-najbardziej użyteczna jest użycie pamięci sterty.
Można również zażądać przeprowadzenia czyszczenia pamięci, klikając przycisk Wykonaj czyszczenie pamięci . Użytkownik musi być połączony z wyłączonymi opcjami zabezpieczeń, tak jak to opisano wcześniej, lub być uwierzytelniany jako użytkownik sterujący.
Na karcie Wątki wyświetlana jest liczba wątków, które są obecnie uruchomione, oraz lista ich identyfikatorów.
Kliknięcie identyfikatora wątku powoduje wyświetlenie stanu wątku i jego bieżącego śledzenia stosu.
Na karcie Klasy wyświetlana jest bieżąca liczba załadowanych klas oraz liczba klas załadowanych i niezaładowanych od momentu uruchomienia aplikacji. Zaznaczenie pola wyboru Szczegółowe dane wyjściowe umożliwia przełączenie i wyłączenie szczegółowych danych wyjściowych ładowania klas w celu wyświetlenia listy klas, które są ładowane w maszynie JVM klienta. Dane wyjściowe są wyświetlane na wyjściu stderr klienta JVM klienta.
Zakładka MBeans umożliwia sprawdzenie stanu komponentów MBean platformy, co zapewnia bardziej szczegółowe informacje na temat maszyny JVM. Więcej informacji na temat komponentów MBeans i rozszerzeń J9 MXBean zawiera sekcja Interfejs zarządzania językiem w dokumentacji Eclipse OpenJ9 .
Na koniec karta VM zawiera informacje na temat środowiska, w którym działa aplikacja Java, w tym wszystkie argumenty maszyny JVM oraz bieżącą ścieżkę klasy.
Rozwiązywanie problemów związanych z konsolą
JConsole jest aplikacją Swing. Uruchomienie programu JConsole na tej samej stacji roboczej, co aplikacja Java, która ma być monitorowana, ma wpływ na wydajność aplikacji Java. Za pomocą konsoli JConsole można nawiązać połączenie z maszyną JVM uruchomionej na zdalnej stacji roboczej, aby zmniejszyć wpływ na wydajność aplikacji.
Ponieważ konsola JConsole jest aplikacją Java, można przekazać jej opcje wiersza komend Java za pośrednictwem aplikacji, która uruchamia program JConsole, poprzedzając je przedrostkiem –J. Na przykład, aby zmienić maksymalną wielkość sterty używaną przez konsolę JConsole, należy dodać opcję wiersza komend -J-Xmx< size>.
Konsola JConsole używa interfejsu API dołączania do łączenia się z aplikacją i może łączyć się tylko z innymi maszynami wirtualnymi J9 . Jeśli wystąpią problemy podczas korzystania z konsoli JConsole w celu monitorowania zdalnej aplikacji, przyczyną może być funkcja API Attach (Dołącz). Informacje na temat diagnozowania problemów zawiera sekcja Interfejs API przyłączenia Java.
Znane ograniczenia
- Korzystanie z lokalnej listy procesów
- Lokalna lista procesów nie działa. Aby nawiązać połączenie z lokalną maszyną JVM, w polu tekstowym Zdalny proces należy użyć pola localhost:<port> .
- Wykorzystanie procesora na karcie Przegląd
- Ekran wykorzystania procesora nie działa.
Więcej informacji
Więcej szczegółowych informacji o programie JConsole i definicjach wyświetlanych wartości znajduje się w dokumentacji Oracle .