首页 > 解决方案 > 如何在 AWS ECS 中增加 Java 堆大小?

问题描述

我有用 Java SpringBoot 开发的 REST API。我已将此 A​​PI 部署为 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 环境中的何处执行此命令。

标签: javaamazon-web-services

解决方案


对我来说,ECS 似乎没有忽略 -Xmx。

我增加了 Task vCPU 和内存参数,并希望增加堆大小。

我在容器命令的覆盖中使用了参数-XX:MaxRAMPercentage=80.0。它终于奏效了。


推荐阅读