【发布时间】:2019-03-30 13:55:21
【问题描述】:
我有一个在 Azure 批处理下运行的 TVM/池,它突然进入了抢占状态。现在的问题是,它现在没有接受任何请求。
我还设置了 Scale 公式,其中每当我有超过 0 个作业等待在 Azure 批处理中执行时,它都会给我一个 VM。但显然这也不起作用。它在 TVM 进入抢占状态之前工作。
如何处理这些情况?
【问题讨论】:
标签: azure azure-batch
我有一个在 Azure 批处理下运行的 TVM/池,它突然进入了抢占状态。现在的问题是,它现在没有接受任何请求。
我还设置了 Scale 公式,其中每当我有超过 0 个作业等待在 Azure 批处理中执行时,它都会给我一个 VM。但显然这也不起作用。它在 TVM 进入抢占状态之前工作。
如何处理这些情况?
【问题讨论】:
标签: azure azure-batch
AFAIK,我认为是低优先级节点的节点可以进入“preempted”状态取决于可用容量。因此,低优先级 VM 最适合某些类型的工作负载。将低优先级 VM 用于批处理和异步处理工作负载,其中作业完成时间灵活且工作分布在多个 VM 上。这就是此处定义的行为:https://docs.microsoft.com/en-us/azure/batch/batch-low-pri-vms
我认为问题的后半部分很可能也与您的虚拟机被抢占这一事实有关。
鉴于低优先级 VM 的特性,哪些工作负载可以使用它们,哪些不能使用它们?一般来说,批处理工作负载非常适合,因为作业被分解为许多并行任务,或者有许多作业被横向扩展并分布在许多虚拟机中。
为了最大限度地利用 Azure 中的剩余容量,可以横向扩展合适的作业。
有时虚拟机可能不可用或被抢占,这会导致作业容量减少,并可能导致任务中断和重新运行。因此,作业在运行时必须灵活。
如果被打断,任务较长的工作可能会受到更大的影响。如果长时间运行的任务实施检查点以在执行时保存进度,那么中断的影响就会降低。执行时间较短的任务往往最适合低优先级的 VM,因为中断的影响要小得多。
使用多个虚拟机的长时间运行的 MPI 作业不太适合使用低优先级的虚拟机,因为一个被抢占的虚拟机可能会导致整个作业不得不重新运行。
希望对你有帮助。
【讨论】: