平台WEB页面上不会显示排队原因,建议登录至集群,用 squeue
查看排队原因。
具体有如下几种原因:
资源需求不匹配
虽然有空闲机器,但它们的配置可能不符合当前任务所需的特定资源要求。例如,任务需要具有特定数量的核心、特定的内存大小或特定的 GPU 类型,而空闲机器无法满足这些精确需求。
比如说,一个任务要求 32核CPU的机器,但空闲机器只有 16核CPU内存。
任务优先级设置
其他正在运行或排队中的任务可能被设置了更高的优先级,导致当前任务即使在有空闲机器时也需要等待。
例如,某些关键业务的任务被赋予了高优先级,优先获得资源分配。
系统策略和限制
为了更有效利用集群,管理员设置了一些整体的策略或限制,例如同一用户同时运行的任务数量限制,或者特定时间段内对某些类型任务的限制。
比如,规定每个用户同一时间最多只能运行 5 个任务,当用户已达到上限时,新任务会排队。
资源预留
部分机器资源可能被预先保留用于特定目的或未来的任务,因此无法分配给当前排队的任务。
许可证限制
某些软件或应用程序可能需要特定的许可证才能运行,而可用的许可证数量有限,导致任务排队。
假设使用特定的商业软件,只有一定数量的许可证可用,即使有机器空闲,没有许可证的任务也会排队。
调度算法的复杂性
Slurm 等调度系统的算法可能会考虑多种因素来决定任务的分配顺序,不仅仅是机器是否空闲。
比如,可能会考虑任务的预计运行时间、历史资源使用情况等因素。