分区OverMemoryKill
fsched支持按分区设置策略:当任务超用申请的内存后杀死任务,配置在partitions.conf
中节点所在分区的PartitionName
开头的行中,配 置项包括:
- 内存超用杀死任务
OverMemoryKill
- 如果任务所在分区配置了
OverMemoryKill=YES
,当任务使用的内存超过任务申请的内存时,任务会被杀掉
注意:
- 内存超用杀死任务可能有延迟,不一定能保证系统不会OOM
- 如果配置了task plugin为cgroup,会用cgroup实现内存超用杀死任务,否则使用jobacct实现内存超用杀死任务
- cgroup目前在ubuntu22上不工作
- 如果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