跳转至

Slurm 全套命令极简速查表(全量工具·可直接复制)

上传件:Slurm 全套命令极简速查表(全量工具·可直接复制).md(原文件可下载)。

Slurm 全套命令极简速查表(全量工具·可直接复制)

前言:整合 Slurm 所有核心运维/提交/查询/统计/权限工具,统一极简风格,只保留生产高频用法,剔除冷门冗余参数,全覆盖日常 HPC/EDA/AI 集群运维。

Slurm 工具分类:任务提交 | 资源申请 | 任务管理 | 集群查询 | 调度管控 | 账号计费 | 监控统计 | 高级功能

一、任务提交与执行(核心业务)

1. srun(交互式任务执行)

实时抢占资源、终端直接运行,适合调试、交互式测试

核心语法:srun [参数] 程序 [参数]

高频核心参数

  • -p:指定分区队列

  • -N/-n/-c:节点数/总进程数/单进程核心数

  • --gres=gpu:N:申请GPU资源

  • --pty:交互式终端必备

  • --kill-on-bad-exit:进程异常自动终止全任务

万能模板

```Plain Text srun -p compute -N1 -c8 --gres=gpu:1 -t 3:00:00 --pty --unbuffered bash


### 2\. sbatch(后台批量提交)

提交脚本到队列后台运行,生产正式任务首选,不占用终端

**核心语法**:`sbatch job.slurm`

**脚本头部常用声明**

```Plain Text
#!/bin/bash
#SBATCH -p compute
#SBATCH -N 1
#SBATCH -n 8
#SBATCH -t 12:00:00
#SBATCH -J train_task
#SBATCH -o log_%j.out
#SBATCH -e log_%j.err

高频参数:同srun资源参数,脚本内声明生效

3. salloc(资源预申请)

只申请资源、不启动程序,抢占资源后手动执行任务,适合多步骤复杂任务

核心语法:salloc [资源参数]

万能模板

```Plain Text salloc -p compute -N1 -c8 --gres=gpu:1 -t 2:00:00


申请成功后,终端直接执行`./app` 即可使用分配资源

## 二、任务管控与终止(日常运维)

### 1\. scancel(取消任务)

终止正在排队/运行的任务,集群最常用命令

**高频用法**

```Plain Text
scancel 12345          # 取消指定ID任务
scancel -u username    # 取消当前用户所有任务
scancel -p compute     # 取消指定分区所有任务

2. sattach(附着运行任务)

接入正在运行的交互式任务终端,断线重连神器

核心用法

```Plain Text sattach 12345 # 附着到指定任务ID终端


## 三、集群与任务查询(状态监控)

### 1\. sinfo(查询集群节点/分区状态)

查看集群分区、节点空闲、资源配置、状态

**高频用法**

```Plain Text
sinfo                  # 全量分区节点概览
sinfo -p gpu           # 只查看GPU分区
sinfo -N -l            # 详细节点信息

2. squeue(查询排队/运行任务)

查看当前集群所有任务状态、排队情况、资源占用

高频用法

```Plain Text squeue # 查看所有任务 squeue -u username # 只看自己的任务 squeue -p compute # 查看指定分区任务 squeue -l # 详细信息


### 3\. sprio(查看任务调度优先级)

查询排队任务优先级、权重、排队原因,解决排队卡顿问题

**高频用法**

```Plain Text
sprio                  # 全局优先级排序
sprio -u username      # 查看自己任务优先级

四、任务日志与历史统计

1. sacct(查询历史任务记录)

查询已结束/运行中任务的历史、耗时、资源占用、状态,排查任务失败首选

高频用法

```Plain Text sacct # 当天所有任务记录 sacct -j 12345 # 查看指定任务ID详情 sacct -u username -l # 自己所有任务详细日志


### 2\. sstat(实时任务资源监控)

实时查看**运行中**任务的CPU、内存、IO占用

**高频用法**

```Plain Text
sstat -j 12345         # 监控指定任务资源消耗

3. sreport(集群统计报表)

生成集群资源使用报表、用户算力消耗、分区负载统计

高频用法

```Plain Text sreport cluster utilization # 集群整体利用率报表 sreport user usage # 用户资源使用统计


## 五、集群调度与高级管控(管理员常用)

### 1\. scontrol(集群核心管控)

管理员专属,修改任务、节点、分区状态,排查调度异常

**高频用法**

```Plain Text
scontrol show job 12345    # 查看任务完整配置信息
scontrol show node node01  # 查看节点详细状态
scontrol update job 12345 time=24:00:00  # 延长任务时长

2. sdiag(调度器状态诊断)

排查调度卡顿、队列阻塞、调度器异常,集群运维排查神器

核心用法

```Plain Text sdiag # 输出调度器运行统计、异常信息


### 3\. sbcast(节点文件广播)

将本地文件同步广播到所有计算节点,多节点并行任务文件同步专用

**核心用法**

```Plain Text
sbcast local.file /tmp/node.file  # 广播文件到所有分配节点

4. strigger(任务触发器)

设置任务事件触发器,任务结束/异常/超时自动执行脚本

适用场景:任务失败自动告警、超时自动备份数据

5. scrontab(Slurm定时任务)

集群级定时任务,替代系统crontab,支持资源调度

核心用法

```Plain Text scrontab -e # 编辑定时任务 scrontab -l # 查看已有定时任务


## 六、账号、权限与配额管理(计费/管理员)

### 1\. sacctmgr(账号配额管理)

Slurm账号系统核心工具,创建用户、账户、分区配额、权限管控

**高频用法**

```Plain Text
sacctmgr show user     # 查看所有集群用户
sacctmgr show account  # 查看所有计费账户

2. sshare(用户/账户资源配额)

查询用户、组、账户的资源配额、已用算力、剩余额度

核心用法

Plain Text sshare # 查看自身配额 sshare -a # 全量账户配额查询

七、Slurm 全套命令核心定位速览

命令 核心定位 使用人群
srun 交互式实时任务运行 研发/调试
sbatch 后台批量任务提交 生产正式任务
salloc 预申请资源,手动运行任务 复杂多步骤任务
scancel 取消排队/运行任务 全员通用
sattach 重连运行中交互式任务 调试断线恢复
squeue 任务排队/运行状态查询 全员通用
sinfo 集群节点/分区状态查询 运维/用户
sacct 历史任务日志与状态排查 问题排查
sstat 实时任务资源监控 性能调优
sprio 任务调度优先级查询 排队问题排查
scontrol 集群/任务高级管控 管理员
sdiag 调度器故障诊断 运维管理员
sacctmgr 账号与配额管理 运维管理员
sshare 用户资源配额查询 全员通用
sreport 集群资源统计报表 运维统计
sbcast 多节点文件广播同步 并行任务
scrontab 集群定时任务 自动化运维
strigger 任务事件触发器 高级自动化

八、通用高频避坑总结

  • 交互式任务必用 --pty,避免终端异常、Tab失效

  • sbatch 脚本内嵌套 srun,禁止重复声明资源参数

  • MPI 任务禁止双层并行(srun+mpirun),性能严重损耗

  • 任务排队异常优先用sprio、sdiag 排查优先级与调度故障

  • 任务闪退、报错优先用 sacct 查看历史退出状态

  • 资源超限、OOM 问题用 sstat 实时监控内存CPU占用

(注:部分内容可能由 AI 生成)