Slurm测试集群启用计费后sacct无数据,报DBD_SEND_MULT_JOB_START错误
解决Slurm slurmdbd无法收集作业计费信息的问题
针对你遇到的error: DBD_SEND_MULT_JOB_START message from invalid uid错误,核心原因是slurmctld与slurmdbd的运行用户UID不一致,导致作业信息无法正常传递到计费数据库。以下是具体解决步骤:
检查服务运行用户的UID一致性
分别查看slurmctld和slurmdbd的运行用户及UID:ps aux | grep slurmctld ps aux | grep slurmdbd两者必须使用同一个用户(通常为
slurm用户)运行,且UID完全一致。若UID不同,需调整用户UID或确保服务以正确用户启动。验证配置文件中的用户设置
- 在
slurm.conf中确认SlurmUser配置项:SlurmUser=slurm - 在
slurmdbd.conf中确认DbdUser配置项,该用户必须与SlurmUser一致:DbdUser=slurm
- 在
确认数据库访问权限
确保DbdUser指定的用户拥有slurm_acct_db数据库的读写权限,可通过以下命令测试:mysql -u slurm -p slurm_acct_db登录后执行简单查询(如
SELECT * FROM cluster;),确认无权限报错。重启Slurm服务
按顺序重启服务以应用配置:systemctl stop slurmctld systemctl stop slurmdbd systemctl start slurmdbd systemctl start slurmctld重启后查看
slurmctld.log,确认不再出现invalid uid错误。测试作业并验证结果
提交一个测试作业:srun sleep 60作业完成后执行
sacct命令,查看是否能正常显示作业计费信息;同时可通过数据库查询验证:mysql -u slurm -p slurm_acct_db -e "SELECT * FROM cluster_job_table;"
内容的提问来源于stack exchange,提问作者lando
相关产品推荐
相关产品推荐

