JAVA 10+ -XX :MaxRAMPercentage flag in Kubernetes container

标签 java elasticsearch kubernetes jvm heap-memory

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/

相关文章:

elasticsearch - elasticsearch排序与得分-效率?

c# - 如何在C#Nest中进行双重嵌套查询

service - 如果容器不监听端口,如何创建 kubernetes 部署?

proxy - 在kubernetes集群中设置no_proxy

kubernetes - 如何创建一个用户,该用户可以访问 kubernetes 中除一个 namespace 之外的所有 namespace

java - 在 Java 中,是否可以在接口(interface)内部使用类型变量作为数组元素?

java - 如何在 hibernate 中使用 <composite-map-key>

java - Spring Boot 无法成功将数据 POST 到数据库 (ORA-00942)

ruby-on-rails - Rails - 使用模型方法过滤 Searchkick 结果

java - 从 ini 文件读取多个值,保留顺序