70B 模型向百节点分发¶
这里的“70B、百节点”是实验规模标签,不是固定答案。目标是把一次扩容拆成可度量阶段,并避免所有节点同时从远端对象存储重复拉取同一份权重。
1. 时间线¶
节点供给
→ OS/驱动/Runtime Ready
→ 镜像拉取
→ 模型发现与校验
→ 模型下载/解压/转换
→ 本地缓存命中
→ 引擎加载权重
→ CUDA Graph/Warmup
→ Readiness
只报告 Pod 创建到 Running 会掩盖真正的模型加载时间。
2. 对比方案¶
| 方案 | 优点 | 风险 |
|---|---|---|
| 每 Pod 直拉对象存储 | 简单 | 重复流量、限流和启动风暴 |
| Init Container + HostPath | 易理解、节点复用 | 锁、GC、安全和节点生命周期 |
| DaemonSet 预热 | 可提前完成 | 容量预测和版本切换复杂 |
| OCI Modelcar | 制品、Digest 和供应链统一 | Registry 大制品能力需验证 |
| P2P 分发 | 降低源站扇出 | Peer 安全、拓扑和失败恢复 |
| 并行文件系统 | 一致入口 | 元数据和并发读取瓶颈 |
3. 实验矩阵¶
按 1、10、50、100 节点逐级放大,并分别测试冷节点、热节点、同可用区、跨可用区和单源故障。记录源站出流、每节点吞吐、p50/p95 完成时间、失败率、重试量和缓存命中率。
4. 防止惊群¶
- 用带抖动的分批预热,而不是同时创建全部 Pod;
- 下载到临时路径,完成 Digest 校验后原子重命名;
- 同一节点用锁保证只下载一次;
- 缓存 GC 先保留当前和上一个生产版本;
- Readiness 等待模型真正可服务;
- 发布系统区分“制品已复制”“节点已缓存”“实例已就绪”。
5. 验收¶
源站故障、一个 Peer 损坏、磁盘空间不足、下载中断和模型回滚都必须有确定结果。最终报告应给出从零扩容到 SLO 容量的完整时间,而不只是下载带宽。