jvm-gc-overhead

JVM GC 开销过高

现象

接口延迟周期性抖动,CPU 使用率高但业务线程不忙,日志出现 GC overhead limit exceeded 或长停顿;监控显示 GC 次数和停顿时间明显上升。

快速定位

jstat -gcutil <PID> 1000 10
jcmd <PID> GC.heap_info
jcmd <PID> GC.class_histogram

开启 GC 日志(JDK 9+):

-Xlog:gc*:file=/var/log/app/gc.log:time,uptime,level,tags

查看容器内存限制和堆设置:

cat /sys/fs/cgroup/memory.max
jcmd <PID> VM.flags | grep -E 'MaxHeapSize|InitialHeapSize'

常见根因

修复

相关命令