本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用竞价型实例
如果集群配置已设置 cluster_type = spot,则 AWS ParallelCluster 使用 Spot 实例。Spot 实例比按需实例更具成本效益,但它们可能会被中断。中断的影响因使用的特定调度程序而异。利用竞价型实例中断通知可能会有所帮助,该通知在 Amazon EC2 必须停止或终止您的竞价型实例之前会发出两分钟警告。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的 Spot 实例中断。以下各部分介绍了 Spot 实例可能被中断的三种场景。
注意
使用 Spot 实例要求您的账户中存在该AWSServiceRoleForEC2Spot
服务相关角色。要使用在您的账户中创建此角色AWS CLI,请运行以下命令:
aws iam create-service-linked-role --aws-service-name spot.amazonaws.com
有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的 Spot 实例请求的服务相关角色。
场景 1:没有运行作业的 Spot 实例被中断
发生此类中断时,如果计划程序队列具有需要其他实例的待处理作业,或者活动实例的数量低于 initial_queue_size 设置,则 AWS ParallelCluster 尝试替换该实例。如果AWS ParallelCluster无法预置新实例,则会定期重复请求新实例。
场景 2:运行单节点作业的 Spot 实例被中断
此中断的行为取决于正在使用的计划程序。
- Slurm
-
作业失败,状态代码为
NODE_FAIL
,作业被重新排队(除非--no-requeue
在提交作业时指定)。如果该节点是静态节点,则将其替换。如果该节点是动态节点,则该节点将被终止并重置。有关包括--no-requeue
参数sbatch
在内的更多信息,请参见 sbatchSlurm 文档中的。 注意
此行为在 2.9.0AWS ParallelCluster 版本中发生了变化。较早的版本使用状态代码终止了作业,
NODE_FAIL
并且该节点已从调度器队列中删除。 - SGE
-
注意
这仅适用于AWS ParallelCluster 2.11.4 及之前的版本。从 2.11.5 版本开始,AWS ParallelCluster不支持使用SGE或Torque调度程序。
作业已经终止。如果作业已启用重新运行标志(使用
qsub -r yes
或qalter -r yes
)或队列将rerun
配置设置为TRUE
,则重新安排作业。计算实例将从计划程序队列中删除。此行为来自这些 SGE 配置参数:-
reschedule_unknown 00:00:30
-
ENABLE_FORCED_QDEL_IF_UNKNOWN
-
ENABLE_RESCHEDULE_KILL=1
-
- Torque
-
注意
这仅适用于AWS ParallelCluster 2.11.4 及之前的版本。从 2.11.5 版本开始,AWS ParallelCluster不支持使用SGE或Torque调度程序。
作业将从系统中删除,节点将从计划程序中删除。该作业未重新运行。如果在实例中断时有多个任务正在该实例上运行,则 Torque 可能会在节点移除期间超时。sqswatcher日志文件中可能会显示错误。这不会影响扩展逻辑,后续重试会进行适当的清理。
场景 3:运行多节点作业的 Spot 实例被中断
此中断的行为取决于正在使用的计划程序。
- Slurm
-
作业失败,状态代码为
NODE_FAIL
,作业--no-requeue
被重新排队(除非在提交作业时指定)。如果该节点是静态节点,则将其替换。如果该节点是动态节点,则该节点将被终止并重置。正在运行已终止任务的其他节点可能会被分配给其他待处理作业,或者在配置scaledown_idletime的时间过后缩小规模。注意
此行为在 2.9.0AWS ParallelCluster 版本中发生了变化。较早的版本使用状态代码终止了作业,
NODE_FAIL
并且该节点已从调度器队列中删除。在配置scaledown_idletime的时间过后,正在运行已终止任务的其他节点可能会缩小规模。 - SGE
-
注意
这仅适用于AWS ParallelCluster 2.11.4 及之前的版本。从 2.11.5 版本开始,AWS ParallelCluster不支持使用SGE或Torque调度程序。
该任务不会终止,将继续在其余节点上运行。计算节点将从计划程序队列中移除,但将作为孤立和不可用的节点显示在主机列表中。
发生这种情况时,用户必须删除作业 (
qdel
)。该节点仍显示在主机列表 (<jobid>
qhost
) 中,尽管这并不影响AWS ParallelCluster。要从列表中删除主机,请在替换实例后运行以下命令。sudo -- bash -c 'source /etc/profile.d/sge.sh; qconf -dattr hostgroup hostlist
<hostname>
@allhosts; qconf -de<hostname>
' - Torque
-
注意
这仅适用于AWS ParallelCluster 2.11.4 及之前的版本。从 2.11.5 版本开始,AWS ParallelCluster不支持使用SGE或Torque调度程序。
作业将从系统中删除,节点将从计划程序中删除。该作业未重新运行。如果在实例中断时有多个任务正在该实例上运行,则 Torque 可能会在节点移除期间超时。sqswatcher日志文件中可能会显示错误。这不会影响扩展逻辑,后续重试会进行适当的清理。
有关竞价型实例的更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的 Spot 实例。