【问题标题】:Why are repetitive calls to squeue in Slurm frown upon?为什么在 Slurm 中重复调用 squeue 不受欢迎?
【发布时间】:2020-06-22 11:24:32
【问题描述】:

为什么不建议在循环中运行 squeue 以避免 Slurm 过载,但 LSF 的 bjobs 工具或 SGE 的 qstat 没有提到此类限制?

squeueman page 声明:

性能

执行 squeue 会向 slurmctld 发送远程过程调用。如果来自 squeue 或其他向 slurmctld 守护进程发送远程过程调用的 Slurm 客户端命令的调用足够多,则可能会导致 slurmctld 守护进程的性能下降,从而可能导致拒绝服务。

不要运行 squeue 或其他 Slurm 客户端命令,这些命令会从 shell 脚本或其他程序中的循环向 slurmctld 发送远程过程调用。确保程序将对 squeue 的调用限制在您尝试收集的信息所需的最低限度。

据我了解,不赞成使用例如watch squeue。这种警告通常出现在特定于站点的文档中,例如here:

虽然 squeue 是查询作业和队列状态的便捷命令,但请注意不要发出过多命令,例如每隔五秒左右使用脚本调用一次查询作业的状态作业已提交。

相比之下,我在其他引擎上找不到类似工具的此类警告,例如qstatbjobs。 我看到人们以重复的方式毫无区别地使用所有这些工具,例如here 用于 squeue,here 用于 bjob​​s。

上面来自 Slurm 文档的引用提到了 RPC,它是一种不同于其他引擎的方式吗? Slurm 和其他网格引擎之间是否存在架构差异,导致查询所有作业的状态成本更高?

【问题讨论】:

  • 每个服务都有其可扩展性限制。 LSF 有一个专门的查询守护进程,这很有帮助。但即便如此,也有限制。例如,如果集群中有数百万个作业,并且许多作业通过调用bjobs -uall -a | grep blah 之类的方法检查它们的依赖关系,那么就会出现服务降级。
  • 尽管文档这样说,squeue 本身有一个 -i--iterate 选项,它将每 N 秒重新运行一次,直到每秒。自上次查询以来,它似乎可以请求更新,这可能会有所帮助,但据我所知,它仍然每次都发送一个新的 RPC 请求。我使用它时没有警告。

标签: cluster-computing slurm sungridengine lsf


【解决方案1】:

实际上,对运行squeue 太快的担忧通常更多地来自集群管理员,而不是开发人员。在这种特殊情况下,查看文档特定部分的commit message,我们了解到它实际上是由 SchedMD 的客户请求的,因此很可能是运行生产集群的实体。

该建议的重要性随着集群规模和工作流动率的增加而增加。在一个平均每天运行 5-6 个作业的 10 节点集群上,您会发现来自十几个用户的 slurm 控制器有许多 squeue 请求。但是在 4000 个节点、10000 个用户、10k 个作业/天的情况下,您可能会以明显的方式干扰 Slurm 性能。

我看到至少有一个网站使用基于缓存信息的限速版本覆盖了qstat 命令。

从技术角度来看,RPC 是大多数替代方案使用的。

【讨论】:

    【解决方案2】:

    你是对的,squeue 不应该这样使用。加拿大的 HPC 资源也指出:

    不要从脚本或程序中高频运行 sq 或 squeue, 例如,每隔几秒钟。响应 squeue 会增加 Slurm 的负载,并且 可能会干扰其性能或正确操作。见电子邮件 下面的通知可以更好地了解您的工作何时开始 或结束。

    来源:https://docs.computecanada.ca/wiki/Running_jobs#Use_squeue_or_sq_to_list_jobs

    如您所见,加拿大的 HPC 资源建议在使用 sbatch 时使用电子邮件通知:

    #SBATCH --mail-user=you@some.email.address
    #SBATCH --mail-type=BEGIN
    #SBATCH --mail-type=END
    #SBATCH --mail-type=FAIL
    #SBATCH --mail-type=REQUEUE
    #SBATCH --mail-type=ALL
    

    来源:https://docs.computecanada.ca/wiki/Running_jobs#Email_notification

    我是 SGE 上的 qstat 重度用户,现在更喜欢电子邮件通知。我不需要主动监控工作状态并记录工作何时通过各种里程碑。

    【讨论】:

      猜你喜欢
      • 2016-01-20
      • 2021-04-04
      • 2010-10-20
      • 2011-06-15
      • 2015-05-23
      • 2019-06-11
      • 2011-07-05
      • 1970-01-01
      • 2012-11-25
      相关资源
      最近更新 更多