【问题标题】:MaxRAMPercentage support in Java , is it only for container or we can use it outside container alsoJava 中的 MaxRAMPercentage 支持,它仅用于容器还是我们也可以在容器外使用它
【发布时间】:2019-11-25 22:17:40
【问题描述】:

我已经在 aws bean stalk 和 procfile 中部署了我的 java 服务,我想指定堆内存,我想指定这样一种方式,即即使在更改底层硬件 (RAM) 之后,我的服务也不应该受到影响并且我发现我可以用百分比指定它而不是硬编码堆值(xmx,xms),但后来我对此感到困惑https://bugs.java.com/bugdatabase/view_bug.do?bug_id=8196595

是只在容器内使用还是在容器外也可以使用

【问题讨论】:

  • 是只能在容器内使用还是也可以在容器外使用?这是我的问题,它与私人信息无关,在工作中也不会被问到

标签: java amazon-web-services amazon-elastic-beanstalk


【解决方案1】:

MaxRAMPercentage 是 JVM 参数,因此它被定义为“容器内”(如果您的术语指的是在 Elastic Beanstalk 内运行的进程)。作为附加说明,要使用它,您可以在 AWS 控制台 - Elastic Beanstalk - [实例] - 配置 - 修改软件 - 环境属性 --> 添加属性名称 = "JAVA_TOOL_OPTIONS", value = "-XX:MaxRAMPercentage= 80”为例。

“外部容器”一词令人困惑。但是,参考您上面提到的错误,我猜您混淆了 JVM 参数是用于 Docker 容器内的 java 进程还是适用于任何/正常的 java 进程。参考这个错误8186315,引入了 MaxRAMPercentage。然后是在 JDK 10 中引入的 bug 8196595,以改进在 Docker 容器中运行的 Java 的执行和可配置性。

这意味着 XX:MaxRAMPercentage(和 XX:InitialRAMPercentage 和 XX:MinRAMPercentage)可以在 docker 容器内使用,也可以在 docker 容器外使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-19
    • 1970-01-01
    • 1970-01-01
    • 2015-02-23
    • 1970-01-01
    • 2020-10-26
    相关资源
    最近更新 更多