JAVA 10+ -XX:Kubernetes 容器中的 MaxRAMPercentage 标志

Kam*_*san 8 java jvm heap-memory elasticsearch kubernetes

Java 10引入了相应的-XX:{Initial|Min|Max}RAMPercentage标志来配置容器环境中的堆。

我在 k8s 集群中运行 Elasticsearch。Elaticsearch容器具有以下资源配置:

resources:
  limits:
    memory: 512Mi
  requests:
    memory: 256Mi
Run Code Online (Sandbox Code Playgroud)

问题:如果我设置-XX:MaxRAMPercentage为50%,值是多少?

  • 128Mi:所请求内存的 50%?
  • 256Mi: 限制的50%?
  • 变量范围128Mi-256Mi:实时内存的 50%?

apa*_*gin 14

在容器中,MaxRAMPercentage是根据cgroupmemory.limit_in_bytes值计算的。

limits影响 cgroup 内存限制的是Kubernetes 配置。因此,在您的情况下,最大堆大小将设置为 256M(限制的 50%)。

  • 默认情况下不是启用“-XX:+UseContainerSupport”吗? (12认同)