AWS Fargate 集群 - 容器内的 java 进程 运行 可以消耗多少任务内存?

AWS Fargate Cluster - How much task memory can be consumed by java process running inside the container?

我正在 运行在 AWS Fargate 集群上安装一个 java 应用程序,所需任务数为 1。我创建了一个具有 30GB 内存和 4 个 vCPU 的任务定义,并且只有一个容器在这个任务中定义。我想在容器内 运行 一个 java 进程和 30GB(-Xmx30G) 的堆,我的问题是我的 java 进程是否可以在容器内消耗所有任务内存,或者是否有任何限制 ?

就像@jordanm 说的,并非所有JVM 消耗的内存都用于堆内存。还有(取决于 JVM 版本)PermGen 或 Metaspace 内存,通俗地称为非堆。

本质上,您可能想要做的是测试您的应用在分配给堆和非堆的 30Gb 的不同比例下的行为。

这是一个概括描述内存调优的教程:https://www.baeldung.com/jvm-parameters