Amazon ECS 托管实例的 GPU 自动修复
Amazon ECS 监控使用 GPU 硬件的 Amazon ECS 托管实例上的 NVIDIA GPU 运行状况。当 Amazon ECS 检测到 GPU 硬件故障时,它可以自动替换受损的实例。Amazon ECS 托管实例默认启用 GPU 自动修复。
工作原理
Amazon ECS 使用 NVIDIA Data Center GPU Manager(DCGM)来监控具有 GPU 硬件的托管实例上的 NVIDIA GPU 运行状况。当 DCGM 报告严重 GPU 故障时,Amazon ECS 会将该实例标记为受损。
启用 GPU 自动修复后,Amazon ECS 会使用先启动后停止工作流来替换受损的实例:
-
Amazon ECS 将受损的实例设置为 DRAINING。实例上不会放置新任务。
-
Amazon ECS 会预置替换实例。
-
Amazon ECS 允许现有任务正常停止。Amazon ECS 会遵守实例上任务的任务停止超时。
-
耗尽期结束后,Amazon ECS 会终止受损的实例。
Amazon ECS 速率限制了修复操作,以防止级联替换。一次只能耗尽不超过 20% 的属于容量提供程序的实例。如果容量提供程序中的实例少于 9 个,则一次最多耗尽一个实例。
监控 GPU 运行状况
您可以使用 DescribeContainerInstances API 来检查 GPU 运行状况。有关更多信息,请参阅 监控 Amazon ECS 容器实例运行状况。您还可以通过 Amazon ECS 容器实例运行状况更改事件 监控 GPU 运行状况变化。
监控的 XID 错误代码
Amazon ECS 监控以下 NVIDIA Xid 错误代码。如果 Amazon ECS 检测到任何此类错误,它会将实例标记为受损并替换该实例。
| Xid | 说明 |
|---|---|
46 |
GPU 停止处理 |
48 |
双比特 ECC 错误 |
54 |
未连接辅助电源连接器 |
62 |
内部微控制器停止 |
64 |
GPU 内存重新映射失败 |
74 |
NVLink 错误 |
79 |
GPU 已从总线上掉线 |
95 |
未受控内存错误 |
109 |
上下文切换超时 |
110 |
GPU 从总线上消失 |
136 |
已超过 GPU 内存页面停用限制 |
140 |
无法恢复的 ECC 错误 |
142 |
由于不可纠正的错误,GPU 内存页面已停用 |
143 |
由于可纠正的错误阈值,GPU 内存页面已停用 |
151 |
GPU 到 CPU 互连错误 |
155 |
GPU NVLink flit CRC 错误 |
156 |
GPU NVLink 通道错误 |
158 |
GPU InfoROM 已损坏 |
有关 XID 错误的更多信息,请参阅《NVIDIA GPU 部署和管理文档》中的 Xid Errors
禁用自动修复
Amazon ECS 托管实例默认启用 GPU 自动修复。要禁用 GPU 自动修复,请在创建或更新容量提供程序时,在 autoRepairConfiguration 中将 actionsStatus 设置为 DISABLED。在创建或更新容量提供程序时,您也可以在 Amazon ECS 控制台中禁用 GPU 自动修复。
禁用 GPU 自动修复后,Amazon ECS 会继续监控 GPU 运行状况,但它不会自动替换受损的实例。
注意
禁用 GPU 自动修复也会禁用 Amazon ECS 托管进程守护程序自动修复。有关更多信息,请参阅 Amazon ECS 托管进程守护程序自动修复。
禁用 GPU 自动修复
aws ecs update-capacity-provider \ --namemy-gpu-capacity-provider\ --managed-instances-provider '{ "infrastructureRoleArn": "arn:aws:iam::111122223333:role/ecsInfrastructureRole", "instanceLaunchTemplate": { "ec2InstanceProfileArn": "arn:aws:iam::111122223333:instance-profile/ecsInstanceRole", "networkConfiguration": { "subnets": ["subnet-0123456789abcdef0"], "securityGroups": ["sg-0123456789abcdef0"] } }, "autoRepairConfiguration": { "actionsStatus": "DISABLED" } }'
启用 GPU 自动修复
aws ecs update-capacity-provider \ --namemy-gpu-capacity-provider\ --managed-instances-provider '{ "infrastructureRoleArn": "arn:aws:iam::111122223333:role/ecsInfrastructureRole", "instanceLaunchTemplate": { "ec2InstanceProfileArn": "arn:aws:iam::111122223333:instance-profile/ecsInstanceRole", "networkConfiguration": { "subnets": ["subnet-0123456789abcdef0"], "securityGroups": ["sg-0123456789abcdef0"] } }, "autoRepairConfiguration": { "actionsStatus": "ENABLED" } }'
验证配置
aws ecs describe-capacity-providers \ --capacity-providersmy-gpu-capacity-provider