跳到主要内容

QOS新策略参数

fsched(版本fsched-10.61 +)支持新的QOS策略参数:

  1. MaxTRESRunMinsPerAccount
    • 对所有关联该qos的account,每个account的所有运行中任务能使用的最大资源分钟数
  2. MaxTRESRunMinsPerUser
    • 对所有关联该qos的user,每个user的所有运行中任务能使用的最大资源分钟数
注意
  • 手动修改slurm accounting的association和qos设置,会和UI的集群配额设置冲突,所以不要和UI的集群配额功能同时使用
  • 除了更新fsched,还需要更新slurmdbd的容器镜像,否则设置这两个新参数时会有bug(bug的影响是:如果要设置的MaxTRESRunMinsPerAccount的值和当前的MaxTRESRunMinsPerUser的值一样,设置不会成功,并且没有报错)
  • 如果提交任务时不使用-t指定time_limit, time_limit默认为不限制,这样如果指定了MaxTRESRunMinsPerAccountMaxTRESRunMinsPerUser,任务一定会因为资源分钟数超出最大限制而pending

示例

  1. 假设存在用户alicebob,主组均为jjtest

    root@head1:~# id alice
    uid=2006(alice) gid=2013(jjtest) groups=2001(fsadmin),2003(defaultGroup),2013(jjtest)
    root@head1:~# id bob
    uid=2007(bob) gid=2013(jjtest) groups=2001(fsadmin),2003(defaultGroup),2013(jjtest)
  2. 为当前集群和用户alicebob创建association

    sacctmgr add account jjtest cluster=fastone-18
    sacctmgr add user alice account=jjtest cluster=fastone-18
    sacctmgr add user bob account=jjtest cluster=fastone-18
  3. 创建qos,并设置MaxTRESRunMinsPerAccountMaxTRESRunMinsPerUser

    sacctmgr add qos test_tres
    sacctmgr modify qos test_tres set MaxTRESRunMinsPerAccount=cpu=3
    sacctmgr modify qos test_tres set MaxTRESRunMinsPerUser=cpu=2
  4. 为用户alicebob的association关联qos

    sacctmgr modify user alice account=jjtest cluster=fastone-18 set qos=test_tres
    sacctmgr modify user bob account=jjtest cluster=fastone-18 set qos=test_tres
  5. 用户alice提交一个time_limit为2分钟的job,再提交一个time_limit为1分钟的job,后提交的job会因为MaxCpuRunMinsPerUserpending

    alice@head1:~$ srun -t 2 sleep 100&
    alice@head1:~$ srun -t 1 sleep 100&
    alice@head1:~$ squeue
    JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
    40 partition sleep alice PD 0:00 1 (MaxCpuRunMinsPerUser)
    39 partition sleep alice R 0:07 1 compute1
  6. 在步骤5.的jobs结束前,用户bob提交一个time_limit为2分钟的job,job会因为MaxCpuRunMinsPerAccountpending

    bob@head1:~$ srun -t 2 sleep 600&
    bob@head1:~$ squeue
    JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
    42 partition sleep alice PD 0:00 1 (MaxCpuRunMinsPerUser)
    43 partition sleep bob PD 0:00 1 (MaxCpuRunMinsPerAccount)
    41 partition sleep alice R 0:21 1 compute1