更新时间:2025-05-21 GMT+08:00
容量预留
资源预留功能允许用户或管理员提前预定计算节点,确保在指定时间段内独占或共享资源。以下是资源预留的详细用法指南。
创建资源预留
使用scontrol create reservation命令(需要管理员权限):
scontrol create reservation ReservationName=<名称> StartTime=<开始时间> Duration=<持续时间> Nodes=<节点列表或数量> Partition=<分区名> Users=<用户列表> Flags=<选项>
参数说明:
- ReservationName: 预留的唯一名称(必填)。
- StartTime: 预留开始时间,格式为 YYYY-MM-DD[THH:MM[:SS]] 或 now+{数字}{单位}(如 now+1hours)。
- Duration: 预留持续时间,格式为 DD-HH:MM:SS(如 2-12:00:00 表示2天12小时)。
- Nodes: 指定节点。
- Partition: 预留所属分区。
- Users: 允许使用预留的用户(逗号分隔,如 user1,user2;默认创建者可访问)。
- Flags: 控制预留行为的选项:
- MAINT: 预留用于维护,仅管理员可访问。
- OVERLAP: 允许与其他预留重叠。
- IGNORE_JOBS: 忽略现有作业,立即生效。
- SPEC_NODES: 强制使用明确指定的节点(避免Slurm自动选择)。
在驾仓后台创建预留容量策略(给test1用户预留一个计算节点)
查看资源预留
- 查看所有预留:
scontrol show reservation
- 查看特定预留:
scontrol show reservation <ReservationName>
驾仓后台查看容量预留策略。
管理预留
- 更新预留参数(如修改持续时间):
scontrol update ReservationName=<名称> Duration=<新时间>
- 删除预留:
scontrol delete ReservationName=<名称>
非指定用户无法使用预留资源
提交作业分为两种方式(推荐使用驾仓页面):
- 驾仓页面提交作业
提交作业用户非预留指定用户,作业无法执行
- 后台命令
在作业提交命令中通过--reservation指定预留名称:
# 提交批处理作业 sbatch --reservation=<名称> --partition=<分区> job.sh
使用场景示例
场景1:预定节点进行测试
scontrol create reservation \ ReservationName=test_job \ StartTime=now+30minutes \ Duration=1:00:00 \ Nodes=node01 \ Users=alice
- 用户 alice 在30分钟后可独占node01 1小时。
场景2:多用户协作任务
scontrol create reservation \ ReservationName=team_project \ StartTime=2024-01-01T09:00:00 \ Duration=24:00:00 \ Nodes=4 \ Partition=workq \ Users=user1,user2,user3
- 用户组在指定时间共享4个节点24小时。
场景3:维护模式预留
scontrol create reservation \ ReservationName=maintenance \ StartTime=now \ Duration=8:00:00 \ Nodes=ALL \ Flags=MAINT,IGNORE_JOBS
- 管理员立即占用所有节点进行维护,终止现有作业。
注意事项
- 权限:普通用户需管理员协助创建预留。
- 时间冲突:默认不允许节点被重复预留,除非使用 OVERLAP。
- 作业时间限制:作业必须在预留时间窗口内开始,并受预留持续时间限制。
通过合理使用资源预留,可以优化集群资源分配,确保关键任务按时执行。建议在复杂需求下联系集群管理员协助配置。
父主题: HPC管理调度插件