如何解决如何为在 AWS ECS Docker 容器中运行的 Spring Boot API 微调 JVM?
更新:我的自动缩放策略设置为最小10 个容器,最大15。这是我的另一个问题,关于决定使用多少容器的逻辑是什么。
我有一个 Spring Boot API(使用 Spring Web、Swagger、PostgresDb),它在 docker 容器中的 AWS ECS(弹性容器服务)上运行。我使用的是 m5.xlarge,它有 4 个 vCPU 和 16GiB RAM。我已经按照这篇文章对CPU、内存(硬限制)和内存预留(软限制)进行了微调-
https://medium.com/@vlad.fedosov/how-to-calculate-resources-reservation-for-ecs-task-3c68a1e12725
因此,我获得了以下值:
containerDefinitions: [{
"cpu": 218,"memoryReservation": 1930,"memory": 2895,.
...
.....
}]
这是在计算上述值之前我的指标的样子(当我更直接地查看结果时,CPU 更像是 90-100% 的平均值):
我的问题是,现在根据我新计算的 CPU、内存值,我应该为这个 Java 应用程序设置多大的 JVM 堆?
计算:
CPU = (100/100) * 168 * 1.3 = 218
MemoryReservation = (116/100) * 1280 * 1.3 = 1930.24
Memory = 1.5(1930.24) = 2895
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。