我已經在 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 容器外使用。
添加回答
舉報
0/150
提交
取消