Milvus 3.5 vs 1.4参数有哪些差异?

99ANYc3cd6
预计阅读时长 25 分钟
位置: 首页 参数 正文
  1. 配置文件: 在启动 Milvus 之前,通过 milvus.yaml 文件进行配置,这是最常用、最核心的方式。
  2. 环境变量: 可以通过设置环境变量来覆盖配置文件中的参数。
  3. 运行时动态调整: 对于某些参数(如资源限制),可以通过 Milvus Dashboard 或 RESTful API 在运行时动态修改。

以下我将按照 核心组件关键功能 的分类,为您梳理 Milvus 2.4 中最重要的参数,并提供建议值。

milvus 35 1.4参数
(图片来源网络,侵删)

核心组件参数

这些参数定义了 Milvus 各个组件的行为和资源限制。

Milvus Server (milvus.yaml)

这是整个 Milvus 实例的入口,负责协调其他组件。

参数路径 参数名 描述 推荐值/说明
common metrics.enable 是否暴露 Prometheus 格式的监控指标。 true (强烈建议开启,用于监控)
common metrics.exportAddress 监控指标的暴露地址。 "0.0.0.0:9091"
common log.level 日志级别 (debug, info, warn, error, fatal)。 info (生产环境) / debug (调试)
common log.rootPath 日志文件存储路径。 "/var/log/milvus"
common log.format 日志格式 (text, json)。 json (便于日志收集和分析)
common log.maxSize 单个日志文件的最大大小。 "512MB"
common log.maxBackups 保留的日志文件最大数量。 "20"
common log.maxAge 日志文件保留的最大天数。 "30"
common log.compress 是否压缩旧日志文件。 true

Coordinator (Coordinator)

Milvus 中的协调器组件,负责元数据管理、数据分片、负载均衡等。

组件 参数路径 参数名 描述 推荐值/说明
Root Coordinator rootCoord address Root Coordinator 的监听地址。 "localhost"
Root Coordinator rootCoord port Root Coordinator 的监听端口。 53100
Root Coordinator rootCoord dmlChannelNum 用于数据写入/删除的 GRPC 通道数量。 2 (2 个足够,可根据写入并发量调整)
Root Coordinator rootCoord maxPartitionNum 一个 Collection 允许的最大分区数。 4096 (根据业务需求调整,默认值很大)
Query Coordinator queryCoord address Query Coordinator 的监听地址。 "localhost"
Query Coordinator queryCoord port Query Coordinator 的监听端口。 53101
Query Coordinator queryCoord autoHandoff 是否在索引构建完成后自动将数据分片从 Query Node 转移到 Data Node。 true (核心功能,必须开启)
Query Coordinator queryCoord minSegmentSizeToEnableIndex 启动索引构建的最小 Segment 大小。 1024 (根据数据量和延迟要求调整,值越小索引越频繁)
Data Coordinator dataCoord address Data Coordinator 的监听地址。 "localhost"
Data Coordinator dataCoord port Data Coordinator 的监听端口。 53102
Data Coordinator dataCoord compaction.enable 是否启用数据合并。 true (核心功能,用于数据清理和提升查询性能)
Data Coordinator dataCoord compaction.level0.maxSegments Level-0 合并的触发条件,当 Segment 数量达到此值时触发。 8 (根据写入频率调整,值越大延迟越高,I/O 效率越好)
Data Coordinator dataCoord compaction.level1.maxSize Level-1 合并的目标大小,当总大小超过此值时触发。 8192 (单位 MB,根据磁盘容量和查询性能要求调整)
Data Coordinator dataCoord retentionDuration 数据保留时长。 "0" (表示永久保留,按需设置)

Node (Worker)

这些是真正执行数据存储和计算的节点。

milvus 35 1.4参数
(图片来源网络,侵删)
组件 参数路径 参数名 描述 推荐值/说明
Data Node dataNode address Data Node 的监听地址。 "localhost"
Data Node dataNode port Data Node 的监听端口。 53103
Data Node dataNode grpc.serverMaxRecvMsgSize Data Node GRPC 服务接收的最大消息大小。 1073741824 (1GB,处理大查询结果时可能需要)
Data Node dataNode grpc.serverMaxSendMsgSize Data Node GRPC 服务发送的最大消息大小。 1073741824 (1GB)
Query Node queryNode address Query Node 的监听地址。 "localhost"
Query Node queryNode port Query Node 的监听端口。 53104
Query Node queryNode gpu.enable 是否启用 GPU 加速。 false / true (如果服务器有 NVIDIA GPU)
Query Node queryNode cache.enable 是否启用缓存。 true (能显著提升热点数据的查询速度)
Query Node queryNode cache.memoryLimit 缓存内存上限。 4GB (根据服务器内存大小设置,通常是总内存的 10%-20%)

关键功能与性能参数

这些参数直接影响 Milvus 的性能、可用性和数据一致性。

存储

Milvus 2.4 主要使用对象存储(如 S3, GCS, MinIO)来持久化数据和元数据。

参数路径 参数名 描述 推荐值/说明
etcd endpoints etcd 集群的地址,用于存储元数据。 ["localhost:2379"] (生产环境推荐 3 或 5 节点集群)
minio address 对象存储服务的地址。 "localhost:9000"
minio accessKeyID / secretAccessKey 对象存储的访问密钥。 根据你的存储服务配置
minio useSSL 是否使用 HTTPS 连接对象存储。 false (内网) / true (公网)
minio bucketName 存储数据的桶名称。 自定义,如 "milvus-bucket"
minio rootPath 在桶内的根路径。 "files"
minio cloudProvider 云服务商类型 ("aws", "gcp", "azure", "minio")。 "minio" (自建) / 对应云服务商
minio region 云存储的区域。 根据云服务商配置

消息队列

Milvus 使用消息队列(如 Pulsar, Kafka)来解耦数据写入和索引构建。

参数路径 参数名 描述 推荐值/说明
pulsar address Pulsar 集群的地址。 "localhost:6650"
pulsar webServiceUrl Pulsar Web 服务的地址。 "http://localhost:8080"
pulsar useTls 是否启用 TLS。 false
pulsar messageTTL 消息的生存时间。 "24h" (确保消息在被消费前不会被清理)

性能与资源

这些参数控制 Milvus 的资源使用和性能调优。

milvus 35 1.4参数
(图片来源网络,侵删)
参数路径 参数名 描述 推荐值/说明
local path 如果使用本地存储,数据存放的路径。 不推荐在生产环境使用,仅用于测试。
quota enabled 是否启用配额管理,限制资源使用。 false / true (多租户环境建议开启)
quota quotaCenter.enabled 是否启用配额中心。 false / true (与 quota.enabled 配合使用)
general timeTickInterval 内部任务调度的时间间隔。 "1s" (通常无需修改)
general vm.enabled 是否启用虚拟内存管理,用于处理比物理内存更大的数据集。 false (对性能影响大,仅在特殊场景下考虑)

Docker Compose 示例

一个典型的 docker-compose.yml 文件会体现上述大部分参数的配置。

version: '3.5'
services:
  etcd:
    container_name: etcd
    image: quay.io/coreos/etcd:v3.5.0
    environment:
      - ETCD_AUTO_COMPACTION_MODE=revision
      - ETCD_AUTO_COMPACTION_RETENTION=1000
      - ETCD_QUOTA_BACKEND_BYTES=4294967296 # 4GB
    volumes:
      - ./volumes/etcd/data:/etcd
    ports:
      - "2379:2379"
      - "2380:2380"
  minio:
    container_name: minio
    image: minio/minio:RELEASE.2025-03-20T20-16-18Z
    environment:
      - MINIO_ACCESS_KEY=minioadmin
      - MINIO_SECRET_KEY=minioadmin
    volumes:
      - ./volumes/minio/data:/data
    command: minio server /data --console-address ":9001"
    ports:
      - "9000:9000"
      - "9001:9001"
  pulsar:
    container_name: pulsar
    image: apachepulsar/pulsar:3.0.0
    volumes:
      - ./volumes/pulsar/data:/pulsar/data
      - ./volumes/pulsar/conf:/pulsar/conf
    ports:
      - "6650:6650"
      - "8080:8080"
    command: bin/pulsar standalone
  milvus-standalone:
    container_name: milvus-standalone
    image: milvusdb/milvus:v2.4.0
    command: ["milvus", "run", "standalone"]
    environment:
      - ETCD_ENDPOINTS=etcd:2379
      - MINIO_ADDRESS=minio:9000
      - PULSAR_ADDRESS=pulsar:6650
    volumes:
      - ./volumes/milvus:/var/lib/milvus
    ports:
      - "19530:19530"
      - "9091:9091" # Prometheus metrics
    depends_on:
      - etcd
      - minio
      - pulsar

总结与最佳实践

  1. 生产环境部署:

    • 组件分离: 将 etcd, minio, pulsarmilvus 部署在不同的节点或容器中,避免单点故障和资源争抢。
    • 资源充足: 为每个组件分配足够的 CPU 和内存,特别是 queryNodedataNode,它们是计算密集型服务。
    • 监控告警: 务必开启 metrics.enable,并使用 Prometheus + Grafana 对 Milvus 进行全方位监控和告警。
    • 持久化存储: 生产环境 必须使用对象存储(MinIO, S3, GCS),而不是本地存储。
  2. 性能调优:

    • 索引: 选择合适的索引类型(如 IVF_FLAT, HNSW)和参数(nlist, ef)对查询性能至关重要。
    • 合并: compaction 参数的调整需要在查询延迟和写入/删除延迟之间找到平衡。level0.maxSegments 越小,索引越频繁,查询延迟越低,但写入压力越大。
    • 缓存: 启用 queryNode.cache 并合理设置 memoryLimit,可以大幅提升热点数据的查询速度。
  3. 高可用:

    • Milvus 2.4 支持多节点部署,通过增加 rootCoord, queryCoord, dataCoord 的副本数来实现高可用,请参考官方文档进行 HA 集群部署。

这份参数列表涵盖了 Milvus 2.4 的绝大部分核心配置,在实际应用中,建议从官方推荐的默认配置开始,然后根据您的具体业务场景(数据量、查询模式、SLA 要求)进行逐步调优。

-- 展开阅读全文 --
头像
索尼SWR10智能手环有何独特功能?
« 上一篇 01-30
VAIO E系列参数有哪些核心差异?
下一篇 » 01-30

相关文章

取消
微信二维码
支付宝二维码

最近发表

标签列表

目录[+]