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

JAVA 10+ -XX:MaxRAMPercentage flag in Kubernetes container

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

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

resources:
  limits:
    memory: 512Mi
  requests:
    memory: 256Mi

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

在容器中,MaxRAMPercentage是根据cgroup memory.limit_in_bytes的值计算出来的。

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