Profilowanie aplikacji w trybie autonomicznym
Aplikację można profilować w trybie autonomicznym (z
poziomu wiersza komend), bez konieczności instalowania platformy Test and Performance Tools Platform. Jednak na komputerze, na którym rezyduje profilowana aplikacja, musi być zainstalowany
komponent Agent Controller.
Profilowanie aplikacji w trybie autonomicznym można przeprowadzić, wywołując agenta profilowania Java,
który stanowi bibliotekę przyłączaną do wirtualnej maszyny języka Java (JVM) w celu przechwytywania i rejestrowania
zachowania aplikacji Java. Dane wyjściowe dostarczane przez agenta mają postać fragmentów kodu XML.
W celu wywołania agenta profilowania Java należy użyć opcji Java -Xrun:
-XrunpiAgent:agent_parm[,agent_parm]*
Na przykład aby przeprowadzić profilowanie klasy PerformanceExample.java, korzystając z filtrów zdefiniowanych
w pliku myFilters.txt oraz kierując dane z sesji profilowania do pliku o nazwie PEProfilingData,
należy wpisać następującą komendę w wierszu komend:
java -XrunpiAgent:server=standalone,filters=myFilters.txt,file=PEProfilingData.trcxml PerformanceExample
- Uwaga: Jeśli chcesz uruchomić produkt WebSphere Application Server 6 (WAS) w trybie profilowania z wiersza komend, wykonaj następujące czynności:
- Przejdź do katalogu <katalog_profilowania>/config/cells/<nazwa_węzła>Cell/nodes/<nazwa_węzła>/servers/server1
- Zmień zawartość elementu jvmEntries w pliku server.xml. W elemencie tym znajduje się atrybut o nazwie genericJvmArguments. Do wartości tego atrybutu dopisz ciąg -XrunpiAgent:server=enabled.
- Restartuj produkt WAS.
-
- Dodając parametr -XrunpiAgent, można określić różne tryby uruchamiania agenta profilowania.
Parametr agent_parm może przyjąć jedną z następujących wartości:
- server=[standalone | enabled | controlled | application]
- standalone
- Agent profilowania działa w trybie nienadzorowanym, co oznacza, że interakcja agenta ze środowiskiem roboczym
jest niemożliwa. Informacje o konfiguracji są udostępniane przy użyciu plików konfiguracyjnych, a dane profilowania
są zapisywane w pliku bezpośrednio przez agenta profilowania. Plik profilowania można później zaimportować do środowiska
roboczego.
- Agent profilowania Java jest przyłączany do instancji wirtualnej maszyny języka Java ręcznie i generuje
dane profilowania w pliku wyjściowym. Domyślny plik wyjściowy nosi nazwę trace.trcxml, ale korzystając z parametru
file=nazwa_pliku, można określić inną nazwę pliku. W przypadku wybrania tej opcji agent profilowania Java
generuje nadrzędny element traceRoot, tworząc kompletny i poprawny dokument XML.
- enabled (wartość domyślna)
- Agent profilowania działa w tle wirtualnej maszyny języka Java, nie zużywając zasobów, dopóki środowisko robocze
nie zostanie do niego podłączone z żądaniem rozpoczęcia monitorowania. Dane
będą wówczas przesyłane przez kanał danych agenta i wykorzystywane
przez środowisko robocze.
Oznacza to, że agent profilowania Java jest załadowany, umożliwia normalne działanie aplikacji, ale dane profilowania
nie są generowane, dopóki do agenta nie zostanie przyłączony klient przekazujący mu instrukcje. W przypadku wybrania
tej opcji agent profilowania Java generuje tylko fragmenty kodu XML, zamiast kompletnego dokumentu XML.
- controlled
- Agent profilowania uniemożliwia zainicjowanie wirtualnej maszyny języka Java (agent jest załadowany,
ale blokuje uruchomienie aplikacji), dopóki nie zostanie do niej przyłączony przez środowisko robocze i dopóki nie
otrzyma od klienta instrukcji nakazujących rozpoczęcie monitorowania. Oznacza to, że jeśli agent profilowania jest
uruchomiony w trybie controlled, powoduje on zawieszenie wirtualnej maszyny języka Java, dopóki nie otrzyma żądania
rozpoczęcia monitorowania, a zamiast kompletnego dokumentu XML generuje tylko fragmenty kodu XML.
- application
- Agent profilowania Java jest załadowany, działa w tle i umożliwia normalne działanie aplikacji, jak w trybie
enabled.
- Dane profilowania są generowane dopiero po spełnieniu dwóch warunków. Po pierwsze, korzystając z klasy
org.eclipse.hyades.collection.profiler.Profiler, aplikacja musi zażądać, aby agent profilowania rozpoczął
profilowanie, a po drugie, klient testowy środowiska roboczego musi zostać przyłączony do agenta profilowania Java
i spowodować rozpoczęcie monitorowania.
- Uwaga: Cały proces profilowania jest sterowany przez aplikację przy użyciu klasy
org.eclipse.hyades.collection.profiler.Profiler.
- profile=plik_profilu
Tę opcję można zastosować tylko w przypadku, gdy włączona jest opcja server=standalone. W tym pliku określone
są opcje, z którymi ma być uruchamiany program profilujący w trybie autonomicznym. Opcje określone w tym pliku zazwyczaj
ustawia się w oknie konfiguracji profilowania przy uruchamianiu procesu Java przez użytkownika w środowisku roboczym;
użycie tego pliku stanowi równorzędną metodę określania opcji w przypadku uruchamiania procesu w trybie autonomicznym.
Plik można załadować na jeden z dwóch sposobów.
Listę poprawnych opcji pliku profilu można znaleźć w sekcji Opcje filtru profilu
w trybie autonomicznym. - filters=nazwa_pliku
Wartość używana tylko w przypadku określenia opcji server=standalone.
Umożliwia określenie nazwy pliku zawierającego początkowe definicje filtrów klas, które mają być używane
podczas sesji profilowania. Domyślnie jest to plik filters.txt w katalogu bieżącym. Informacje na temat formatu
pliku można znaleźć poniżej.
- file=nazwa_pliku
Wartość używana tylko w przypadku określenia opcji server=standalone.
Umożliwia określenie nazwy pliku, w którym będą zapisywane dane profilowania. Domyślnie jest to plik trace.trcxml
w katalogu bieżącym.
- help
Wyświetla na wyjściu standardowym listę dostępnych opcji agentów.
Format pliku filtru klasy
Plik filtru powinien definiować trzy pola: pakiet/klasa,
metoda i tryb w następującym formacie:
pakiet/klasa metoda tryb
gdzie:
- pakiet/klasa
- To pole służy do określenia wzorca nazwy pakietu lub klasy. Wzorzec powinien być łańcuchem znaków niezawierającym odstępów wewnętrznych. Na początku lub na końcu łańcucha może znajdować się pojedyncza gwiazdka (*), na przykład *.pakiet lub org.firma.*. Symbol * oznacza zero lub więcej znaków, dzięki czemu wzorzec staje się ogólnym wzorcem przedrostka lub przyrostka.
Można także określić sam symbol * reprezentujący wszystkie łańcuchy.
- metoda
- To pole służy do określenia wzorca nazwy metody. Wzorzec powinien być łańcuchem znaków niezawierającym odstępów wewnętrznych, zgodnym z tymi samymi regułami specyfikacji, co pole klasa.
- tryb
- To pole określa, czy pakiet lub klasa o nazwie pasującej do wzorca ma
zostać uwzględniona w profilowaniu czy wykluczona z niego.
Tryb może mieć wartość WYKLUCZ lub UWZGLĘDNIJ.
Wzorce filtrów są przetwarzane w określonej kolejności, dopóki nie zostanie znaleziony pierwszy pasujący
wzorzec. Jeśli nazwa klasy nie pasuje do żadnego z określonych wzorców filtru, wartością domyślną jest
uwzględnienie klasy.
Sterowanie agentem profilowania Java
Gdy agent profilowania Java zostanie uruchomiony z parametrem server=enabled lub
server=controlled, komunikacja z agentem odbywa się w środowisku roboczym klienta za pośrednictwem
komponentu Agent Controller zainstalowanego na komputerze hosta.
Uwagi
- Jeśli w wierszu komend nie zostanie określona nazwa pliku definicji filtru, agent profilowania Java będzie
próbował odczytać filtry z pliku o nazwie filters.txt w katalogu bieżącym. Jeśli plik filters.txt nie istnieje,
podczas sesji profilowania nie będą używane żadne filtry. Jeśli plik zawierający filtry ma nazwę filters.txt
i jest umieszczony w katalogu bieżącym, nie trzeba określać parametru filtrów w wierszu komend, aby
filtry zostały użyte przez agenta profilowania.
- Jeśli nie zostanie określony plik wyjściowy danych profilowania, dane te zostaną zapisane w pliku trace.trcxml.
- Nie trzeba określać rozszerzenia pliku wyjściowego. Automatycznie otrzyma on rozszerzenie .trcxml.
- Nie trzeba określać rozszerzenia aplikacji Java. Może to być plik o rozszerzeniu .class.
Pojęcia pokrewne
Narzędzie profilujące - przegląd
Zasoby profilowania
Czynności pokrewne
Profilowanie aplikacji w trybie autonomicznym w systemie AS/400
Uruchamianie lub przyłączanie procesu Java
Korzystanie z widoku monitora
profilowania
(C) Copyright IBM Corporation 2000, 2006. Wszelkie prawa zastrzeżone.