故障排查
Connection refused
症状:
error: io error: Connection refused (os error 111)
含义:
- client 找到了 socket 路径
- 但该路径上当前没有 daemon 在接受连接
检查项:
- daemon 是否真的在运行
- client 与 daemon 是否使用相同的
SLOTD_ROOT - 是否残留了旧运行产生的过期 socket 文件
有用的检查命令:
ls -l "$SLOTD_ROOT/run/slotd.sock"
sinfo
Runtime Root 不一致
如果 daemon 使用一个 runtime root,而 client 使用另一个,命令看起来会随机失败。
常见原因:
- daemon 由
systemd --user启动 - client 从一个没有相同
SLOTD_ROOT的 shell 中启动
最稳妥的修复方式:
- 使用
scripts/install.sh安装 - 使用
~/.local/bin下的 wrapper 命令
看不到 GPU 分区
如果 sinfo 只显示 cpu,请检查:
nvidia-smi是否在 daemon 环境中可用SLOTD_GPU_PARTITIONS是否按预期配置- 修改 GPU 配置后是否已经重启 daemon
手动检查:
nvidia-smi
sinfo
重装时出现 Text file busy
安装脚本现在会以原子方式替换二进制。如果仍然遇到问题:
- 停止或重启 daemon
- 再次运行安装脚本
命令:
systemctl --user restart slotd.service
./scripts/install.sh
作业一直处于 PENDING
可能原因:
- 资源不足
- dependency 未满足
- array 并发限制
- 尚未到达 delayed start time
- 作业处于 held 状态
- 已有 exclusive job 正在运行
排查方式:
squeue
scontrol show job <job_id>
cgroup 设置失败
如果设置了 SLOTD_CGROUP_BASE,但它并不是可写的 cgroup v2 subtree,作业启动会
直接以明确的 cgroup error 失败。
检查:
- 该路径在 daemon 环境中确实存在
- 它是 cgroup v2 subtree,而不是普通目录或文件
- daemon 用户可以在其中创建每个作业的子目录并写入 control file
作业被取消但最终状态是 OUT_OF_MEMORY
如果在终止过程中 cgroup 内存事件表明发生了 OOM,最终状态可能优先记录为 OUT_OF_MEMORY。
找不到输出文件
请检查:
- 作业的 working directory
-o/--output与-e/--error路径%j、%A_%a等模式展开
排查命令:
scontrol show job <job_id>