仪表盘上有空闲 GPU,作业却一直排队
饿死这一种最像 bug。控制台永远显示「等待容量」,而制造这个流的正是平台自己——
lifecycle 作业和 Playground 会话各占一张卡,于是四卡作业每一轮都被跳过。
训练能起来但慢得离谱,或者卡在 all-reduce
多网卡机器上FORGE_K8S_NCCL_SOCKET_IFNAME 没设,NCCL 挑错了网卡。
没有任何报错——只有很差的吞吐或者一次挂起。常见值是 bond0、eth0、ib0。
集群起来了但 worker 注册不上
FORGE_KUBERAY_RAY_VERSION 和训练镜像里的 Ray 版本不一致。
唯一的线索是一行版本不匹配的警告,很容易淹没在启动输出里。
稍大一点的 batch 就 OOM
/dev/shm 还是容器默认的 64MB,而 Ray 的 object store 就在那里。
改 FORGE_K8S_SHM_SIZE 或 FORGE_LOCAL_SHM_SIZE,并记住它由内存支撑——
它加上内存上限不能超过物理内存。
多节点 run 续不上
FORGE_K8S_STORAGE_SHARED 是 true,但 PVC 是 RWO。RWO 不会让作业直接失败——
它给每个 Pod 各自一个卷,于是 checkpoint 分片散落在不同节点上。
执行器的健康检查会把声明值和实际 PVC 核对,去读那个结果。
所有后台任务都停了
没有 Redis。后台角色需要一把共享锁,避免多个副本同时跑同一个任务。 单实例:可以接受。多副本:存储记账、诊断和每日日报根本没在跑。权重下载卡住,或者失败在一个响应体里只有 URL 的 400 上
镜像的问题,或者 Xet。见离线内网部署。日志在滚但曲线是空的
Ingest。确认FORGE_INGEST_URL 从 worker 节点可达,而不是从你的笔记本——
那里的 127.0.0.1 是 worker 自己的回环。自定义训练器的话,
确认 starforge.report 真的被调用了。
重启之后所有人都掉线了
FORGE_WEB_JWT_SECRET 没设,所以每个进程各生成一把。设一个固定的强随机值。
副本多于一个时,这还意味着一个副本签的 token 会被其他副本拒绝。
GPU 长期显示「不可调度」
健康检查发现了 ECC 待退页、未纠正错误或硬件降频——或者有平台之外的进程占着这张卡。 容量视图会说明是哪一种。这类故障在任何地方都不报错;它们只产出坏结果或者悄悄变慢, 这正是这项检查存在的理由。存储配额显示「未统计」
FORGE_STORAGE_SCAN_INTERVAL_S 是 0,或者扫描角色没在跑。
大目录树上一次完整扫描要几分钟,所以它是后台角色而不是请求时现算。
某个环境在准入时被拒
要么它需要沙箱而部署没配,要么它是openenv-image——这套部署有意不托管它。
在准入时拒绝而不是在 launcher 里拒绝,意味着你在花掉一次资源分配之前就知道了。