节点内存配置 
在有些情况下,集群没有对计算节点的可用内存进行限制。当集群上有用户提交需要占用大量内存资源的任务后,导致计算节点的内存溢出从而使节点宕机,这种情况下就需要对集群上节点的可使用内存进行配置。当用户任务超额使用内存后,任务将被OOM Kill。下面将介绍如何在 SonmiHPC 集群上对计算节点的内存进行限制。
设置CGroup限制 
管理员编辑 /etc/slurm/cgroup.conf 该文件,并添加如下配置:
ConstrainRAMSpace=yesConstrainRAMSpace=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=7683NodeName=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=7683ReadMemory 为节点的真实内存大小。可以通过 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 slurmctldscontrol reconfigure
systemctl restart slurmctld