SLURM MaxJobCount超限:如何增大最大缓冲区大小?
问题解答
该错误与InnoDB无关
你遇到的slurmctld错误是Slurm自身内存缓冲区的限制问题,和MySQL的InnoDB配置没有任何关联。这个错误是Slurm的slurmctld进程用来存储作业状态的内存缓冲区容量不足,无法容纳你设置的MaxJobCount=3000000对应的作业状态数据,和数据库层的配置无关。
错误原因解析
Slurm的slurmctld进程会在内存中维护一个缓冲区来存储作业状态信息,根据错误提示的平均作业状态大小(2.34 KiB),当前默认缓冲区最多能容纳约179万个作业的状态数据,但你设置的MaxJobCount(300万)远超这个上限,因此会触发该警告,可能导致部分作业状态无法被保存。
增大缓冲区的解决方法
要解决这个问题,你需要在slurm.conf中调整Slurm自身的作业状态缓冲区大小,具体步骤如下:
- 修改slurm.conf配置:添加或更新
JobStateBufferSize参数,根据需求计算所需的缓冲区大小:
计算方式:MaxJobCount × 平均作业状态大小,即3000000 × 2.34 KiB ≈ 6804 MiB,建议留一定余量,比如设置为7168 MiB(7 GiB):
单位为MiB,可根据实际情况调整数值。JobStateBufferSize=7168 - 重启slurmctld服务:使新配置生效,执行命令:
systemctl restart slurmctld - 验证结果:查看
slurmctld.log,确认该错误不再出现。
内容的提问来源于stack exchange,提问作者Emma Athan
相关产品推荐
相关产品推荐

