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
2
3
4
其中PARTITION表示分区,NODES表示节点数,NODELIST为节点列表,STATE表示节点运行状态。其中,idle表示节点处于空闲状态,allocated表示节点已经分配了一个或多个作业。
alloc | idle | mix | down | drain |
---|---|---|---|---|
节点被分配给了job | 节点没有被分配给job,可用 | 部分占用 | 节点不可用 | 节点不接受新job |
sinfo 的常用命令选项:
sinfo #查看所有分区状态
sinfo -N #按每个节点一行的格式查看节点状态
sinfo -p partition-name #显示指定分区的信息
sinfo -n node-name #查看指定节点状态
sinfo --help #查看sinfo的说明
1
2
3
4
5
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
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
2
3
4
5
6
其他选项可通过squeue --help 命令查看