Metaspace OOM
应用运行一段时间后抛出 java.lang.OutOfMemoryError: Metaspace,重启后恢复;堆内存看起来不高,但类加载数量持续增长。
jcmd <PID> VM.metaspace
jcmd <PID> GC.class_stats | sort -k3 -n | tail
jstat -gcmetacapacity <PID> 1000 10
查看容器内存和 JVM 参数:
jcmd <PID> VM.flags | grep -E 'Metaspace|MaxRAM'
cat /sys/fs/cgroup/memory.max
MaxMetaspaceSize 设置过小。-XX:MaxMetaspaceSize,并预留容器内存。jcmd VM.metaspace 观察 committed/used 趋势。jcmd — Metaspace 和类统计jstat — 元空间容量jmap — 堆和类直方图jvm-gc-overhead — 关联的 GC 问题