Visual VM, Java Management extension i inne ciekawostki



Podobne dokumenty
NETBEANS PROFILER TOMASZ ŁUKASZUK

JBoss Application Server

Java JMX. Marcin Werla. Monitorowanie i zarządzanie usługami sieciowymi w Javie. mwerla@man.poznan.pl PCSS/Poznań JUG

Skalowanie i monitorowanie działania systemu dlibra 5.0

Niezbędne serwery aplikacji. Wprowadzenie do technologii JBoss i Apache Tomcat.

Virtual Grid Resource Management System with Virtualization Technology

Referat pracy dyplomowej

Dokumentacja aplikacji Szachy online

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Java jako język programowania

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Nowe mechanizmy w wersji 3 Java Card. Mateusz LESZEK (138775)

U M L. System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux)

EJB 3.0 (Enterprise JavaBeans 3.0)

System zarządzania i monitoringu

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Wykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Red Hat Network Satellite Server

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Autor : Mateusz Kupczyk

Swing Application Framework czyli tam i z powrotem. Copyright Piotr Kochański & Erudis,

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

1. Zakres modernizacji Active Directory

Nagios czyli jak mieć na oku zasoby sieci. Przygotował: Andrzej Nowrot Leon Sp. z o.o.

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Programowanie Komponentowe WebAPI

Dokumentacja fillup - MS SQL

Linux vs rootkits. - Adam 'pi3' Zabrocki

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

Systemy Rozproszone Technologia ICE

Programowanie obiektowe zastosowanie języka Java SE

Programowanie obiektowe

Zdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu

Aplikacje RMI

SOP System Obsługi Parkingów

System. Instalacja bazy danych MySQL. Autor : Piotr Zielonka tel Piotrków Tryb., sierpień 2018r.

Oprogramowanie systemów równoległych i rozproszonych Wykład 7

Asseco dla Zdrowia r.

Szczegółowy harmonogram rzeczowy realizacji prac systemu B2B

OpenLaszlo. OpenLaszlo

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Platformy Programistyczne Zagadnienia sieciowe i wątki

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Czym jest jpalio? jpalio jpalio jpalio jpalio jpalio jpalio jpalio jpalio

Wywoływanie metod zdalnych

Win Admin Monitor Instrukcja Obsługi

Podejście obiektowe do budowy systemów rozproszonych

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Aktualizacja środowiska JAVA a SAS

Wydajne skalowanie aplikacji Java Enterprise

Win Admin Replikator Instrukcja Obsługi

JDK 7u25 NetBeans Zajęcia 1 strona - 1

Klucz do wydajności JBoss. Przemysław Kuźnicki RHC{E,VA} JBCAA B2B Sp. z o.o. pk@bel.pl

Rozwiązanie Compuware dynatrace

SAS Institute TECHNICAL SUPPORT )

Zadanie1: Odszukaj w Wolnej Encyklopedii Wikipedii informacje na temat NAT (ang. Network Address Translation).

Tutaj znajdziesz Odpowiedź na: Najczęściej Spotykane Problemy Najczęściej zadawane Pytania

Stworzenie klasy nie jest równoznaczne z wykorzystaniem wielowątkowości. Uzyskuje się ją dopiero poprzez inicjalizację wątku.

Monitorowanie aplikacji i rozwiązywanie problemów

Inteligentny czujnik w strukturze sieci rozległej

Technologie COM i ActiveX COM - Component Object Model

WPROWADZENIE DO JĘZYKA JAVA

Projektowanie architektury systemu rozproszonego. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Serwer główny bazodanowy. Maksymalnie 1U RACK 19 cali (wraz ze wszystkimi elementami niezbędnymi do zamontowania serwera w oferowanej szafie)

Laboratorium ASCOM COLT-2

Programowanie w Javie cz. 1 Wstęp. Łódź, 24 luty 2014 r.

Luxriot VMS. Dawid Adamczyk

Protokół HTTP (2) I) Wprowadzenie. II) Użyte narzędzia: III) Kolejność działań

Bezpieczeństwo systemów informatycznych

Serwery Statefull i Stateless

Analizator wydajności AMD CodeAnalyst

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji

Integracja wirtualnego laboratorium z platformą e-learningową

OLE: Pojęcia podstawowe

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji

Usługi i narzędzia QCG

Z pojedynczym obiekcie zasady grupy znajdziemy dwa główne typy ustawień:

Nowoczesny dział IT w chmurze

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7

Aplikacje biznesowe Wykład dla studentów Informatyki Stosowanej

Instrukcja pierwszego logowania do Serwisu BRe Brokers!

INFORMATOR TECHNICZNY WONDERWARE

Wprowadzenie SYSTEMY SIECIOWE. Michał Simiński

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA

Programowanie Użytkowe. Dr. inż. Marcin Blachnik

DOTACJE NA INNOWACJE

Programowanie współbieżne i rozproszone

weblsp Wybór przeglądarki i jej ustawienia Instrukcja ADH-Soft sp. z o.o., ul. 17 Stycznia 74, Warszawa

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

Projektowanie Bezpieczeństwa Sieci Łukasz Jopek Projektowanie Bezpieczeństwa Sieci - Laboratorium. Konfiguracja NAP Network Access Protection

Instalacja i konfiguracja IIS-a na potrzeby dostępu WEB do aplikacji Wonderware InTouch Machine Edition

Struktury systemów operacyjnych

Forum Client - Spring in Swing

Wykaz zmian w programie WinAdmin Replikator

Wykład 1: Wprowadzenie do technologii Java

Instrukcja instalacji oprogramowania dla środowiska MacOS

Nowinki technologiczne procesorów

OSGi Agata Hejmej

Transkrypt:

Visual VM, Java Management extension i inne ciekawostki Adam Dudczak adudczak (at) gmail.com Poznań Java User Group 6 października 2008

Plan prezentacji 1 Wprowadzenie do VisualVM 2 VisualVm jako klient JMX 3 Profilowanie aplikacji za pomocą VisualVM 4 Podsumowanie i dodatkowe informacje

Czym jest VisualVM? Aplikacja w ramach której zintegrowano istniejące narzędzia JDK jinfo, jmap, jstack, jstat JConsole znany z NetBeans profiler Wszystko to w oprawie stworzone w oparciu o NetBeans Platform (NetBeans RCP?) Począwszy od Java update 1.6 07, dostarczane razem z Sun JDK VisualVM to projekt otwarty (licencja GPLv2)

Funkcje dostępne w VisualVM (1) Uzyskanie podstawowych informacji o procesach Javy działających lokalnie i zdalnie Monitorowanie przebiegu wykonania wątków danej aplikacji (wykrywanie zakleszczeń) Możliwość wykonania i zapisania zrzutu aktualnego stanu wątków (ang. Thread dump) Zrzut zawartości sterty (ang. Heap dump)

Funkcje dostępne w VisualVM (2) Możliwość porównania zużycia pamięci i stanu wątków w różnych stadiach wykonania programu W pełni funkcjonalny klient JMX Profiler umożliwiający badanie utyliacji czasu procesora i pamięci Pełna zgodność z API pluginów do JConsole (por. JTop) Wizualizacja działania Garbage Collectora (Visual GC) i inne

Co ze starszymi wersjami Javy? Tabele dostępnych funkcji Aplikacje lokalne 1.42 5.0 6.0 7.0 jvmstat X X X X jmx X 1 X X attach X X Dostęp zdalny 1.42 5.0 6.0 7.0 jvmstat 2 X X X X jmx 3 X X X attach 1 Wymaga ustawienia -Dcom.sun.management.jmxremote 2 Na zdalnej maszynie musi działać jstatd 3 Wymaga ustawienia -Dcom.sun.management.jmxremote.port=numer

JStat vs JMX vs Attach funkcja jvmstat jmx attach wykrycie działającej aplikacji X X monitoring X X podgląd wątków X profiler X zrzut wątków X X zrzut sterty X X wywołanie GC X OOME X X Własności systemowe X X Argumenty JVM X X Main class X

Demo numer 1 O czym my w ogóle mówimy? Jak wygląda VisualVm?

Java Management extension (1) Java Management extension w specyfikacji Javy obecne od wersji 1.5 (Wcześniej niezależne implementacje np. mx4j) JMX pozwala stworzyć interfejs poprzez który można administrować, monitorować działanie aplikacji Komunikacja między klientem JMX a MBeanServer em może odbywać się np. poprzez połączenie lokalne, RMI, SSL Połączenie lokalne jest domyślnie uruchomione dla Javy 1.6 w przypadku 1.5 trzeba je uaktywnić (com.sun.management.jmxremote)

Java Management extension (2) Podstawową jednostką funkcyjną są MBeans, jest ich kilka rodzajów: Standard MBeans, Dynamic MBeans i in. Dostępny jest również mechanizm notyfikacji poprzez interfejs klienta usługi JMX jesteśmy informowani o zmianach wybranych przez nas parametrów Sporo zmian nadchodzi w JMX 2.0 (JDK 1.7)

Java Management extension (3) Każdy JVM udostępnia cztery podstawowe grupy MBeans: JImplementation informacje o implementacji MBeanServer a com.sun.management HotSpotDiagnostic umożliwia zapamiętanie stanu sterty, wgląd w konfigurację JVM java.lang informacje o ładowaniu klas, srodowisku w jakim działa JVM, zużyciu pamięci java.util.logging zarządzanie loggerami Większość serwerów aplikacyjnych oferuje rozbudowane interfejsy JMX (np. Tomcat, GlassFish, JBoss, WebSphere)

Dwa słowa o uruchamianiu jstatd jstatd jest częścią JDK 1.6 Przy próbie uruchomienia jstatd może pojawić się błąd : Could not create remote object access denied Problem z polityką wykorzystania tools.jar, co trzeba zrobić: stworzyć plik tools.policy (plik w visual-vm-examples.zip:/etc/tools.policy) uruchomić jstatd: jstatd J-Djava.security.policy=tools.policy trzeba również pamiętać aby uruchomić ten proces działał z poziomu tego samego użytkownika co monitorowana aplikacja

Demo numer 2 Przykładowa implementacja MBeana Podłączanie się do działającego na serwerze kontenera Apache Tomcat Trochę JMX owej magii

Demo numer 3 Monitorowanie lokalnej aplikacji Porównywanie zużycia pamięci Zabawy z Thread Dump Analyzerem

Uruchomienie profilera Dla poprawnego działania profilera w przypadku JDK 1.6 06 należy uruchomić aplikacje z parametrem: -Xshare:off. W przeciwnym wypadku maszyna wirtualna może się nie przeżyć kontaktu z profilerem. Przy pierwszym uruchomieniu profiler przeprowadzi kalibracje wszystkie rzeczy optymalizujące szybkość procesora (np. SpeedStep) powinny byc wyłączone.

Demo numer 4 - Profiler Profilowanie zużycia czasu procesora i pamięci Możliwość zapamiętania wyników profilowania do późniejszego porównania Ograniczenie liczby modyfikowanych metod Ograniczenie częstotliwości próbkowanai alokacji obiektów

Profilowanie aplikacji działających w śrdowisku produkcyjnym Znaczny spadek wydajności po uruchomieniu profilera od 60% do 40% Mimo wykorzystania mechanizmu ograniczania liczby modyfikowanych metod poprawa wydajności jest niewielka

Podsumowanie Paru rzeczy jeszcze brakuje + kilka niedoróbek w interfejsie Cały czas powstają nowe wtyczki Myślę, że warto się przyjrzeć bliżej!

Czytanki (1) Strona projektu VisualVM https://visualvm.dev.java.net Using VisualVM to find and resolve performance issue in Liferay http://kanonbra.com/index.php/projects/ performance-testing/18-using-visualvm-on-liferay Profiling With VisualVM, Part 2 http://blogs.sun.com/ nbprofiler/entry/profiling_with_visualvm_part_2 JDK Tools and Utilities http://java.sun.com/javase/ 6/docs/technotes/tools/index.html

Czytanki (2) Java theory and practice: Instrumenting applications with JMX https://visualvm.dev.java.net Monitoring and Management Using JMX http://java. sun.com/j2se/1.5.0/docs/guide/management/agent.html Creating a Custom JMX Client http://java.sun.com/ docs/books/tutorial/jmx/remote/custom.html

Dziękuje za uwagę Pytania? Adam Dudczak maneo@man.poznan.pl