Zilliz 04月24日 19:50
一文读懂Milvus核心参数,十分钟解决80% 的配置问题
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文针对Milvus数据库的配置参数进行深入解读,为用户提供了清晰的调优指南。文章首先介绍了Milvus依赖组件、自身组件和其他功能配置,并重点分析了etcd、minio、mq、rootcoord、proxy、querynode、datacoord等关键参数,以及日志、安全、限流等功能配置。最后,结合性能优先和成本优先两种场景,给出了具体的配置建议,帮助用户更好地进行Milvus的运维和优化。

💡 Milvus的配置参数主要分为三类:依赖组件配置(etcd、minio、mq)、自身组件配置(proxy、rootcoord、querycoord、querynode、indexnode、datacoord、datanode)和其他功能配置(log、security、quotaAndLimits)。

🔑 重点关注etcd的endpoints、rootPath和auth配置;minio的address/port、bucketName、rootPath和cloudProvider配置;以及mq的pulsar.address/port、pulsar.tenant和msgChannel.chanNamePrefix.cluster配置,确保Milvus依赖组件的正确连接和隔离。

⚙️ 对于Milvus自身组件,proxy.maxFieldNum、proxy.maxVectorFieldNum、proxy.maxShardNum等配置限制了集合和分片的大小;querynode.mmap控制是否使用mmap,影响内存使用和搜索性能;datacoord.segment.maxSize、dataCoord.segment.diskSegmentMaxSize、dataCoord.segment.sealProportion等参数影响数据分片的大小和生命周期,进而影响查询性能。

📝 日志配置方面,生产环境建议使用info级别日志,测试环境建议使用debug级别。安全配置方面,common.security.authorizationEnabled开启安全验证,common.security.defaultRootPassword设置默认密码。quotaAndLimits中,重点关注flushRate、upsertRate和deleteRate,合理控制数据写入和删除的速率,避免影响系统性能。

原创 李成龙 2025-04-23 20:01 上海

Milvus 的配置参数有几百个,这些参数究竟该怎么配置

前言

最近在社区里经常听到一些小伙伴说,Milvus 的配置参数有几百个,这些参数究竟该怎么配置,Milvus 才能获得最佳的性能和稳定性。打开 Milvus 的配置文件 milvus.yaml,各个功能模块,从基础设施(存储、消息队列)到业务功能(查询、写入、索引),总共参数加起来超过了 500 多个,对于刚接触 Milvus 的朋友来说,确实无从下手。

其实 Milvus 的配置参数虽然很多,但是大部分的参数,我们平时基本都不需要关注,只需要深入理解其中的一些核心配置参数,就可以把 Milvus 运维得很好了。今天我们就从 milvus.yaml 入手,按照配置文件中的章节顺序,带大家一起来解读 Milvus 的核心配置参数及调优方案。

Milvus 的配置参数大体可以分为三大类:

01

Milvus 依赖组件配置

1.etcd

第一个依赖是 etcd, 这部分重点需要关注的配置有三个:

2.minio

第二个依赖是 minio,虽然这个模块的名字是"minio",但是在 Milvus 中,它其实指代的是所有的 OSS(Object Storage Service) client。 

换言之,我们总是使用 minio client 来操作所有的 OSS,可以是 S3、GCS、Aliyun OOS 或其他,通过这个模块下的 cloudProvider 参数配置 OSS 提供商。这块需要关注的重点配置有四个:

3.mq

最后一个依赖是消息队列 mq,也有三个配置值得重点关注:

Milvus 也支持 Kafka 作为 mq,开启时需要注释掉 pulsar 的相关配置,然后关闭 Kafka 配置的注释。

02

Milvus 自身组件配置

1.rootcoord

Milvus 第一个自身组件是 rootcoord,主要用来处理 DDL(data definition language )、DCL(data control language) 请求以及时间戳服务 TSO 的管理。这个组件需要关注如下几个配置:

2.proxy

Proxy 是 Milvus 用来接收和验证请求以及做结果合并的组件,里面需要关注的参数有:

3.querynode

Querycoord 负责监控管理 querynode 的状态以及节点间的负载均衡,配置基本都是内部使用,用户不需要关注太多,所以我们就跳过 querycoord 直接到 querynode。querynode 的配置参数很多,作为用户重点关注一个参数即可:

4.datacoord

Indexnode 没有用户侧需要关注的参数,我们直接跳过进入到 datacoord。datacoord 主要负责数据段(segment)的大小、生命周期,以及压缩管理,同时负责数据的垃圾回收。同时,之前的 indexcoord 的功能也合并进了 datacoord,所以现在的 datacoord 还负责 create index,indexnode 索引任务调度等职责。这块重点关注如下参数:

Datanode 是负责数据写入落盘的节点,相关的配置使用默认的参数即可,这里就不展开赘述了。

03

其他功能配置

1.log

Milvus 是一个组件众多的分布式系统,日志是帮助我们进行 trouble shooting 重要的工具,对于每一个用户都需要认真配置,推荐使用 Loki 这类专业的日志采集工具来收集分析 Milvus 的日志。

2.security

Milvus 支持用户鉴权,以及基于角色的权限管控(RBAC),相关配置在 common 模块下:

3.quotaAndLimits

quotaAndLimits 是 milvus.yaml 里占用篇幅很大的一块内容。Milvus 提供了非常多的限流的配置,包括写入、删除、查询等等。我们重点关注以下几个配置:

04

场景示例

通过前面的梳理,大家应该对 Milvus 里的核心配置参数有了一定了解,接下来我们再通过两个常见场景,告诉大家如何灵活配置使用这些参数。

Case 1:Performance First

对于性能要求比较高的场景,比如推荐系统,金融风控,大家一般都会选择图索引,Milvus 支持的常见图索引:HNSW,DISKANN。除了索引选择外,一般会同时配合调节如下参数:

Case 2Cost First

对于性能要求不严苛,但是成本比较敏感的场景,比如自动驾驶模型训练中的 corner case 图片搜索,超大规模知识库系统,我们可以利用索引量化或磁盘+内存的方式,在有限内存里装更多的数据,当然这样做的代价就是牺牲召回率或性能。索引的量化包括 SCANN,IVF_SQ8,以及 Milvus 2.5 推出的 HNSW_SQ/PQ/PRQ 索引;而使用磁盘的方式,一是可以使用磁盘索引,创建 Index 的时候选择 DISKANN 类型。第二种则是在配置文件中开启 mmap:

如果对于成本非常敏感,对于性能没有要求,推荐将 vectorField、vectorIndex、scalarField、scalarIndex 的 mmap 开关都打开。如果查询过程中需要用到标量字段且希望标量过滤性能足够快,可以将 vectorIndex、scalarIndex 的 mmap 开关关掉,来加速标量搜索的性能。需要注意的是,配合 mmap 使用的常见索引是 HNSW,这个索引会比原始数据膨胀 1.8 倍左右。所以当挂载了 100G 的磁盘,实际能装的数据只有 50G 左右,如果将原始数据也缓存到磁盘上,那么实际能装的数据就会更少,需要提前规划好磁盘空间。

05

结语

对于刚开始接触 Milvus 的朋友,把上面的这些参数理解清楚并进行正确配置,基本可以解决 80% 的配置使用问题。等对 Milvus 有了一定的使用经验和理解之后,推荐大家再次打开 milvus.yaml,对里面其他的配置参数,结合注释和源码去做更加深入地学习,相信又会有很多新的体悟。

作者介绍

李成龙

Zilliz 资深开源布道师


推荐阅读

官宣|如何找到精度与性能的黄金点,Zilliz推出调优高级参数

向量数据库如何助力Text2SQL处理高基数类别数据

技术分享|如何对 Milvus 2.0 进行参数配置

官宣|如何找到精度与性能的黄金点,Zilliz推出调优高级参数

点击“阅读原文”即可体验zillz cloud

阅读原文

跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Milvus 配置 调优 参数
相关文章