主题
Milvus 生产检查清单
适用 Milvus 2.6.x。每条都可勾选,括号内是默认值或判断依据;版本差异以官方文档为准。 这份清单只列「不做会出事」的动作,机制解释见各篇正文。
上线前
- [ ] etcd 至少 3 节点、跨可用区,并确认备份策略。元数据丢失无法从对象存储反推。
- [ ] 存储与 WAL 就绪:对象存储使用独立桶,开启版本控制或误删保护,带宽能支撑冷加载;WAL 在 Kafka/Pulsar/Woodpecker 中选定,并做过一次 WAL 节点故障演练。
- [ ] 容量测算完成:内存按
原始向量 + 图结构 + 标量列再乘 1.2,单节点使用率不超过 70%(768 维 float32 每百万条约 3 GB);节点数按目标ef、limit、真实过滤条件压测单节点 QPS,再乘 1.5。 - [ ] 索引与加载策略明确:HNSW/IVF/DiskANN 选型有依据,写入与查询的
metric_type一致;哪些 collection 常驻、哪些按需load/release已定。 - [ ] 隔离与恢复演练通过:多租户用 partition key 或独立 collection,查询入口统一注入租户过滤并有漏写测试;备份同时覆盖 etcd 元数据和对象存储文件,且在同版本集群成功恢复。
- [ ] 探针、升级与网络:定时执行「插入 → 检索 → 删除」的端到端探针,而不只是
curl /healthz;2.6 的 MixCoord / Streaming Node 升级路径已在测试环境验证;19530/9091 不暴露公网并开启认证。
运行中
- [ ] Proxy:查询与写入 P99、错误率、限流次数有面板和告警。
- [ ] QueryNode:内存使用率、已加载段数、单次搜索延迟;内存到 70% 预警,85% 必须处置。
- [ ] 写入链路:WAL 消费延迟、flush 延迟、growing 段数量持续可见。
- [ ] 段与对象存储:段总数、小段占比有趋势图,compaction 安排在低峰;对象存储读带宽、请求延迟、限流错误可见,冷加载变慢先看这里。
- [ ] etcd、召回与容量:etcd leader 变化次数、db 大小、慢请求;固定评测集定期跑 Recall@k,换 embedding 或改索引参数后必须重跑;内存、磁盘、对象存储增长按周审视,70% 时启动扩容评估。
故障时
- [ ] 报
collection not loaded→get_load_state→ 确认索引建完 →load_collection;不要盲目重启。 - [ ] 查询变慢但 CPU 不高 → 看段数量、compaction 状态、对象存储延迟;再看
ef/nprobe是否被调高。 - [ ] 写入成功但查不到 → 检查一致性级别与 growing 段;确认不是「未 flush/未建索引」而是真丢数据。
- [ ] 资源或质量异常 → QueryNode OOM 先统计已加载段总大小,release 冷 collection,再考虑扩节点或量化压缩;召回突然变差核对 metric、embedding 版本与过滤条件;etcd 频繁选主查网络/磁盘/负载,元数据层不稳时暂停扩缩容。