如果堆、栈确实无法第一时间保留,一定要保留 GC 日志,这样我们最起码可以看到 GC Cause,有一个大概的排查方向。可以提高我们分析问题的效率。
共有三个VM参数需要设置:
-
HeapDumpBeforeFullGC 实现在Full GC前dump。
-
HeapDumpAfterFullGC 实现在Full GC后dump。
-
HeapDumpPath 设置Dump保存的路径
比如 :
java -Xms200m -Xmx200m -Xmn50m -XX:PermSize=30m -XX:+HeapDumpBeforeFullGC -XX:+HeapDumpAfterFullGC -XX:HeapDumpPath=e:\dump testgc.Main