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

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

使用竞价型实例

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

注意

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

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

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

方案 1: 没有运行作业的 Spot 实例被中断

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

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

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

Slurm

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

注意

这种行为发生了变化Amazon ParallelCluster版本 2.9.0。早期版本使用状态代码终止了作业NODE_FAIL节点已从计划程序队列中删除。

SGE
注意

这仅适用于Amazon ParallelCluster版本 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.5Amazon ParallelCluster不支持使用SGE要么Torque计划程序。

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

方案三:运行多节点作业的 Spot 实例被中断

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

Slurm

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

注意

这种行为发生了变化Amazon ParallelCluster版本 2.9.0。早期版本使用状态代码终止了作业NODE_FAIL节点已从计划程序队列中删除。经过配置后,可以缩减运行终止作业的其他节点。scaledown_idletime时间已经过去了。

SGE
注意

这仅适用于Amazon ParallelCluster版本 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.5Amazon ParallelCluster不支持使用SGE要么Torque计划程序。

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

有关 Spot 实例的更多信息,请参阅Spot 实例中的适用于 Linux 实例的 Amazon EC2 用户指南.