ZGC 调优参数与实战
ZGC 的设计目标是「零调优」——开箱即用。但对于生产环境,适当的调优可以进一步提升性能。
理解 ZGC 的核心参数和日志解读,是进行 ZGC 调优的基础。
核心参数
基本配置
停顿时间目标
ZGC 没有显式的停顿时间目标参数,因为 ZGC 的停顿时间本身就很短。但有以下相关参数:
并发线程数
GC 日志解读
开启 ZGC 日志
日志格式
阶段日志
字段说明
常见问题与解决
问题一:分配速率过高
如果应用的对象分配速率超过 ZGC 的处理能力,会导致停顿时间增加:
症状:
解决:
问题二:元空间压力
ZGC 的类元数据管理也会影响性能:
解决:
问题三:内存归还不及时
ZGC 默认延迟 5 分钟才将未使用的内存归还给操作系统:
问题四:容器环境问题
在 Kubernetes 容器环境中,ZGC 可能遇到内存限制问题:
监控工具
JMX 监控
jstat 监控
ZHeap
ZGC 引入了一个新的指标——ZHeap:
ZHeap 是 ZGC 管理的堆内存,不包括元空间和直接内存。
推荐配置模板
小内存配置(<16GB)
中内存配置(16GB~64GB)
大内存配置(>64GB)
调优步骤
第一步:观察基线
第二步:识别瓶颈
第三步:调整参数
第四步:验证
压测验证调优效果。