Mam problem z aplikacją która długo działa. Co jakiś czas są zatrzymania aplikacji na około 5sekund spordycznie zdazalo sie na 30-120 sekund. Na razie nie wygląda to na wyciek pamięci (robiłem dumpa pamieci), użyty heap oscyluje około 50-70% dostępnej pamięci. Przydzielone dla javy mam min 8Gb max 10Gb, maszyna ogólnie ma 16Gb ramu. Przeglądając GC log wygląda jakby powodem bylo przerzucanie obiektów z young generation do tenured generation.
Przestój 5sekundowy pojawił się po zwiększaniu heap size do 10gb (żółty obszar widoczny na screenie).
Niebieski to used heap size.
Fioletowy/rozowy to Tenured generation, momenty skoków nakładają się ze spadkami young generation (young niestety nie widac na obecnym screenie).
Czerwony oraz zielony to czas GC.
Jak widać od momentu skoku nie pracuje juz tak regularnie jak przed.
Na maszynie nie widać jakiś dużych obciążeń IO czy CPU. Ramu obecnie wolnego na maszynie jest około 10-15%.
Wersja javy to 8u201.
Może ktoś miał podobny problem i ma jakies wskazówki? Dodam iż aplikacja przetwarza sporo danych wiec przemiał różnego typu obiektów jest spory.
Mam ustawioną JVM aby korzystała z GC1, -server oraz -UseMembar.