求助>G1 出现 Full GC>
4回复
1月前

G1 出现 Full GC



正常运行过程中突然出现某次 young GC 时间超过预期最短停顿时间,Eden 区自适应变小。后续在 GC concurrent-mark-start 之后,连续多次 young GC 之后,出现一次 Full GC,然后 GC concurrent-mark-abort.

启动参数:
-Dcom.sun.management.jmxremote.ssl=false -Xms8g -Xmx8g -Xloggc:/home/shared/log/gc.log.2021-04-28-18-44 -XX:+PrintGCDateStamps -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:MetaspaceSize=128m -XX:-OmitStackTraceInFastThrow -XX:+PrintGCDetails -XX:NativeMemoryTracking=detail -verbose:gc

具体日志参见附件:
fullgc.log

求各位大佬解惑,感谢!!!

737 阅读
请先登录,再评论

回复列表

https://a.perfma.net/img/2382850
ferdi1月前

你这个就是空间不够了,并发收集失败直接转fullgc了,g1的fullgc就是直接serial gc整个堆

心弦3周前
回复 ?:

mixed gc的时候主要用复制算法,发现没有足够的region可以用于复制,直接会进入full gc,这个时候停止系统程序,然后采用单线程进行标记、清理和压缩整理

回复
1月前
回复 ferdi:

Full GC 之前有一次并发标记持续了几十秒,没有结束,按理说并发标记应该是比较快的,结束之后就能够触发 Mix GC 回收老年代空间。但是一直到 Full gc,这次并发标记也没有完成。想知道可能是什么原因导致这此并发标记时间这么长。

回复
1月前

Java 版本:
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)