本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用竞价型实例
Amazon ParallelCluster 如果集群配置设置为 cluster_type = spot,则使用竞价型实例。竞价型实例比按需型实例更具成本效益,但它们可能会中断。中断造成的影响因使用的特定调度器而异。利用竞价型实例中断通知可能会有所帮助,这些通知会在亚马逊EC2必须停止或终止您的竞价型实例之前提供两分钟的警告。有关更多信息,请参阅 Amazon EC2 用户指南中的竞价型实例中断。以下各部分介绍了竞价型实例可能被中断的三种情形。
注意
使用竞价型实例要求您的账户中存在 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
参数),请参见 sbatch在 Slurm 文档中。 注意
此行为在 2.9.0 Amazon ParallelCluster 版本中发生了变化。早期版本在终止作业时会显示状态代码
NODE_FAIL
,并从调度器队列中删除该节点。 - SGE
-
注意
这仅适用于 Amazon ParallelCluster 2.11.4 及以下的版本。从 2.11.5 版开始, Amazon 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.5 版开始, Amazon ParallelCluster 不支持使用 SGE 或者 Torque 调度器。
作业将从系统中删除,节点将从调度器中删除。作业不重新运行。如果实例中断时多个作业正在运行,则 Torque 在删除节点时可能会超时。sqswatcher 日志文件中可能显示错误。这不会影响缩放逻辑,并且后续重试将执行适当的清理。
情形 3:运行多节点作业的竞价型实例被中断
此中断的行为取决于正在使用的调度器。
- Slurm
-
作业失败,状态代码为
NODE_FAIL
,并且该作业重新排入队列(除非在提交作业时指定了--no-requeue
)。如果节点是静态节点,则会将其替换。如果节点是动态节点,则会终止并重置该节点。运行已终止作业的其他节点可能会被分配给其他待处理作业,或在经过配置的 scaledown_idletime 时间后进行缩减。注意
此行为在 2.9.0 Amazon ParallelCluster 版本中发生了变化。早期版本在终止作业时会显示状态代码
NODE_FAIL
,并从调度器队列中删除该节点。运行已终止作业的其他节点在经过配置的 scaledown_idletime 时间后可能会进行缩减。 - SGE
-
注意
这仅适用于 Amazon ParallelCluster 2.11.4 及以下的版本。从 2.11.5 版开始, Amazon 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.5 版开始, Amazon ParallelCluster 不支持使用 SGE 或者 Torque 调度器。
作业将从系统中删除,节点将从调度器中删除。作业不重新运行。如果实例中断时多个作业正在运行,则 Torque 在删除节点时可能会超时。sqswatcher 日志文件中可能显示错误。这不会影响缩放逻辑,并且后续重试将执行适当的清理。
有关竞价型实例的更多信息,请参阅 Amazon EC2 用户指南中的竞价型实例。