【Slurm常用命令】

本文介绍了Slurm集群管理系统中用于查询作业状态、监控资源使用的常用命令,包括查询指定时间段作业详情、当前排队和运行作业数量、异常及完成作业统计,以及查看节点状态和队列信息。这些命令对于有效管理和优化Slurm集群资源至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Slurm常用命令

查询指定时间段作业详情

sacct -n -a -p --starttime 2021-10-07T00:00:00 --endtime 2021-10-07T10:00:00 --format=JobId,state,user,account,partition,jobname,nodelist,nnodes,submit,start,end,suspended,ncpus,MaxRss,elapsed,allocgres

当前排队作业数量

sacct --allocations --format=Jobid,Jobname,partition,AllocCPUS,State,ExitCode,ReqGRES|grep PENDING

当前运行数量

sacct --allocations --format=Jobid,Jobname,partition,AllocCPUS,State,ExitCode,ReqGRES|grep RUNNING

近几分钟内异常退出作业数量

sacct -S2020-03-09-16:00:00 -E2020-03-10-16:00:00 --allocations --format=Jobid,Jobname,partition,AllocCPUS,State,ExitCode,ReqGRES|grep FAILED

近几分钟内正常完成作业数量

sacct -S2020-03-09-16:00:00 -E2020-03-10-16:00:00 --allocations --format=Jobid,Jobname,partition,AllocCPUS,State,ExitCode,ReqGRES|grep COMPLETED

当前可用节点数量

sinfo --states=idle

当前异常节点数量

sinfo --states=down

当前作业运行节点数量

sinfo --states=alloc

查看队列状态

sinfo -O partitionname,nodes,time,cpusstate:.30

输出

在这里插入图片描述

字段备注
PARTITION队列
NODES队列节点数
TIMELIMIT运行时间限制
CPUS(A:占用核数、I: 空闲核数、O:不可用核数、T:总核数)

查看当前运行或排队的作业号

squeue -h -o "%.18i "

### Slurm 的常见用法及示例 #### 1. 查看集群状态 `slurm` 提供了一个名为 `sview` 的图形化工具,可以用来实时查看和管理由 `slurm` 控制的作业、分区以及节点的状态信息[^1]。除此之外,也可以通过命令行工具来完成这些操作。 以下是常用的命令及其功能: - **查看当前队列中的作业** ```bash squeue ``` 此命令会显示所有正在运行或等待调度的任务列表,包括任务 ID、用户名、状态等信息[^2]。 - **查看节点状态** ```bash sinfo ``` 该命令能够提供关于计算资源的信息,比如哪些节点可用或者被占用等情况。 #### 2. 提交批处理作业 (Batch Job Submission) 当用户希望将一系列指令作为后台进程执行时,则可以通过创建脚本文件并利用 `sbatch` 来提交给系统处理器安排时间片去运行它。下面是一个简单的例子展示了如何编写这样的 shell 脚本来请求两个 CPU 核心在一个小时内完成工作负载: ```bash #!/bin/bash #SBATCH --job-name=test_job # 设置作业名称 #SBATCH --output=res_%j.txt # 输出日志到 res_<jobid>.txt 文件中 #SBATCH --time=01:00:00 # 运行时间为一小时 #SBATCH --cpus-per-task=2 # 请求每项任务分配两颗核心 echo "Starting job at $(date)" sleep 60 # 模拟实际的工作流程耗时一分钟 echo "Job finished at $(date)" ``` 保存上述内容至某处路径下的 script.sh 后即可通过如下方式递交出去: ```bash sbatch /path/to/script.sh ``` #### 3. 提交交互式作业 (Interactive Session Requesting Resources via srun Command) 如果开发者需要立即获得某些特定规格硬件上的使用权来进行调试或其他即时需求的话,那么就可以考虑调用 `srun` 开启一个新的终端窗口连接远程服务器端口从而实现目的。例如启动一台具有四个 GPU 卡支持环境下的 python 解释器实例: ```bash srun --pty -p gpu_partition --gres=gpu:4 bash module load anaconda/2021.05 source activate myenv python ``` 这里 `-p` 参数指定了目标所在分组名;而 `--gres` 则进一步细化了对于通用外部设备数量的要求。 #### 4. 使用 salloc 获取专用资源池 `salloc` 可以为用户提供一段独占时间段内的整套物理机组合成的小型子集,在这段时间里只有这个用户的程序会被允许加载上去执行直到释放为止。这非常适合那些想要测试大规模分布式算法效果但又不想干扰其他正常科研活动的人群使用场景之一。 举个栗子来说吧,假设我们想临时借用三台机器组成一个小团队共同解决一个问题: ```bash salloc -N 3 ./my_mpi_program arg1 arg2 ... ``` 其中参数 `-N` 表明总共期望得到多少台主机参与协作运算过程。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wang_xiaoxin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值