一次fullgc排查
运维通知项目fullgc频繁,如图
排查步骤:
1、增加gc日志,参数:
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-Xloggc:/usr/local/project/gp-notice-center-log/gc_t.log
2、查看gc日志
1)能看到在启动时因为metaspace分配少,导致启动时有三次fgc
增加metaspace到256m解决,参数如下:
-XX:MetaspaceSize=256m
-XX:MaxMetaspaceSize=256m
但看到第三次分配达到50M之后满足,猜测128也够用
2)除了meta区不够导致的fullgc,还看到有system.gc()
查找代码后,发现xml工具类中有打印手动gc,注释后解决
排查总结
查看gc日志,看一下内存每次分配多少以及gc的原因。本次排查虽然解决了fullgc的问题,但程序仍然占用内存过高,怀疑占用内存后没有及时回收,待排查