java - 如何在 AWS ECS 中增加 Java 堆大小?
问题描述
我有用 Java SpringBoot 开发的 REST API。我已将此 API 部署为 AWS ECS 中的 docker 容器。我在 AWS 任务中分配了 2048 MB 作为硬内存和 1024 作为软内存。ECS 启动 docker 容器后,我访问 docker 容器并执行以下命令
java -XX:+PrintFlagsFinal -version | grep 堆大小
我得到以下结果
uintx ErgoHeapSizeLimit = 0 {product}
uintx HeapSizePerGCThread = 87241520 {product}
uintx InitialHeapSize := 33554432 {product}
uintx LargePageHeapSizeThreshold = 134217728 {product}
**uintx MaxHeapSize := 536870912** {product}
结果中显示的 MaxHeapSize 为 536870912,大约为 536 MB(大约是软内存的一半)
我想知道如何在 AWS ECS 环境中将此堆大小增加到至少 800 MB。
我知道如何使用命令 java -Xmx800m 设置堆大小,但我不知道在 AWS ECS 环境中的何处执行此命令。
解决方案
对我来说,ECS 似乎没有忽略 -Xmx。
我增加了 Task vCPU 和内存参数,并希望增加堆大小。
我在容器命令的覆盖中使用了参数-XX:MaxRAMPercentage=80.0
。它终于奏效了。
推荐阅读
- angular - 如何在同一个 .ts 文件中的两个组件之间传输数据
- python - ML 分类的统计显着性水平 Python 中的基线结果
- matillion - 如何将 DateTime 类型的 Matillion Job 变量转换为 python datetime.datetime?
- php - 如何在php中将902.1或902等数字转换为900
- java - 如何在地图视图上显示自定义信息窗口
- nginx - nginx正则表达式的问题
- javascript - 在对象数组中过滤对象数组?
- python - 如何在 python 中使用 dask 数据框将字符串更改为日期类型?
- node.js - 使用 react-dropzone-uploader 获取服务器响应
- docker - 无法使用 Docker 容器中的 ENV 变量在 docker-compose 文件中执行 HEALTHCHECKS