跳到主要内容

负载阈值

fsched支持按分区配置内存(单位为MiB), CPU使用率(单位为%)和平均CPU运行队列长度(小数,无单位)的负载阈值,配置在partitions.conf中节点所在分区的PartitionName开头的行中,配置项包括:

  1. 调度内存阈值 LoadSchedMem
  2. 停止内存阈值 LoadStopMem
  3. 调度CPU使用率阈值 LoadSchedUt
  4. 停止CPU使用率阈值 LoadStopUt
  5. 调度15秒平均CPU运行队列长度阈值 LoadSchedR15s
  6. 停止15秒平均CPU运行队列长度阈值 LoadStopR15s
  7. 调度1分钟平均CPU运行队列长度阈值 LoadSchedR1m
  8. 停止1分钟平均CPU运行队列长度阈值 LoadStopR1m
  9. 调度15分钟平均CPU运行队列长度阈值 LoadSchedR15m
  10. 停止15分钟平均CPU运行队列长度阈值 LoadStopR15m
提示

对fsched调度器的配置而言,以上所有配置项格式是数字,不可设置单位

配置项说明
LoadSchedMem/LoadStopMem整数,默认单位是MiB
LoadSchedUt/LoadStopUt整数,默认单位是%
LoadSchedR15s/LoadStopR15s小数或整数,无单位
LoadSchedR1m/LoadStopR1m小数或整数,无单位
LoadSchedR15m/LoadStopR15m小数或整数,无单位
  • 如果节点所在分区配置了调度阈值LoadSched[XXX]
    • 在以下任一条件满足的情况下,节点会被drain,不再接受新任务:
      • 节点剩余内存低于LoadSchedMem
      • 节点CPU使用率高于LoadSchedUt
      • 节点15秒平均CPU运行队列长度大于LoadSchedR15s
      • 节点1分钟平均CPU运行队列长度大于LoadSchedR1m
      • 节点15分钟平均CPU运行队列长度大于LoadSchedR15m
    • 在以下所有条件满足的情况下,节点会被undrain, 节点被undrain,可以继续接受新任务:
      • 节点剩余内存高于LoadSchedMem
      • 节点CPU使用率低于LoadSchedUt
      • 节点15秒平均CPU运行队列长度小于LoadSchedR15s
      • 节点1分钟平均CPU运行队列长度小于LoadSchedR1m
      • 节点15分钟平均CPU运行队列长度小于LoadSchedR15m
  • 如果节点所在分区配置了停止阈值LoadStop[XXX]和调度阈值LoadSched[XXX]
    • 在以下任一条件满足的情况下,节点上的任务会按优先级(相同优先级时按开始时间)依次被STOP(stop的任务内存不会释放),先停止优先级低的任务(相同优先级时选开始晚的任务),直到剩余最后一个任务:
      • 节点剩余内存低于LoadStopMem
      • 节点CPU使用率高于LoadStopUt
      • 节点15秒平均CPU运行队列长度大于LoadStopR15s
      • 节点1分钟平均CPU运行队列长度大于LoadStopR1m
      • 节点15分钟平均CPU运行队列长度大于LoadStopR15m
    • 在以下所有条件满足的情况下,节点被undrain的同时,被STOP的任务依次被CONTINUE,先continue优先级高的任务(相同优先级时选开始早的任务)
      • 节点剩余内存高于LoadSchedMem
      • 节点CPU使用率低于LoadSchedUt
      • 节点15秒平均CPU运行队列长度小于LoadSchedR15s
      • 节点1分钟平均CPU运行队列长度小于LoadSchedR1m
      • 节点15分钟平均CPU运行队列长度小于LoadSchedR15m

注意:

  1. 可以单独设置某一种资源的LoadSched[XXX]LoadSched[XXX]
  2. 如果要设置某一种资源的LoadStop[XXX],必须设置对应的LoadSched[XXX],并且根据资源类型满足以下对应条件,否则是错误配置,重配置会失败,slurmctld或slurmd重启会失败:
    • LoadStopMem的值小于LoadSchedMem
    • LoadStopUt的值大于LoadSchedUt
    • LoadStopR15s的值大于LoadSchedR15s
    • LoadStopR1m的值大于LoadSchedR1m
    • LoadStopR15m的值大于LoadSchedR15m
  3. 节点在多个分区时,最后一个分区的配置起作用
  4. 由于阈值检查是定期轮询的,并不能保证节点资源一定不超出负载阈值的限制

示例

root@compute1:~# cat /etc/slurm/partitions.conf

#
# PARTITION partition-U7KH5
PartitionName=partition-U7KH5 Nodes=compute1 Default=YES LoadSchedMem=1300 LoadStopMem=1200 LoadSchedUt=80 LoadStopUt=90
# DUMMY

# NODES
NodeName=compute1 CPUs=16 RealMemory=13926 Weight=1 State=CLOUD