如何在Slurm中配置RealMemory?及节点内存检测相关疑问
刚好之前处理过类似的Slurm内存配置问题,给你详细梳理这两个关键点:
1. 如何在Slurm中设置RealMemory?
设置RealMemory主要是通过修改Slurm的核心配置文件,步骤如下:
- 找到Slurm配置文件
slurm.conf,常见路径是/etc/slurm/slurm.conf,部分集群可能放在/etc/slurm-llnl/目录下 - 在文件中定位到节点定义行(如果是批量节点可以用通配符,比如
NodeName=node[01-20]),添加或修改RealMemory参数,数值单位是MB。比如要给node01配置64GB内存,就写:NodeName=node01 RealMemory=65536 ...(其他节点参数) - 如果集群所有节点内存规格一致,也可以通过分区(PartitionName)继承配置,但更推荐在节点级别单独设置,避免后续扩容时出现歧义
- 修改完配置后,必须重启Slurm控制服务和节点服务才能生效:
sudo systemctl restart slurmctld sudo systemctl restart slurmd - 验证配置是否生效:执行
scontrol show node node01,在输出里找到RealMemory字段,确认数值和你设置的一致
2. 如何查看Slurm从操作系统获取的对比内存数值?
当RealMemory配置值大于Slurm检测到的节点实际可用内存时,节点会被标记为drain状态。要查看Slurm用来对比的系统内存数值,有这几种方法:
- 用
sinfo快速查看集群节点内存信息:
执行sinfo -N -l,输出里的AvailableMemory字段就是Slurm从操作系统获取的节点可用内存(单位MB),这个值就是Slurm用来和RealMemory对比的基准值 - 用
scontrol查看单节点详细内存数据:
针对具体节点执行scontrol show node <节点名称>,输出中除了RealMemory,还会显示AvailableMemory(Slurm认定的节点可用内存上限)和FreeMem(节点当前空闲内存),重点看AvailableMemory即可 - 查看slurmd日志定位问题:
如果节点已经进入drain状态,查看节点上的slurmd日志(通常在/var/log/slurmd.log),里面会有明确的报错信息,比如RealMemory (xxxx) exceeds available memory (yyyy),直接搜索RealMemory关键词就能找到对应的对比数值
内容的提问来源于stack exchange,提问作者a06e




