milvus | 第 26 章:实战开发二:从一次 Search 性能问题开始读源码

发布时间:2026/7/9 16:04:47
milvus | 第 26 章:实战开发二:从一次 Search 性能问题开始读源码 上一章我们完成了第一个实战:给 Milvus 加一个小型参数校验。那一章的重点是小范围、低风险、能用单测证明的改动。这一章进入第二个实战:从一次 Search 性能问题开始读源码。Search 性能问题比参数校验复杂得多。它可能慢在 Proxy,也可能慢在 QueryNode;可能是 QueryCoord 的 target 没收敛,也可能是 C++ 执行层没有命中索引;可能是请求参数太重,也可能是数据分布不均。所以本章不直接给一个“万能优化方案”,而是训练一种排查方法:先拆链路,再看指标,再形成假设,最后回到源码验证。1. 本章学习目标读完本章,你应该能掌握:如何把一次慢 Search 拆成多个可观测阶段。如何从Proxy.Search跟到 QueryNode 和 C++ 执行层。如何区分慢在排队、等待 tSafe、segment search、reduce 还是结果返回。如何阅读 QueryCoord target 和 balance 相关源码。如何判断 Search 是否命中索引