Java 10 introduced相应的 -XX:{Initial|Min|Max}RAMPercentage
标志在容器环境中配置堆。
我在 k8s 集群中运行 Elasticsearch。 Elaticsearch 容器有以下资源配置:
resources:
limits:
memory: 512Mi
requests:
memory: 256Mi
问题:如果我将 -XX:MaxRAMPercentage
设置为 50%,该值是多少?
128Mi
:请求内存的 50%?256Mi
:限制的 50%?128Mi-256Mi
范围内的变量:实时内存的 50%?
最佳答案
在容器中,MaxRAMPercentage
是根据 cgroup memory.limit_in_bytes
值计算的。
影响 cgroup 内存限制的是 limits
Kubernetes 配置。因此,在您的情况下,最大堆大小将设置为 256M(限制的 50%)。
关于JAVA 10+ -XX :MaxRAMPercentage flag in Kubernetes container,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65167422/