【发布时间】:2021-09-28 07:37:21
【问题描述】:
似乎无论我尝试什么,在我的容器上运行 java -XshowSettings:vm -version 都会产生相同的输出
VM settings:
Max. Heap Size (Estimated): 494.94M
Using VM: OpenJDK 64-Bit Server VM
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment 18.9 (build 11.0.11+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.11+9, mixed mode, sharing)
我不知道如何从494.94M 增加最大堆大小。
这是我的 Dockerfile
FROM maven:3.6.3-openjdk-11-slim AS builder
WORKDIR /app
COPY pom.xml .
COPY src src
RUN mvn package
ARG JAR_FILE=target/*.jar
RUN java -Djarmode=layertools -jar ${JAR_FILE} extract
FROM openjdk:11-jre-slim
WORKDIR /app
EXPOSE 8081
COPY --from=builder /app/dependencies/ ./
COPY --from=builder /app/spring-boot-loader/ ./
COPY --from=builder /app/snapshot-dependencies/ ./
COPY --from=builder /app/application/ ./
ENV JAVA_OPTS="-XX:MinRAMPercentage=30 -XX:MaxRAMPercentage=90"
CMD java $JAVA_OPTS org.springframework.boot.loader.JarLauncher
我的 ECS 任务的内存设置为 2048,因此将最大堆设置为 90% 我希望看到更接近的值。
我也尝试过直接在 ECS 任务定义中覆盖 JAVA_OPTS。我不断收到 OutOfMemory 错误,真的需要一些帮助!
【问题讨论】:
标签: java spring-boot docker memory amazon-ecs