一、结论
JDK8 因未指定 MetaSpace 大小,程序启动过程中元空间不够用,触发 full gc。
详细如下:
JDK8 因未指定 MetaSpace 大小,默认初始大小约 21M
程序启动,元空间大小占用稳定在 90M
因为超过了默认元空间大小,导致元空间扩容(每次扩容会 full gc)
从 GC 日志来看,每次元空间扩容都是增加 20M 左右,所以程序启动时 full gc 4 次
二、问题
应用启动时出现 full gc;
gc日志重点:GC (Metadata GC Threshold) [PSYoungGen: 354024K->15340K(1376256K)