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 生成)