为了账号安全,请及时绑定邮箱和手机立即绑定

Java 中的 MaxRAMPercentage 支持,它仅适用于容器还是我们也可以在容器外使用

Java 中的 MaxRAMPercentage 支持,它仅适用于容器还是我们也可以在容器外使用

慕仙森 2023-03-31 09:44:21
我已经在 aws bean stalk 和 procfile 中部署了我的 java 服务,我想指定堆内存,我想以这样的方式指定,即使在更改底层硬件 (RAM) 之后,我的服务也不应该受到影响,我想通了我可以用百分比指定它,而不是硬编码堆值(xmx,xms),但后来我对此感到困惑https://bugs.java.com/bugdatabase/view_bug.do?bug_id=8196595是只在容器内使用还是也可以在容器外使用
查看完整描述

1 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

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

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

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


查看完整回答
反对 回复 2023-03-31
  • 1 回答
  • 0 关注
  • 439 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信