Mam aplikację, która jest odpowiedzialna za archiwizację starych aplikacji, która będzie wykonywać wiele aplikacji jednocześnie, więc będzie musiała działać przez kilka dni.Ile czasu należy poświęcić na zbieranie śmieci?
Kiedy moja firma opracowała to zrobili sporo testów wydajności i wydawało się, że otrzymali przyzwoite dane, ale ostatnio korzystam z archiwum dla klienta i wydaje się, że działa bardzo wolno i Wydajność wydaje się pogarszać jeszcze dłużej.
Wygląda na to, że nie ma wycieku pamięci, ponieważ od czasu monitorowania go za pomocą jconsole nadal dostępna jest duża ilość pamięci i nie wydaje się, że kurczy się.
Zauważyłem jednak, że przestrzeń dla ocalałych i uparty gen sterty może bardzo szybko zapełnić się, dopóki nie pojawi się zbiór śmieci i wyczyści to, co zdarza się często, czego nie jestem pewien, czy to może być źródło pozornego spowolnienia.
Aplikacja działa już przez 7 dni 3 godziny i według jconsole spędził 6 godzin wykonując kopiowanie śmieci (zbiory 772, 611) oraz 12 godzin i 25 minut na znakach kompaktowych (145 940 zbiorów).
Wydaje się, że poświęcasz dużo czasu na zbieranie śmieci i zastanawiam się, czy ktoś wcześniej sprawdził coś podobnego i czy jest to normalne czy nie?
Edits
przetwarzanie lokalne wydaje się być powolny, na przykład szukam w jednej części w dziennikach, które miały 5 sekund, aby wyodrębnić pewne XML z koperty SOAP za pomocą XPath, które następnie dołącza do łańcucha bufor wraz ze znacznikiem głównym ... to wszystko, co robi. Nie profilowałem go jeszcze, ponieważ jest on uruchomiony w produkcji, albo musiałbym wyciągnąć dane przez sieć, albo ustawić dużą bazę testową w naszym środowisku deweloperskim, co może się skończyć.
Running Java HotSpot VM Client w wersji 10.0-B23
Naprawdę wystarczy wysoką przepustowość, nie skonfigurowano żadnych konkretnych parametrów zbiórki śmieci, byłby uruchomiony, co zawsze domyślnie będzie. Nie wiesz, jak znaleźć kolektory w użyciu?
Fix
skończyć się coraz profilera dzieje na nim, okazało się przyczyną spowolnienia był jakiś kod, który był stale przycinania linii off polu statusu wpisywanie oświadczenia rejestrowania który został całkiem źle zrobione. Powinienem się domyślić, że odśmiecanie było objawem ciągłego kopiowania tekstu stanu do pamięci, a nie rzeczywistej przyczyny.
Pozdrawiam facetów.
Cokolwiek rozkazał sędzia? – ZenMaster
* (nie jest to odpowiedź na twoje pytanie, stąd komentarz) * ... * ", który będzie robił wiele aplikacji jednocześnie, więc będzie musiał działać przez kilka dni." * ... [sic ] Masz na myśli, że twoja aplikacja nie może zostać zamknięta i uruchomiona ponownie bez potrzeby rozpoczynania wszystkiego od zera !? – TacticalCoder
Cóż, jeśli go zatrzymasz, to zapisze listę tego, co pozostało, wraz z aplikacjami, których nie udało się zarchiwizować, które można załadować i uruchomić ponownie. To jest nasz plan, jeśli nie możemy przyspieszyć tego stanu w ciągu kilku następnych dni, aby rozbić nasze flagi archiwum na mniejsze partie. – Dan675