View a markdown version of this page

Amazon ECS 托管实例的 GPU 自动修复 - Amazon Elastic Container Service

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 会使用先启动后停止工作流来替换受损的实例:

  1. Amazon ECS 将受损的实例设置为 DRAINING。实例上不会放置新任务。

  2. Amazon ECS 会预置替换实例。

  3. Amazon ECS 允许现有任务正常停止。Amazon ECS 会遵守实例上任务的任务停止超时。

  4. 耗尽期结束后,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。有关单个 XID 消息的更多信息,请参阅《NVIDIA GPU 部署和管理文档》中的 Understanding Xid Messages

禁用自动修复

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 \ --name my-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 \ --name my-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-providers my-gpu-capacity-provider