Java - Full GC (Garbage Collector) dzieje się często w krótkich odstępach czasu, powodując spadek wydajności

Widzę pewne nienormalne zachowanie w naszym środowisku prod, które powoduje dużą liczbę wątków na serwerze, na którym działa Tomcat. Wielkość sterty wynosząca 10 092 544 tys. KW jest podzielona między produkcję nowej generacji i dzierżawę na 2 752 512 K + 7 340 032 K = 10 092 544 tys.

Jestem zdezorientowany, dlaczego GC działa sam wielokrotnie, gdy na stercie jest wystarczająco dużo pamięci (zarówno nowy, jak i stary gen) (Full GC [PSYoungGen: 0K-> 0K (2752512K)] [ParOldGen: 2748534K-> 2748529K (7340032K )])

Jak widać 0K-> 0K dla młodych genów i .27G -> .27G dla starego genów oznacza, że ​​prawie żadne obiekty nie otrzymują gc i jest tak dużo pamięci dostępnej. (wielkość sterty to 10G).

Ponieważ Full GC działa wielokrotnie w krótkich odstępach czasu, powoduje to niską wydajność i dlatego aplikacja nie może obsłużyć przychodzących żądań użytkowników, a tym samym wysokich wątków na serwerze i ostatecznie musimy zrestartować serwer, aby wyjść z tej sytuacji.

Czy możesz wyjaśnić, co się tutaj dzieje.

Tutaj jest wyjście na gc.log.

. .

więcej...... . .

18 lipca 14:52:38 fwprodcontent03 gc.log: 3172.122: [GC [PSYoungGen: 0K-> 0 K (2752512K)] 2750855K-> 2750855K (10092544K), 0,0515920 s] [Czasy: użytkownik = 0,32 sys = 0,01, real = 0,06 s]

18 lipca 14:52:42 fwprodcontent03 gc.log: 3172.174: [Full GC [PSYoungGen: 0K-> 0K (2752512K)] [ParOldGen: 2750855K-> 2749937K (7340032K)] 2750855K-> 2749937K (10092544K) [PSPermGen: 262143K -> 262115 tys. (262144 tys.)], 4,1571260 sek.] [Czasy: użytkownik = 44,29 sys = 0,06, real = 4,15 s]

18 lipca 14:52:42 fwprodcontent03 gc.log: 3176.361: [GC [PSYoungGen: 9071K-> 1280K (2752512K)] 2759008K-> 2751217K (10092544K), 0,0989600 sek] [Czasy: użytkownik = 0,64 sys = 0,01, real = 0,10 s]

18 lipca 14:52:46 fwprodcontent03 gc.log: 3176.461: [Full GC [PSYoungGen: 1280K-> 0K (2752512K)] [ParOldGen: 2749937K-> 2748847K (7340032K)] 2751217K-> 2748847K (10092544K) [PSPermGen: 262143K -> 262121K (262144K)], 3,1331910 s] [Tim es: użytkownik = 31,25 sys = 0,01, real = 3,14 s]

18 lipca 14:52:46 fwprodcontent03 gc.log: 3179.616: [GC [PSYoungGen: 2161K-> 288K (2752512K)] 2751008K-> 2749135K (10092544K), 0,0688890 sek] [Czasy: użytkownik = 0,42 sys = 0,02, real = 0,07 s]

18 lipca 14:52:49 fwprodcontent03 gc.log: 3179.686: [Full GC [PSYoungGen: 288K-> 0K (2752512K)] [ParOldGen: 2748847K-> 2748930K (7340032K)] 2749135K-> 2748930K (10092544K) [PSPermGen: 262143K -> 262143K (262144K)], 3,2369940 s] [Czas s: użytkownik = 32,23 sys = 0,02, real = 3,23 s]

18 lipca 14:52:49 fwprodcontent03 gc.log: 3182.923: [GC [PSYoungGen: 0K-> 0K (2752512K)] 2748930K-> 2748930K (10092544K), 0,0607190 sek] [Czasy: użytkownik = 0,39 sys = 0,01, real = 0,06 s]

18 lipca 14:52:57 fwprodcontent03 gc.log: 3182.984: [Full GC [PSYoungGen: 0K-> 0K (2752512K)] [ParOldGen: 2748930K-> 2748528K (7340032K)] 2748930K-> 2748528K (10092544K) [PSPermGen: 262143K -> 262141K (262144K)], 8,5377730 s] [Czasy: użytkownik = 98,30 sys = 0,57, real = 8,54 s]

18 lipca 14:52:58 fwprodcontent03 gc.log: 3191.533: [GC [PSYoungGen: 202K-> 128K (2752512K)] 2748731K-> 2748656K (10092544K), 0,1088430 s] [Czasy: użytkownik = 0,67 sys = 0,00, real = 0,11 s]

18 lipca 14:53:02 fwprodcontent03 gc.log: 3191.642: [Full GC [PSYoungGen: 128K-> 0K (2752512K)] [ParOldGen: 2748528K-> 2748534K (7340032K)] 2748656K-> 2748534K (10092544K) [PSPermGen: 262143K -> 262143K (262144K)], 3.1761780 sek.] [Czas s: użytkownik = 31,11 sys = 0,02, rzeczywisty = 3,18 sek.]

18 lipca 14:53:02 fwprodcontent03 gc.log: 3194.820: [GC [PSYoungGen: 0K-> 0K (2752512K)] 2748534K-> 2748534K (10092544K), 0,0589010 s] [Czasy: użytkownik = 0,38 sys = 0,01, real = 0,06 s]

18 lipca 14:53:05 fwprodcontent03 gc.log: 3194.879: [Full GC [PSYoungGen: 0K-> 0K (2752512K)] [ParOldGen: 2748534K-> 2748529K (7340032K)] 2748534K-> 2748529K (10092544K) [PSPermGen: 262143K -> 262143K (262144K)], 3,0554520 s] [Czasy: użytkownik = 30,72 sys = 0,03, real = 3,05 s] . . .więcej.....

Z góry dziękuję.

questionAnswers(1)

yourAnswerToTheQuestion