Jak napisałem w artykule Performance drop after 5 days running web application, how to spot the bottleneck?, mam problem z aplikacją, która działa powoli po uruchomieniu przez pewien czas.Jak używać VisualVM do wykrywania wąskiego gardła/problemu
Uruchomiłem VisualVM i zrobiłem migawkę między różnymi czasami. Teraz aplikacja jest bardzo powolna, ale nie mam pojęcia, jak rozpoznać wąskie gardło. Nie mają między sobą wielu różnic, a jedyną rzeczą, która trochę rośnie, jest Heap, który z powodzeniem zbiera śmieci po pewnym czasie.
Czy ktoś może mi podać jakieś wskazówki?
Oto migawki (aplikacje):
[1] http://www.2shared.com/file/W4XJ6HtE/application-1314108550032.html
[2] http://www.2shared.com/fadmin/22521338/f512f97e/application-1314097232727.apps.html
Dziękujemy!
EDYCJA: Przyglądam się bliżej, zauważyłem, że procesor nie jest nawet używany dużo ... i system jest naprawdę powolny!
W drugim migawce (który jedzie ponad godzinę, podczas gdy pierwszy wychodzi ponad 4 sekundy tylko) istnieją pewne obciążenie CPU i prawie bez obciążenia stworzony przez GC. Jeśli wąskim gardłem jest procesor, powinieneś spróbować profilować, które metody to powodują. Możesz to zrobić również w jvisualvm. – ziggystar
Na jakim serwerze aplikacji działa uruchomiona aplikacja? Czy to jest za front-endem serwera WWW? Jeśli tak, w jaki sposób są połączone 2 (który moduł). – atrain