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

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

使用竞价型实例

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

注意

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

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

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

情形 1:没有运行作业的竞价型实例被中断

发生这种中断时,如果调度器队列有需要额外实例的待处理任务,或者活动实例的数量少于initial_queue_size设置,则 Amazon ParallelCluster 尝试替换实例。如果 Amazon ParallelCluster 无法预置新实例,则会定期重复对新实例的请求。

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

此中断的行为取决于正在使用的调度器。

Slurm

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

注意

在 2.9.0 Amazon ParallelCluster 版本中,此行为发生了变化。早期版本在终止作业时会显示状态代码 NODE_FAIL,并从调度器队列中删除该节点。

SGE
注意

这仅适用于 Amazon ParallelCluster 2.11.4 及以下的版本。从版本 2.11.5 开始, Amazon 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.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 用户指南(适用于 Linux 实例)中的竞价型实例