本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用竞价型实例
如果集群配置已设置 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 yes
或qalter -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 用户指南.