我有一个运行多个 tomcat 应用程序和独立 jar 的实例。如果机器有 2vcpu 和 8GB RAM,单个应用程序可以按需使用资源(基于为 tomcat 和单个 jar 设置的 Xms 和 Xmx 值)。ECS 目前不在图中。
现在我将把应用程序移动到 EC2 实例上的容器(不是 Fargate)。是否可以有任务定义,其中我指定的 cpu 和内存总和大于 EC2 主机的实际 cpu 或 RAM?
因为我不希望所有应用程序在创建任务定义期间都使用 100% 分配给它的内存。拥有一个具有 4vcpus 的 ECS 主机并且我在其上放置 10 个任务并在任务定义中指定 4vcpus 是否可行?我知道这些任务不会使用 4vcpu,但我希望如果有任何任务需要使用,它们不应该被限制为使用主机的全部容量
我知道 ECS 具有我计划使用的扩展功能。但我的目标是确保不会过度配置我用于 ECS 的 EC2 主机数量
简短的回答是,您可以实现它,但有细微差别。如果您配置任务定义的大小,您将无法过度使用 CPU/内存资源。但是,如果您要部署到 EC2,您可以在任务定义中省略任务大小,并假定所有任务都能够访问所有主机容量。然后,您可以在各个容器级别微调 CPU/内存资源(保证/上限等)。这将允许您过度提交。
更长的答案在这里。