节点内存配置
在有些情况下,集群没有对计算节点的可用内存进行限制。当集群上有用户提交需要占用大量内存资源的任务后,导致计算节点的内存溢出从而使节点宕机,这种情况下就需要对集群上节点的可使用内存进行配置。当用户任务超额使用内存后,任务将被OOM Kill。下面将介绍如何在 SonmiHPC 集群上对计算节点的内存进行限制。
设置CGroup限制
管理员编辑 /etc/slurm/cgroup.conf 该文件,并添加如下配置:
ConstrainRAMSpace=yes
ConstrainRAMSpace=yes
设置节点内存
管理员编辑 /etc/slurm/slurm.conf 文件,在节点的配置增加 RealMemory 字段,示例如下:
NodeName=sonmi NodeAddr=10.1.1.1 CoresPerSocket=8 Sockets=1 ThreadsPerCore=1 RealMemory=32445
NodeName=compute-0-1 NodeAddr=10.1.1.3 CoresPerSocket=8 Sockets=1 ThreadsPerCore=1 RealMemory=7683
NodeName=sonmi NodeAddr=10.1.1.1 CoresPerSocket=8 Sockets=1 ThreadsPerCore=1 RealMemory=32445
NodeName=compute-0-1 NodeAddr=10.1.1.3 CoresPerSocket=8 Sockets=1 ThreadsPerCore=1 RealMemory=7683
ReadMemory 为节点的真实内存大小。可以通过 free -m
命令来获取该值:
(base) [root@sonmi models]# free -m
total used free shared buff/cache available
Mem: 32445 18378 576 838 14795 14066
Swap: 8191 4140 4051
(base) [root@sonmi models]# free -m
total used free shared buff/cache available
Mem: 32445 18378 576 838 14795 14066
Swap: 8191 4140 4051
其中 Mem total 的值为 ReadMemory 的值。
更新配置
管理员通过下面的命令来更新SLURM配置:
bash
scontrol reconfigure
systemctl restart slurmctld
scontrol reconfigure
systemctl restart slurmctld