Amazon ECS 服务节流逻辑 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon ECS 服务节流逻辑

Amazon ECS 服务计划程序包含保护性逻辑,当任务反复启动失败后,会限制任务启动频率。这有助于防止不必要的资源消耗并降低成本。

如果服务中的任务未从 PENDING 状态转换为 RUNNING 状态,而是直接进入 STOPPED 状态,计划程序会执行以下操作:

  • 逐渐延长重启尝试间隔的时间

  • 持续增加延迟时间,直至最长尝试间隔延长至 27 分钟

  • 生成服务事件消息以通知您出现此问题

注意

27 分钟的最长延迟间隔可能会在未来的更新中更改。

节流激活后,会收到以下服务事件消息:

(service service-name) is unable to consistently start tasks successfully.

节流逻辑的重要特征:

  • 服务会无限期地继续重试

  • 唯一的变化是延长了重启间隔的时间

  • 没有用户可配置的参数

解决节流问题

要解决节流问题,可以:

  • 更新服务以使用新的任务定义,这将使服务立即恢复为正常的无节流操作状态。有关更多信息,请参阅 更新 Amazon ECS 服务

  • 解决导致任务失败的根本原因。

触发节流的常见任务失败原因包括:

重要

以下场景不会触发节流逻辑:

  • 任务在进入 RUNNING 状态后停止

  • 任务因 Elastic Load Balancing 运行状况检查失败而停止

  • 任务中的容器命令在进入 RUNNING 状态后退出并返回非零代码