使用竞价型实例 - AWS ParallelCluster

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用竞价型实例

如果您已在集群配置文件中将 SlurmQueues/CapacityTypeAwsBatchQueues/CapacityType 设置为 SPOT,则 AWS ParallelCluster 将使用竞价型实例。竞价型实例比按需型实例更具成本效益,但它们可能会中断。利用竞价型实例中断通知 可能会有帮助,该通知可在 Amazon EC2 必须停止或终止您的竞价型实例时,提前两分钟发出警告。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例)中的 竞价型实例中断。要了解 AwsBatchQueues 如何使用竞价型实例,请参阅 AWS Batch User Guide 中的 Compute Resources

AWS ParallelCluster 配置的调度器将作业分配给队列中使用竞价型实例的计算资源,分配方式与将作业分配给队列中使用按需型实例的计算资源相同。

使用竞价型实例时,您的账户中必须存在 AWSServiceRoleForEC2Spot 服务相关角色。要使用 AWS CLI 在账户中创建此角色,请运行以下命令:

$ aws iam create-service-linked-role --aws-service-name spot.amazonaws.com

有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例)中的竞价型实例请求的服务相关角色

以下各部分介绍了使用 SlurmQueues 时竞价型实例可能被中断的三种情形。

情形 1:没有运行作业的竞价型实例被中断

发生此类中断时,如果调度器队列具有需要其他实例的待处理作业,或者活动实例的数量低于 SlurmQueues/ComputeResources/MinCount,则 AWS ParallelCluster 尝试替换该实例。如果 AWS ParallelCluster 无法预置新实例,则会定期重复对新实例的请求。

情形 2:运行单节点作业的竞价型实例被中断

作业失败,状态代码为 NODE_FAIL,并且该作业重新排入队列(除非在提交作业时指定了 --no-requeue)。如果节点是静态节点,则会将其替换。如果节点是动态节点,则会终止并重置该节点。有关 sbatch(包括 --no-requeue 参数)的更多信息,请参阅 Slurm 文档 中的 sbatch

情形 3:运行多节点作业的竞价型实例被中断

作业失败,状态代码为 NODE_FAIL,并且该作业重新排入队列(除非在提交作业时指定了 --no-requeue)。如果节点是静态节点,则会将其替换。如果节点是动态节点,则会终止并重置该节点。运行已终止作业的其他节点可能会被分配给其他待处理作业,或在经过配置的 SlurmSettings/ScaledownIdletime 时间后进行缩减。

有关竞价型实例的更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例)中的竞价型实例