Analiza logów GC

0

Witam

Borykam się z dziwnym problem. Mam serwer JBossa i aplikację. W miarę to działa ale zdarzają się momenty gdy naprawdę serwer zostaje przyciśnięty (duży raport itd.).

Objaw jest taki że GC po wygenerowaniu tego raportu leci na 100% i tak moze nawet pół minuty.

Próbuje to skumać co on tam robi właściwie analizujac logi GC:
dałem standardowe argumenty
-Xloggc/gc/gctest2.log -XX:+PrintGCDetails

Ale bardziej liczyłem na dane co on właściwie za obiekty on zwalnia i w jakiej ilosći.

Jest to dla mnie nowe zagadnienie - jak podejsc do diagnozowania takiego problemu? Wydajnośc serwera jest dopóki temu gc nie przyjdzie do głowy zajechac go podczas czyszczenia heap spacu.

Próbowałem JProfilerem coś podziałać - tam własnie zobaczyłem te cykle GC na 100% ale odnośnie co jest zwalnianie to nie znalazłem.

Mógłbym oczywiscie np. w przed wygenerowaniem raportu patrzec ile jest klas i jakiego rodzaju w profilerze potem zrobic to samo po i jakoś próbować odejmować ale to wydaje mi się kulawe.

0

Przejrzyj kod raportu. Całkiem możliwe, że generowanie trzyma gdzieś dane przez cały czas pracy. Po zakończeniu zadania całość idzie do utylizacji jako już niepotrzebna. Względnie użyj jmap z opcją -finalizerinfo, żeby zobaczyć które obiekty czekają na GC.

0

Szukałem takiego parametru ale nie ma:
http://docs.oracle.com/javase/1.5.0/docs/tooldocs/share/jmap.html

A google mi w ogóle nie znajduje nigdzie takiego parametru - jestes pewny ze to do tego polecenia?

0

Powiadasz? http://docs.oracle.com/javase/6/docs/technotes/tools/share/jmap.html zwroc uwagę na wersję javy. Niestety w Google jest tak, że linki z pierwszej dziesiątki zwyczajowo prowadzą do dokumentacji javy 1.4 i 1.5

0

Hmm...jednak to nie jest tak do końca. W java hotspot JDK jest jmap ale o bardzo okrojonych możliwościach. Np. nie ma tego parametru o którym wspomniałeś.
Jak się doczytałem to większosć tych parametrów to były experimental - i je wywalili po którymś updejcie 1.6.

Teraz ściagam JRockita - moze tam będzie inna wersja jmapa.

Jakby nie było możesz mi udostepnić swojego jmapa - bo jak mniemam masz taką wersję experimental.

A tak btw: jak mi GC leci na 100% przez nawet kilka minut taki leci. Czy to może być coś z samym jBossem? Wiem że ciężko tak bez wglądu w aplikację.

0

A wywal ten raport na osobny serwer raportów i niech komunikują się po RESTowym webservice....

1 użytkowników online, w tym zalogowanych: 0, gości: 1