如果 CPU 达到 100%,AWS ECS fargate 是否会关闭容器?

mor*_*rod 5 cpu amazon-web-services amazon-ecs aws-fargate

我已经使用 Fargate 使用一个容器设置了一项 ecs 任务。任务和容器设置了 CPU 和内存限制。我可以看到我的容器偶尔会因某种未知原因关闭。关闭并重新启动时,最大 cpu 为 100%,最小为 0%。

我正在尝试测试容器是否由于我的应用程序达到内部某些限制而关闭,或者 AWS 在 CPU 达到 100% 时将其关闭。我知道内存是一个硬限制,会触发关闭,但我不知道CPU是否也是如此?

提前致谢!

Man*_*gal 3

您的观察绝对正确,如果您使用 Fargate Launch 类型,则必须提供任务大小,因为对于 Fargate 定价计算是基于任务大小,并且如果应用程序尝试消耗比指定大小更多的资源(CPU 或内存),他们被杀死,你将退出代码为 137,这似乎是合乎逻辑的。

这种情况可以通过两种方式解决:

  1. 针对负载对应用程序进行基准测试并设置适当的任务大小。
  2. 如果负载不可预测,请在 Fargate 服务之前使用基于服务 CPU 利用率和应用程序负载均衡器的服务自动缩放,这将在负载条件下横向扩展您的服务,并在没有 CPU 利用率时缩减服务。

我希望这将有助于稳定您的微型应用程序。