You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JVM堆内存超-XX:MaxRAMPercentage设定值时,Kubernetes会重启容器吗?

问题解答

场景回顾

你当前的配置:

  • Kubernetes资源限制:
    resources: 
      limits: 
         memory: 1024Mi 
      requests: 
         memory: 256Mi
    
  • JVM启动参数:-XX:MaxRAMPercentage=60.0,对应JVM堆内存上限为1024Mi × 60% = 614Mi

针对你的问题「若JVM内存超出614Mi,Kubernetes是否会强制重启该容器?」,分两种核心情况说明:

1. 仅JVM堆内存超614Mi,但容器总内存未达1024Mi

这是JVM内部的内存溢出场景:

  • JVM会优先触发垃圾回收(GC)尝试释放内存。
  • 如果GC后堆内存仍无法回到614Mi以内,JVM会抛出OutOfMemoryError:
    • 若应用未捕获该异常,JVM进程会直接崩溃,Kubernetes会根据容器的重启策略自动重启容器。
    • 若应用捕获并处理了该异常,进程可能继续运行,但后续内存持续走高的话,仍可能触发容器层面的内存限制。

2. 容器总内存超出1024Mi

当容器的整体内存占用(包含JVM堆、栈、元空间、直接内存、JVM自身进程开销等所有内存)超过Kubernetes设置的limits.memory阈值时:

  • 节点上的kubelet会触发OOM Killer,直接杀死容器进程。
  • 随后Kubernetes会按照容器的重启策略(默认是Always)重启该容器。

内容的提问来源于stack exchange,提问作者Mikhail Geyer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 09:20:14