Java - Full GC (Garbage Collector) tritt häufig in kurzen Intervallen auf und führt zu Leistungseinbußen

In unserer Produktumgebung tritt ein ungewöhnliches Verhalten auf, das zu einer hohen Anzahl von Threads auf dem Server führt, auf dem Tomcat ausgeführt wird. Die Größe des Heapspeichers von 10.092.544 KB wird zwischen der neuen Generation und der Tenure-Generation mit 2.752.512 KB + 7.340.032 KB = 10.092.544 KB aufgeteilt.

Ich bin verwirrt darüber, warum GC sich mehrfach selbst ausführt, wenn auf dem Heap genügend Speicher verfügbar ist (neue und alte Generation) (Vollständiger GC [PSYoungGen: 0K-> 0K (2752512K)] [ParOldGen: 2748534K-> 2748529K (7340032K) )])

Wie Sie sehen können, bedeutet 0K-> 0K für junges Gen und .27G -> .27G für altes Gen, dass kaum Objekte gc'd werden und so viel Speicher verfügbar ist. (Heap-Größe ist 10G).

Da Full GC in kurzen Intervallen mehrmals ausgeführt wird, ist die Leistung gering und daher kann die Anwendung die eingehenden Benutzeranforderungen und damit die hohen Threads auf dem Server nicht verarbeiten. Schließlich müssen wir den Server neu starten, um aus dieser Situation herauszukommen.

Können Sie bitte erklären, was hier passiert.

Hier wird auf gc.log ausgegeben.

. .

Mehr...... . .

18. Juli 14:52:38 fwprodcontent03 gc.log: 3172.122: [GC [PSYoungGen: 0K-> 0K (2752512K)] 2750855K-> 2750855K (10092544K), 0,0515920 secs] [Times: user = 0,32 sys = 0,01, real = 0,06 Sekunden]

18. Juli 14:52:42 fwprodcontent03 gc.log: 3172.174: [Vollständige GC [PSYoungGen: 0K-> 0K (2752512K)] [ParOldGen: 2750855K-> 2749937K (7340032K)] 2750855K-> 2749937K (10092544K-> 2649937K-> -> 262115K (262144K)], 4,1571260 Sekunden] [Zeiten: Benutzer = 44,29 sys = 0,06, Real = 4,15 Sekunden]

18. Juli 14:52:42 fwprodcontent03 gc.log: 3176.361: [GC [PSYoungGen: 9071K-> 1280K (2752512K)] 2759008K-> 2751217K (10092544K), 0,0989600 Sekunden] [Times: user = 0,64 sys = 0,01, real = 0,10 Sekunden]

18.07. 14:52:46 fwprodcontent03 gc.log: 3176.461: [Vollständige GC [PSYoungGen: 1280K-> 0K (2752512K)] [ParOldGen: 2749937K-> 2748847K (7340032K)] 2751217K-> 2748847K (1009251444K-> 262K-> -> 262121 K (262144 K)], 3,1331910 s] [Zeit: Benutzer = 31,25 sys = 0,01, Real = 3,14 s]

18. Juli 14:52:46 fwprodcontent03 gc.log: 3179.616: [GC [PSYoungGen: 2161K-> 288K (2752512K)] 2751008K-> 2749135K (10092544K), 0,0688890 Sekunden] [Times: user = 0,42 sys = 0,02, real = 0,07 Sekunden]

18. Juli 14:52:49 fwprodcontent03 gc.log: 3179.686: [Vollständige GC [PSYoungGen: 288K-> 0K (2752512K)] [ParOldGen: 2748847K-> 2748930K (7340032K)] 2749135K-> 2748930K (10092544K-> 2648930K-> -> 262143K (262144K)], 3,2369940 Sekunden] [Zeit s: Benutzer = 32,23 sys = 0,02, Real = 3,23 Sekunden]

18. Juli 14:52:49 fwprodcontent03 gc.log: 3182.923: [GC [PSYoungGen: 0 K-> 0 K (2752512 K)] 2748930 K-> 2748930 K (10092544 K), 0,0607190 Sek.] [Times: user = 0,39 sys = 0,01, real = 0,06 Sekunden]

18.07. 14:52:57 fwprodcontent03 gc.log: 3182.984: [Vollständige GC [PSYoungGen: 0K-> 0K (2752512K)] [ParOldGen: 2748930K-> 2748528K (7340032K)] 2748930K-> 2748528K (10092544K-> 2648528K (10092544K) -> 262141 K (262144 K)], 8,5377730 Sekunden] [Zeiten: Benutzer = 98,30 sys = 0,57, Real = 8,54 Sekunden]

18. Juli 14:52:58 fwprodcontent03 gc.log: 3191.533: [GC [PSYoungGen: 202K-> 128K (2752512K)] 2748731K-> 2748656K (10092544K), 0,1088430 secs] [Times: user = 0,67 sys = 0,00, real = 0,11 Sekunden]

18.07. 14:53:02 fwprodcontent03 gc.log: 3191,642: [Vollständige GC [PSYoungGen: 128K-> 0K (2752512K)] [ParOldGen: 2748528K-> 2748534K (7340032K)] 2748656K-> 2748534K (10092544K-> 2648534K-> 26P -> 262143K (262144K)], 3,1761780 Sekunden] [Zeit s: Benutzer = 31,11 sys = 0,02, Real = 3,18 Sekunden]

18. Juli 14:53:02 fwprodcontent03 gc.log: 3194.820: [GC [PSYoungGen: 0K-> 0K (2752512K)] 2748534K-> 2748534K (10092544K), 0,0589010 secs] [Times: user = 0,38 sys = 0,01, real = 0,06 Sekunden]

18.07. 14:53:05 fwprodcontent03 gc.log: 3194.879: [Vollständige GC [PSYoungGen: 0 K-> 0 K (2752512 K)] [ParOldGen: 2748534 K-> 2748529 K (7340032 K)] 2748534 K-> 2748529 K (10092544 K-> 2648529 K-> 26P -> 262143K (262144K)], 3,0554520 Sekunden] [Zeiten: Benutzer = 30,72 sys = 0,03, Real = 3,05 Sekunden] . . .Mehr.....

Danke im Voraus.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage