Slurm 集群管理系统

Slurm概览/基本概念

Slurm( Simple Linux Utility for Resource Management,)是适用于大型和小型Linux集群的 开源、容错且高度可扩展的集群管理和作业调度系统。

Slurm 利用分区(partition)对 CPU、内存、网络等资源进行分类,以便将不同需求的任务运行到不同计算节点上。用户需利用 slurm 命令将该任务所需要的 CPU 核资源等提交到特定的分区中,等任务申请的资源得到满足后,任务才开始运行。任务运行受分区、账户、服务质量 (QOS)等限制。

Slurm官方网站:Slurm Workload Manager - Documentation在新窗口打开

更多详细命令请查看在此网页查看 Slurm Workload Manager - Man Pages在新窗口打开

Slurm查看集群状态及作业信息

常用命令如下:

命令功能介绍常用命令例子
sinfo显示分区和节点的状态sinfo
squeue显示作业状态squeue
srun用于交互式作业提交srun -n 2 -p p1-c1-2 hostname
sbatch用于批处理作业提交sbatch -n 2 job.sh
salloc用于分配模式作业提交salloc -p p1-c1-2
scancel用于取消已提交的作业scancel JOBID
scontrol用于查看和修改slurm配置和状态,包括查询节点信息或正在运行的作业信息scontrol show job JOBID

查看集群状态sinfo

sinfo 查看当前账号可使用的分区信息,如下图所示:

  # sinfo
  PARTITION AVAIL  TIMELIMIT  NODES  STATE NODELIST
  compute*     up   infinite      1  down* ip-10-10-2-109
  compute*     up   infinite      2    mix ip-10-10-2-[70,80]
1
2
3
4

其中PARTITION表示分区,NODES表示节点数,NODELIST为节点列表,STATE表示节点运行状态。其中,idle表示节点处于空闲状态,allocated表示节点已经分配了一个或多个作业。

allocidlemixdowndrain
节点被分配给了job节点没有被分配给job,可用部分占用节点不可用节点不接受新job

sinfo 的常用命令选项:

  sinfo               #查看所有分区状态
  sinfo -N            #按每个节点一行的格式查看节点状态
  sinfo -p partition-name #显示指定分区的信息
  sinfo -n node-name  #查看指定节点状态
  sinfo --help        #查看sinfo的说明
1
2
3
4
5

查看作业信息squeue

使用squeue 可以查看当前的任务运行状态,如果 squeue 没有任务信息,说明任务已退出并且退出的时间已经超出清理时间。

  # squeue
  JOBID PARTITION     NAME     USER ST       TIME            NODES NODELIST(REASON)
  8     compute       sleep    root  R       8-02:07:58      2     ip-10-10-2-[70,80]
1
2
3

其中JOBID 表示任务ID,Name表示任务名称,USER为用户,TIME为已运行时间,NODES表示占用节点数,NODELIST为任务运行的节点列表。

squeue 的 常用命令选项:

  squeue                #查看运行中的作业列表
  squeue -l             #查看列表细节信息
  squeue -j job-id      #查看运行中作业信息
  squeue -u username    #查看user所有运行中的作业
  squeue -p p1-c1-4     #查看提交到 p1-c1-4 队列的任务信息
  squeue -w p1-c1-4-1   #查看使用到 p1-c1-4 节点的任务信息
1
2
3
4
5
6

其他选项可通过squeue --help 命令查看