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

Amazon web services 如果CPU达到100%,AWS ECS fargate是否关闭容器?,amazon-web-services,cpu,amazon-ecs,aws-fargate,Amazon Web Services,Cpu,Amazon Ecs,Aws Fargate,我已经使用fargate使用一个容器设置了一个ecs任务。任务和容器设置了cpu和内存限制。我可以看到我的容器会因为一些未知的原因偶尔关闭。关闭和重新启动时,最大cpu为100%,最小为0% 我正在尝试测试容器是否由于我的应用程序在内部达到某个限制而关闭,或者AWS在CPU达到100%时将其关闭。我知道内存是一个硬限制,它会触发关机,但我不知道CPU是否也是这样 提前谢谢 您的观察是绝对正确的,如果您使用的是Fargate启动类型,则必须给出该类型,因为Fargate的定价计算基于任务大小,如果

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

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


提前谢谢

您的观察是绝对正确的,如果您使用的是Fargate启动类型,则必须给出该类型,因为Fargate的定价计算基于任务大小,如果应用程序试图消耗比指定大小更多的资源(CPU或内存),它们将被终止,您将以137的形式退出代码,这似乎是合乎逻辑的

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

  • 根据负载对应用程序进行基准测试,并设置适当的任务大小
  • 如果负载不可预测,请在Fargate服务前面使用基于服务CPU利用率和应用程序负载平衡器的服务自动缩放,这将在负载条件下扩展您的服务,并在没有CPU利用率时扩展

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

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

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

  • 根据负载对应用程序进行基准测试,并设置适当的任务大小
  • 如果负载不可预测,请在Fargate服务前面使用基于服务CPU利用率和应用程序负载平衡器的服务自动缩放,这将在负载条件下扩展您的服务,并在没有CPU利用率时扩展

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

    您是否检查过该容器的退出代码?有时我们也会遇到同样的问题,我可以看到docker终止了容器,退出代码为137,状态原因为:OutOfMemoryError:容器因内存使用过多而终止。我从未见过任何与CPU使用有关的错误,甚至我们的容器也非常密集地使用CPU。关于如何检查退出状态的更多信息:谢谢,这似乎是cpu问题,因为查看指标时,内存没有达到100%,但最大cpu达到了100%。然而,我认为这可能是由于容器重新启动,因为最大值为100%,最小值为0%。所以它在将其发送到0%时失败,然后重新将其发送到100%。当然,这在办公室是有争议的,因为我们通过增加内存和cpu解决了重启问题。因此,根据这里的推理,它一定是cpu,因为它不能是内存,因为它从来没有达到100%,它不可能与应用程序有关,因为更多的cpu和内存修复了它。我会检查代码。你检查过那个集装箱的出口代码了吗?有时我们也会遇到同样的问题,我可以看到docker终止了容器,退出代码为137,状态原因为:OutOfMemoryError:容器因内存使用过多而终止。我从未见过任何与CPU使用有关的错误,甚至我们的容器也非常密集地使用CPU。关于如何检查退出状态的更多信息:谢谢,这似乎是cpu问题,因为查看指标时,内存没有达到100%,但最大cpu达到了100%。然而,我认为这可能是由于容器重新启动,因为最大值为100%,最小值为0%。所以它在将其发送到0%时失败,然后重新将其发送到100%。当然,这在办公室是有争议的,因为我们通过增加内存和cpu解决了重启问题。因此,根据这里的推理,它一定是cpu,因为它不能是内存,因为它从来没有达到100%,它不可能与应用程序有关,因为更多的cpu和内存修复了它。将检查代码。还请注意,内存限制是强制性的,但它不会告诉您。我不小心漏掉了它,在只使用了128MB内存之后,它就终止了我的进程,但是让容器永远运行!还要注意,内存限制是强制性的,但它不会告诉您。我不小心漏掉了它,在只使用了128MB内存之后,它就终止了我的进程,但是让容器永远运行!