模型盘为什么关键
大模型加载时间主要由权重文件从磁盘读入的速度和页缓存命中情况决定。模型放在本地 NVMe 上,冷启动明显快于网络存储或机械盘;多个实例共用同一份权重时,第一次加载会把它读进页缓存,后续加载快很多,但代价是显存之外还要预留内存给缓存。
基本信息
| 关注指标 | 顺序读带宽、页缓存命中 |
|---|---|
| 观测工具 | dd、iostat、free |
| 推荐介质 | 本地 NVMe |
| 应避免 | 机械盘、延迟波动的网络存储 |
| 容器注意 | 挂载方式决定带不带缓存 |
典型使用场景
- 新机器上线前估算冷启动时间是否落在发布窗口内
- 模型更新后首次滚动发布明显变慢,判断是否缓存未命中
- 多实例共用权重时评估内存是否够放页缓存
- 排查加载超时到底是读盘慢还是拷贝到显存慢
读盘测速与缓存观察
读盘测速与缓存观察
dd if=/models/weights.safetensors of=/dev/null bs=1M status=progress # 顺序读实测带宽
free -h # 前后对比页缓存变化
grep -i cached /proc/meminfo # 缓存明细
iostat -x 1 # 读盘压力与设备利用率现象与原因对照
| 现象 | 可能原因 | 处理 |
|---|---|---|
| 冷启动明显慢 | 首次读盘没有缓存 | 预热或用高性能本地盘 |
| 每次重启都慢 | 盘本身带宽不足 | 换 NVMe 或减少同时加载 |
| 加载时间忽长忽短 | 网络存储抖动 | 把权重放本地 |
| 内存吃紧 | 页缓存挤压业务内存 | 限制缓存或拆分副本 |
加载慢先分流:读盘慢还是拷贝到显存慢,用 iostat 与 nvidia-smi 同时观察即可分辨,别一上来就怀疑模型或框架。
容器场景尽量避免把模型放网络存储:带宽与延迟波动会直接放大冷启动时间,在发布窗口里最容易演变成事故。
滚动发布时保留一个已完成加载的实例:后续实例能从页缓存里直接读,读盘峰值被摊平,发布窗口更可控。
把模型目录与介质类型写进部署清单:加载异常时先看这份清单,能省掉一轮猜测。