使用竞价型实例 - Amazon ParallelCluster
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

使用竞价型实例

如果集群配置已设置 cluster_type = spot,则 Amazon ParallelCluster 使用 Spot 实例。竞价型实例比按需实例更具成本效益,但它们可能会中断。中断的效果因使用的特定调度程序而异。利用可能会有所帮助竞价型实例中断通知,可在 Amazon EC2 必须停止或终止您的竞价型实例时,提前两分钟发出警告。有关更多信息,请参阅竞价型实例中断适用于用户的 Amazon EC2 用户指南. 以下各部分介绍了 Spot 实例可能被中断的三种场景。

注意

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

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

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

方案 1: 没有正在运行的作业的竞价型实例被中断

发生此类中断时,如果计划程序队列具有需要其他实例的待处理作业,或者活动实例的数量低于 initial_queue_size 设置,则 Amazon ParallelCluster 尝试替换该实例。如果Amazon ParallelCluster无法预置新实例,则会定期重复请求新实例。

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

此中断的行为取决于正在使用的计划程序。

Slurm

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

注意

这种行为改变了Amazon ParallelCluster版本 2.9.0 早期版本终止了任务,状态代码为NODE_FAIL并且该节点已从调度器队列中删除。

SGE
注意

此项仅适用于Amazon ParallelCluster版本 2.11.4(含版本 2.11.4 从版本 2.11.5Amazon ParallelCluster不支持使用SGE要么Torque调度器。

作业已经终止。如果作业已启用重新运行标志(使用 qsub -r yesqalter -r yes)或队列将 rerun 配置设置为 TRUE,则重新安排作业。计算实例将从计划程序队列中删除。此行为来自这些 SGE 配置参数:

  • reschedule_unknown 00:00:30

  • ENABLE_FORCED_QDEL_IF_UNKNOWN

  • ENABLE_RESCHEDULE_KILL=1

Torque
注意

此项仅适用于Amazon ParallelCluster版本 2.11.4(含版本 2.11.4 从版本 2.11.5Amazon ParallelCluster不支持使用SGE要么Torque调度器。

作业将从系统中删除,节点将从计划程序中删除。该作业未重新运行。如果在实例中断时有多个任务在运行中,Torque 可能会在节点移除期间超时。中可能会显示错误sqswatcher日志文件。这不会影响缩放逻辑,后续重试会进行适当的清理。

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

此中断的行为取决于正在使用的计划程序。

Slurm

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

注意

这种行为改变了Amazon ParallelCluster版本 2.9.0 早期版本终止了任务,状态代码为NODE_FAIL并且该节点已从调度器队列中删除。正在运行已终止任务的其他节点在配置后可能会缩小规模scaledown_idletime时间已经过去了。

SGE
注意

此项仅适用于Amazon ParallelCluster版本 2.11.4(含版本 2.11.4 从版本 2.11.5Amazon ParallelCluster不支持使用SGE要么Torque调度器。

该作业未终止,将继续在其余节点上运行。计算节点将从计划程序队列中移除,但将作为孤立和不可用的节点显示在主机列表中。

发生这种情况时,用户必须删除作业 (qdel <jobid>)。该节点仍显示在主机列表中 (qhost),尽管这不会影响Amazon ParallelCluster. 要从列表中删除主机,请在替换实例后运行以下命令。

sudo -- bash -c 'source /etc/profile.d/sge.sh; qconf -dattr hostgroup hostlist <hostname> @allhosts; qconf -de <hostname>'
Torque
注意

此项仅适用于Amazon ParallelCluster版本 2.11.4(含版本 2.11.4 从版本 2.11.5Amazon ParallelCluster不支持使用SGE要么Torque调度器。

作业将从系统中删除,节点将从计划程序中删除。该作业未重新运行。如果在实例中断时有多个任务在运行中,Torque 可能会在节点移除期间超时。中可能会显示错误sqswatcher日志文件。这不会影响缩放逻辑,后续重试会进行适当的清理。

有关竞价型实例的更多信息,请参阅Spot Instances适用于用户的 Amazon EC2 用户指南.