分布式版 Milvus 系统配置

分布式版 Milvus 通过系统配置项控制系统运行。所有配置项均可在服务启动前在相应配置文件中手动设置。各配置项的默认值可以直接投入使用。

所有参数设置在 Milvus 启动时生效。

Milvus 集群的管理员需要通过更改以下配置项维护集群运行。

etcd 配置

etcd 是系统的元数据引擎,支撑底层的元数据存储与访问。你可以在 milvus.yaml 中设置这些参数。

如使用默认 milvus-cluster-docker-compose.yml 文件启动第三方服务,则无需修改该部分参数。

参数 说明 默认值
etcd.endpoints
etcd 节点
  • 环境变量:ETCD_ENDPOINTS
  • etcd 监听请求的有效地址,用于访问 etcd 服务。
  • Milvus 启动时,优先从环境变量 ETCD_ENDPOINTS 获得有效地址。
  • 对于已存在的 etcd 集群,请将该参数改为当前 etcd 节点。
  • localhost:2379
    etcd.rootPath
    etcd 存储数据的 key 前缀
  • Milvus 向 etcd 存储数据使用的 key 前缀
  • 在使用 Milvus 一段时间后,请不要轻易更改这个参数。更改之后您将无法正确访问之前的数据。
  • 推荐在初次使用 Milvus 前修改这个参数。
  • 对于已存在的 etcd 服务,请为 Milvus 设置一个容易辨析的 key 前缀,推荐使用 "milvus-root"。
  • "by-dev"

    MinIO/S3 配置

    Milvus 支持 MinIO 以及 Amazon S3 作为系统的存储引擎,支撑日志文件与索引文件的持久化存储。由于 MinIO 兼容 S3,你可以将以下配置项直接修改为你的 S3 服务配置。你可以在 milvus.yaml 中设置这些参数。

    如使用默认 milvus-cluster-docker-compose.yml 文件启动第三方服务,则无需修改该部分参数。

    参数 说明 默认值
    minio.address
    MinIO/S3 监听请求的 IP 地址
  • 环境变量:MINIO_ADDRESS
  • MinIO/S3 监听请求的 IP 地址,用于访问 MinIO/S3 服务。minio.addressminio.port 共同组成 MinIO/S3 监听请求的有效地址。
  • Milvus 启动时,优先从环境变量 MINIO_ADDRESS 获得有效 IP 地址。
  • 默认值适用于 MinIO/S3 与 Milvus 运行于相同的网络中。
  • Milvus 2.0 使用非安全模式访问 MinIO。后续版本将支持安全模式访问 MinIO。
  • localhost
    minio.port
    MinIO/S3 监听请求的端口
  • 环境变量:MINIO_ADDRESS
  • MinIO/S3 监听请求的端口,用于访问 MinIO 服务。minio.addressminio.port 共同组成 MinIO/S3 监听请求的有效地址。
  • Milvus 启动时,优先从环境变量 MINIO_ADDRESS 获得有效端口。
  • 9000
    minio.AccessKeyID
    MinIO/S3 给用户授权访问的密钥 ID
  • 环境变量:MINIO_ACCESS_KEY
  • MinIO/S3 颁发给用户的访问服务所需要的密钥 ID,用于做身份认证。minio.accessKeyIDminio.secretAccessKey 共同用于访问 MinIO/S3 服务。
  • 此配置项需要与 MinIO/S3 服务启动时所需要的环境变量 MINIO_ACCESS_KEY相同。默认值适用于使用默认 docker-compose.yml 文件启动 Milvus。
  • minioadmin
    minio.secretAccessKey
    MinIO/S3 加密字符串
  • 环境变量:MINIO_SECRET_KEY
  • 用于加密签名字符串和服务器端验证签名字符串的密钥,须严格保密,仅用户与 MinIO/S3 服务端可见。
  • 此配置项需要与 MinIO/S3 服务启动时所需要的环境变量 MINIO_SECRET_KEY相同。默认值适用于使用默认 docker-compose.yml 文件启动 Milvus。
  • minioadmin

    Pulsar 配置

    Pulsar 是系统的日志流底层引擎,支撑日志流的可靠存储与发布/订阅。你可以在 milvus.yaml 中设置这些参数。

    如使用默认 milvus-cluster-docker-compose.yml 文件启动第三方服务,则无需修改该部分参数。

    参数 说明 默认值
    pulsar.address
    Pulsar 监听请求的 IP 地址
  • 环境变量:PULSAR_ADDRESS
  • Pulsar 监听请求的 IP 地址,用于访问 MinIO 服务。pulsar.addresspulsar.port 共同组成 Pulsar 监听请求的有效地址。
  • Milvus 启动时,优先从环境变量 PULSAR_ADDRESS 获得有效 IP 地址。
  • 默认值适用于 Pulsar 与 Milvus 运行于相同的网络中。
  • localhost
    pulsar.port
    Pulsar 监听请求的端口
  • 环境变量:PULSAR_ADDRESS
  • Pulsar 监听请求的端口,用于访问 MinIO 服务。pulsar.addresspulsar.port 共同组成 Pulsar 监听请求的有效地址。
  • Milvus 启动时,优先从环境变量 PULSAR_ADDRESS 获得有效 IP 地址。
  • 6650

    服务地址配置

    服务地址配置用于设定 Milvus 服务监听请求的 IP 地址和端口。你可以在 milvus.yaml 中设置这些参数。

    参数 说明 默认值
    rootCoord.address
    root coordinator 的 TCP/IP 地址 如果将该参数设置为 0.0.0.0,root coordinator 将会在所有 IPv4 地址监听。
    localhost
    rootCoord.port root coordinator 的 TCP 端口 53100
    proxy.port 监听 Milvus 的 TCP 端口 19530
    queryCoord.address
    query coordinator 的 TCP/IP 地址 如果将该参数设置为 0.0.0.0,query coordinator 将会在所有 IPv4 地址监听。
    localhost
    queryCoord.port query coordinator 的 TCP 端口 19531
    queryNode.port query node 的 TCP 端口 21123
    indexCoord.address index coordinator 的 TCP/IP 地址 localhost
    indexCoord.port index coordinator 的 TCP 端口 31000
    indexNode.port index node 的 TCP 端口 21121
    dataCoord.address data coordinator 的 TCP/IP 地址 localhost
    dataCoord.port data coordinator 的 TCP 端口 13333
    dataNode.port data node 的 TCP 端口 21124

    系统行为配置

    系统行为配置用于设定 Milvus 运行时的系统行为。你可以在 milvus.yamlroot_coord.yamldata_coord.yaml、 以及 data_node.yaml 中设置这些参数。

    参数 说明 默认值
    queryNode.gracefulTime
    新 insert 数据可被搜索的最短时间
  • 单位:ms
  • search 消息时间戳早于 query node 系统时间的时候,Milvus 直接执行此查询命令。
  • search 消息时间戳晚于 query node 系统时间的时候,Milvus 会等待 query node 系统时间推进直至两者时间差小于该参数后执行此查询命令。
  • 1000
    rootcoord.minSegmentSizeToEnableIndex
    Milvus 允许为 segment 创建索引的最小行数
  • 该参数用于设定 Milvus 允许为 segment 创建索引的日志文件最小行数。
  • 1024
    datacoord.segment.maxSize
    单个 segment 的大小上限
  • 单位:MB
  • datacoord.segment.maxSizedatacoord.segment.sealProportion 共同决定一个 segment 可以关闭(sealed)的条件。通常情况下,一个已关闭的(sealed)segment 文件大小大约在 384 至 512 MB 之间。
  • 512
    datacoord.segment.sealProportion
    单个 segment 的真实数据大小占 datacoord.segment.maxSize的最大比例
  • 当单个 segment 的真实数据大小与 datacoord.segment.maxSize的比例超过该参数,此 segment 可以被关闭(sealed)。
  • 0.75
    dataNode.flush.insertBufSize
    内存中一个 segment 缓存 insert 数据的最大行数
  • 当内存中缓存的数据超过这个值时,data node 会将所有的缓存数据打包为 1 组 binlog 文件存储在 MinIO/S3 上。
  • 设定该参数与数据量大小相关。如果设定过小,系统会频繁将少量数据存盘,如果设定过大,系统的内存需求会增高。
  • 默认值适用于大多数场景。对于 128 维浮点型向量,32000 行数据会生成约 16 MB 的 binlog 文件。
  • 32000
    该页面是否对你有帮助?
    评价成功!