aws resource_error ai_generated true

服务无法放置任务:原因:CPU资源不足

service unable to place tasks: reason: resource CPU was insufficient

ID: aws/ecs-task-stopped-resource-cpu

其他格式: JSON · Markdown 中文 · English
80%修复率
85%置信度
1证据数
2023-04-12首次发现

版本兼容性

版本状态引入弃用备注
ECS 1.62.0 active — — —
AWS CLI 2.15.0 active — — —

根因分析

ECS集群或容量提供者没有足够的可用CPU单元来运行任务定义中预留的CPU资源。

English

ECS cluster or capacity provider does not have enough available CPU units to run the task definition's CPU reservation.

generic

官方文档

https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-event-messages.html

解决方案

  1. 通过增加更多EC2实例或扩展Auto Scaling组来扩展ECS集群:
    aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg --desired-capacity 10 --min-size 5 --max-size 20
  2. 使用Fargate启动类型或Fargate容量提供者并启用自动扩展:
    aws ecs create-service --cluster my-cluster --service-name my-service --task-definition my-task --launch-type FARGATE --network-configuration ...
  3. 在任务定义中减少CPU预留以适应集群可用资源:
    {
      "family": "my-task",
      "containerDefinitions": [{
        "name": "my-container",
        "cpu": 256,
        "memory": 512
      }]
    }

无效尝试

常见但无效的做法:

  1. Increase task CPU reservation in task definition 95% 失败

    Increasing CPU reservation makes the problem worse, as it requires even more CPU from the cluster.

  2. Set service desired count to 0 and back to original 90% 失败

    Recycling the service does not create new capacity; the underlying resource shortage remains.

  3. Add more memory without adding CPU capacity 85% 失败

    Memory is separate from CPU; the error is explicitly about CPU, so memory adjustments don't help.