JDK21代际ZGC进程RES内存超容器限制被OOMKiller杀死求助
JDK21代际ZGC进程RES超容器内存限制被OOMKiller杀死问题
当前配置
JVM参数
-XX:+UseZGC -XX:+ZGenerational -XX:ZCollectionInterval=30 -XX:ZAllocationSpikeTolerance=5 -XX:-OmitStackTraceInFastThrow -Dsun.jnu.encoding=UTF-8 -Dfile.encoding=UTF-8 -XX:InitialRAMPercentage=70 -XX:MaxRAMPercentage=70 -Xss512k -XX:MaxDirectMemorySize=512m -XX:CompressedClassSpaceSize=64m -XX:MaxMetaspaceSize=256m -XX:ReservedCodeCacheSize=256m -XX:InitialCodeCacheSize=256m
容器内存资源
request: 4Gi limit: 4Gi
问题现象
- top命令显示进程最大RES达3.9G,接近容器4Gi限制,触发OOMKiller
- OOMKiller日志显示cgroup内存不足,杀死Java进程
- 相关截图显示PPS远低于RES,但进程因RES超限被终止
已尝试的优化措施(均未解决)
- 调小
MaxRAMPercentage - 添加
-XX:ZUncommitDelay=60 - 添加
-XX:SoftMaxHeapSize=2000m
补充信息与求助
查阅资料得知普通ZGC使用多映射内存,但代际ZGC(Generational ZGC)并不采用该机制,特此求助解决该RES内存超限问题。
内容的提问来源于stack exchange,提问作者69Naah
相关产品推荐
相关产品推荐

