本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
解决由于 MaxJobCount 限制导致的作业提交失败的问题
问题:Job 提交失败,并显示以下错误消息:
sbatch: error: Slurm temporarily unable to accept job, sleeping and retrying
即使正在运行和待处理的任务数量似乎远低于集群的任务限制,也会发生此错误。
原因:该MaxJobCount限制包括 Slurm 跟踪的所有作业,而不仅仅是正在运行或待处理的作业。已完成的任务会在 Slurm 的内存中保留一段时间(默认为 5 分钟),然后才会被清除。在高作业吞吐量期间,活动任务加上最近完成的任务的总数可能会超过限制。
您可以通过在群集节点上运行以下命令来验证任务总数:
scontrol show jobs | grep -c JobId
这显示了 Slurm 正在跟踪的任务总数,包括等待清除的已完成任务。
解决方案:考虑以下方法之一:
-
创建更大的集群-如果您的工作负载一直需要更多的并发作业,请创建一个规模更大的新集群。有关集群大小及其限制的更多信息,请参阅AWS PCS 中的集群大小。
-
降低作业提交率 — 调整作业提交脚本,以较慢的速度提交作业,从而使已完成的作业时间从 Slurm 的跟踪中清除。