本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
缩小 SageMaker HyperPod 集群规模
您可以缩减在 Amazon SageMaker HyperPod 集群上运行的实例数量。出于各种原因,例如资源利用率降低或成本优化,您可能需要缩小集群。
下一页概述了缩小规模的两种主要方法:
- 
            
在实例组级别缩小规模:此方法使用
UpdateClusterAPI,您可以: - 
            
在实例级别缩小规模:此方法使用
BatchDeleteClusterNodesAPI,您可以使用它来指定要终止的各个节点。请参阅在实例级别缩小规模。 
注意
使用缩减实例级别时BatchDeleteCusterNodes,您一次最多只能终止 99 个实例。 UpdateCluster支持终止任意数量的实例。
重要注意事项
- 
                
缩小集群规模时,应确保剩余资源足以处理您的工作负载,并确保正确处理任何必要的数据迁移或重新平衡以避免中断。
 - 
                
在工作节点组上调用 API 之前,请务必将数据备份到 Amazon S3 或 for Lustre 文件系统。 FSx 这有助于防止实例根卷中可能丢失任何数据。有关备份的更多信息,请参见使用提供的备份脚本 SageMaker HyperPod。
 - 
                
要在现有集群上调用此 API,必须先运行 UpdateClusterSoftwareAPI 来修补集群。有关修补集群的更多信息,请参阅更新集群的 SageMaker HyperPod 平台软件。
 - 
                
按需实例的计量/计费将在缩小规模后自动停止。要停止对缩小规模的预留实例进行计量,您应该联系您的 Amazon 账户团队寻求支持。
 - 
                
您可以使用从缩减的预留实例中释放的容量来扩展另一个 SageMaker HyperPod 集群。
 
在实例组级别缩小规模
该UpdateCluster操作允许您对 SageMaker HyperPod 集群的配置进行更改,例如缩小实例组的实例数量或删除整个实例组。当您想要根据工作负载的变化调整分配给集群的资源、优化成本或更改实例组的实例类型时,这可能很有用。
缩小实例组规模
如果您的实例组处于空闲状态,并且可以安全地终止任何实例以缩小规模,请使用此方法。当您提交缩减UpdateCluster请求时,会 HyperPod 随机选择要终止的实例,然后缩减到该实例组的指定节点数。
注意
当您将实例组中的实例数量缩减到 0 时,该组中的所有实例都将被终止。但是,实例组本身仍将作为 SageMaker HyperPod 集群的一部分存在。您可以稍后使用相同的实例组配置向上扩展实例组。
或者,您可以选择永久移除实例组。有关更多信息,请参阅 删除实例组。
要缩小规模 UpdateCluster
- 
                    
按照中概述的步骤进行操作更新 SageMaker HyperPod 集群配置。当您到达指定InstanceCount字段的步骤 1.d 时,请输入一个小于当前实例数的数字以缩小集群。
 - 
                    
运行 update-cluster Amazon CLI 命令提交您的请求。
 
以下是 UpdateCluster JSON 对象的示例。考虑一下您的实例组当前有 2 个正在运行的实例的情况。如果将该InstanceCount字段设置为 1(如示例所示),则 HyperPod 随机选择其中一个实例并将其终止。
{ "ClusterName":"name-of-cluster-to-update", "InstanceGroups": [ { "InstanceGroupName":"training-instances", "InstanceType":"instance-type", "InstanceCount":1, "LifeCycleConfig": { "SourceS3Uri":"s3://amzn-s3-demo-bucket/training-script.py", "OnCreate":"s3://amzn-s3-demo-bucket/setup-script.sh"}, "ExecutionRole":"arn:aws:iam::123456789012:role/SageMakerRole", "ThreadsPerCore":number-of-threads, "OnStartDeepHealthChecks": [ "InstanceStress", "InstanceConnectivity" ] } ], "NodeRecovery":"Automatic"}
删除实例组
当不再需要实例组时,您可以使用该UpdateCluster操作将整个实例组从 SageMaker HyperPod 集群中移除。这不仅仅是简单的缩小规模,还允许您从集群的配置中完全消除特定的实例组。
注意
移除实例组时:
- 
                        
目标组中的所有实例都已终止。
 - 
                        
整个组配置已从集群中删除。
 - 
                        
在该实例组上运行的所有工作负载都将停止。
 
使用删除实例组 UpdateCluster
- 
                    
按照中概述的步骤进行操作时更新 SageMaker HyperPod 集群配置:
- 
                            
在
UpdateClusterJSON 中设置可选InstanceGroupsToDelete参数,然后传递要删除的实例组名称的逗号分隔列表。 - 
                            
指定
InstanceGroups列表时,请确保要删除的实例组的规格不再列在InstanceGroups列表中。 
 - 
                            
 - 
                    
运行 update-cluster Amazon CLI 命令提交您的请求。
 
重要
- 
                        
您的 SageMaker HyperPod 集群必须始终维护至少一个实例组。
 - 
                        
确保在删除所有关键数据之前都已备份。
 - 
                        
移除过程无法撤消。
 
以下是 UpdateCluster JSON 对象的示例。考虑一个集群当前有 3 个实例组、一个训练、一个原型训练和一个推理服务组的情况。你想删除原型训练组。
{ "ClusterName":"name-of-cluster-to-update", "InstanceGroups": [ { "InstanceGroupName":"training", "InstanceType":"instance-type", "InstanceCount":, "LifeCycleConfig": { "SourceS3Uri":"s3://amzn-s3-demo-bucket/training-script.py", "OnCreate":"s3://amzn-s3-demo-bucket/setup-script.sh"}, "ExecutionRole":"arn:aws:iam::123456789012:role/SageMakerRole", "ThreadsPerCore":number-of-threads, "OnStartDeepHealthChecks": [ "InstanceStress", "InstanceConnectivity" ] }, { "InstanceGroupName":"inference-serving", "InstanceType":"instance-type", "InstanceCount":2, [...] }, ], "InstanceGroupsToDelete": ["prototype-training"], "NodeRecovery":"Automatic"}
在实例级别缩小规模
该BatchDeleteClusterNodes操作允许您通过指定要终止的各个节点来缩小 SageMaker HyperPod集群。 BatchDeleteClusterNodes为目标节点移除和集群优化提供了更精细的控制。例如,您可以使用删除目标节点BatchDeleteClusterNodes以进行维护、滚动升级或在地理位置上重新平衡资源。
API 请求和响应
当您提交BatchDeleteClusterNodes请求时, SageMaker HyperPod 会按节点的实例删除节点 IDs。API 接受包含集群名称和 IDs 要删除的节点列表的请求。
答复包括两个部分:
- 
            
Failed: 错误类型列表BatchDeleteClusterNodesError-每个实例 ID 一个。 - 
            
Successful:实例列表 IDs 已成功终止。 
验证和错误处理
API 会执行各种验证,例如:
- 
            
验证节点 ID 格式(前缀
i-和 Amazon EC2 实例 ID 结构)。 - 
            
检查节点列表长度,单个
BatchDeleteClusterNodes请求中限制为 99 个或更少 IDs 的节点。 - 
            
确保存在带有输入 SageMaker HyperPod 集群名称的有效集群,并且没有正在进行任何集群级别的操作(更新、系统更新、修补或删除)。
 - 
            
处理未找到实例、实例状态无效或正在使用中的情况。
 
API 响应码
- 
            
API 会返回成功请求(例如,所有输入节点验证成功)或部分成功请求(例如,某些输入节点验证失败)的
200状态码。 - 
            
如果所有这些验证都失败(例如,所有输入节点都未通过验证),API 将返回包含相应错误消息和错误代码的
400Bad Request 响应。 
示例
以下是使用实例级别缩小集群规模的示例 Amazon CLI:
aws sagemaker batch-delete-cluster-nodes --cluster-name"cluster-name"--node-ids'["i-111112222233333", "i-111112222233333"]'