跳到正文

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 频繁选主查网络/磁盘/负载,元数据层不稳时暂停扩缩容。

把一门技术讲透到既懂也会用