跳到主要内容

分区OverMemoryKill

fsched支持按分区设置策略:当任务超用申请的内存后杀死任务,配置在partitions.conf中节点所在分区的PartitionName开头的行中,配置项包括:

  1. 内存超用杀死任务 OverMemoryKill
  • 如果任务所在分区配置了OverMemoryKill=YES,当任务使用的内存超过任务申请的内存时,任务会被杀掉

注意:

  1. 内存超用杀死任务可能有延迟,不一定能保证系统不会OOM
  2. 如果配置了task plugin为cgroup,会用cgroup实现内存超用杀死任务,否则使用jobacct实现内存超用杀死任务
  3. cgroup目前在ubuntu22上不工作
  4. 如果job提交时没有指定申请内存,则使用默认内存作为申请内存

示例

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

#
# PARTITION partition-8PSBV
PartitionName=partition-8PSBV Nodes=compute1,compute2 Default=YES OverMemoryKill=YES
# DUMMY

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


root@head1:~# srun --mem=3 hostname
srun: Exceeded job memory limit
Jul 17 15:43:46.625179 206113 slurmstepd 0x14becbec1b80: E: Step 463.0 exceeded memory limit (7354368 > 3145728), being killed
compute1