Milvus Cluster System Configurations

Milvus cluster maintains many system variables that configure the operation. All configurations can be set manually before server startup. Each configuration has a default value, which can be used directly.

If you are an administrator of a Milvus cluster, you may access the following configurations to maintain the cluster operation. You can set these configurations in milvus.yaml under milvus/configs directory.

etcd Configurations

etcd is the metadata engine supporting Milvus' metadata storage and access.

You do not need to change this session if you use the default docker-compose.yml for third-party services.

Configuration Description Default Value
etcd.endpoints
Endpoints of etcd
  • Environment variable: ETCD_ENDPOINTS
  • Access etcd service with etcd.endpoints.
  • etcd preferentially acquires valid address from environment variable ETCD_ENDPOINTS when Milvus is booted up.
  • You can change this parameter as the endpoints of your own etcd cluster.
  • localhost:2379
    etcd.rootPath
    Root of key prefix to etcd
  • Milvus stores data in etcd with this root key prefix.
  • Be careful with changing this configuration if you have used Milvus for a period of time. Changes to this configuration will affect your access to old data.
  • We recommend changing this configuration before using Milvus for the first time.
  • Set an easy-to-identify root key prefix for Milvus if etcd already exists. We recommend setting it as "milvus-root".
  • "by-dev"

    MinIO Configurations

    MinIO is the storage engine supporting Milvus' data persistence for insert log files and index files. You can set these configurations in milvus.yaml under milvus/configs directory.

    You do not need to change this session if you use the default docker-compose.yml for third-party services.

    Configuration Description Default Value
    minio.address
    IP address of MinIO
  • Environment variable: MINIO_ADDRESS
  • Access MinIO service with minio.address. minio.address and minio.port together generates the valid access to MinIO.
  • MinIO preferentially acquires the valid address from the environment variable MINIO_ADDRESS when Milvus is booted up.
  • Default value applies when MinIO and Milvus are running on the same network.
  • Milvus 2.0 uses non-secure mode to access MinIO. Upcoming Milvus versions will support secure access to MinIO.
  • localhost
    minio.port
    Port of MinIO
  • Environment variable: MINIO_ADDRESS
  • Access MinIO service with minio.address. minio.address and minio.port together generates the valid access to MinIO.
  • MinIO preferentially acquires the valid port from the environment variable MINIO_ADDRESS when Milvus is booted up.
  • 9000
    minio.AccessKeyID
    MinIO key ID for authorized user access
  • Environment variable: MINIO_ACCESS_KEY
  • Access key ID that MinIO issued to authorized users. minio.accessKeyID and minio.secretAccessKey together is used for identity authentication to access the MinIO service.
  • This configuration must be set identical to the environment variable MINIO_ACCESS_KEY, which is necessary for booting up MinIO. The default value applies to the MinIO service that booted up with the default docker-compose.yml provided by Milvus.
  • minioadmin
    minio.secretAccessKey
    MinIO encryption string
  • Environment variable: MINIO_SECRET_KEY
  • Secret key used to encrypt the signature string and verify the signature string on server. It must be kept strictly confidential and accessible only to the MinIO server and users.
  • This configuration must be set identical to the environment variable MINIO_SECRET_KEY, which is necessary for booting up MinIO. The default value applies to the MinIO service that booted up with the default docker-compose.yml provided by Milvus.
  • minioadmin

    Pulsar Configurations

    Pulsar is the underlying engine supporting Milvus' reliable storage and pub/sub of log streams. You can set these configurations in milvus.yaml under milvus/configs directory.

    You do not need to change this session if you use the default docker-compose.yml for third-party services.

    Configuration Description Default Value
    pulsar.address
    IP address of Pulsar
  • Environment variable: PULSAR_ADDRESS
  • Access Pulsar service with pulsar.address. pulsar.address and pulsar.port together generates the valid access to Pulsar. Pulsar preferentially acquires the valid address from the environment variable PULSAR_ADDRESS when Milvus is booted up.
  • The default value applies when Pulsar and Milvus are running on the same network.
  • localhost
    pulsar.port
    Port of Pulsar
  • Environment variable: PULSAR_ADDRESS
  • Access Pulsar service with pulsar.port. pulsar.address and pulsar.port together generates the valid access to Pulsar. Pulsar preferentially acquires the valid address from the environment variable PULSAR_ADDRESS when Milvus is booted up.
  • 6650

    Server Address Configurations

    This session configures the IP address and port of the monitor request from Milvus. You can set these configurations in milvus.yaml under milvus/configs directory.

    Configuration Description Default Value
    rootCoord.address
    TCP/IP address of root coordinator
  • If you set this parameter as 0.0.0.0, root coordinator monitors all IPv4 addresses.
  • This parameter takes effect only after being configured at startup of Milvus.
  • localhost
    rootCoord.port
    TCP port of root coordinator
  • This parameter takes effect only after being configured at startup of Milvus.
  • 53100
    proxy.port
    TCP port for monitoring Milvus
  • This parameter takes effect only after being configured at the startup of Milvus.
  • 19530
    queryCoord.address
    TCP/IP address of query coordinator
  • If you set this parameter as 0.0.0.0, query coordinator monitors all IPv4 addresses.
  • This parameter takes effect only after being configured at startup of Milvus.
  • localhost
    queryCoord.port
    TCP port of query coordinator
  • This parameter takes effect only after being configured at startup of Milvus.
  • 19531
    queryNode.port
    TCP port of query node
  • This parameter takes effect only after being configured at startup of Milvus.
  • 21123
    indexCoord.address
    TCP/IP address of index coordinator
  • This parameter takes effect only after being configured at startup of Milvus.
  • localhost
    indexCoord.port
    TCP port of index coordinator
  • This parameter takes effect only after being configured at startup of Milvus.
  • 31000
    indexNode.port
    TCP port of index node
  • This parameter takes effect only after being configured at startup of Milvus.
  • 21121
    dataCoord.address
    TCP/IP address of data coordinator
  • This parameter takes effect only after being configured at startup of Milvus.
  • localhost
    dataCoord.port
    TCP port of data coordinator
  • This parameter takes effect only after being configured at startup of Milvus.
  • 13333
    dataNode.port
    TCP port of data node
  • This parameter takes effect only after being configured at startup of Milvus.
  • 21124

    System Behavior Configurations

    This session configures the system behaviors of Milvus. You can set these configurations in milvus.yaml under milvus/configs directory, and root_coord.yaml, data_coord.yaml, data_node.yaml under milvus/configs/advanced directory.

    Configuration Description Default Value
    queryNode.gracefulTime
    Minimum time before the newly inserted data can be searched
  • Unit: ms
  • Milvus executes this query command directly when the search message timestamp is earlier the query node system time.
  • When the search message timestamp is later than the query node system time, the search message waits for the query node system time to advance until the time difference between them is less than the value set in queryNode.gracefulTime, and then Milvus executes the query demand.
  • 1000
    rootcoord.minSegmentSizeToEnableIndex
    The minimum row count in a segment required for creating index
  • This parameter specifies the minimum row count in a log file required for creating segment index.
  • 1024
    datacoord.segment.maxSize
    Maximum size of a segment
  • Unit: MB
  • datacoord.segment.maxSize and datacoord.segment.sealProportion together determine if a segment can be sealed. Generally, the segment size ranges from 384 MB to 512 MB.
  • 512
    datacoord.segment.sealProportion
    Maximum proportion of a segment’s actual size comparing to datacoord.segment.size
  • When actual proportion is greater than the set value, the corresponding segment can be sealed.
  • 0.75
    dataNode.flush.insertBufSize
    Maximum row count of a segment buffered in memory
  • Data node packs all buffered data into a binlog file and stores the file in MinIO/S3 when the row count of the data in memory exceeds this value.
  • Setting this parameter is associated with the data size. If it is set too small, the system stores data in small size too frequently. If it is set too large, the system's demand for memory will increase.
  • The default value applies to most scenarios. For a 128-dimensions floating-point vector, 32000 rows of data generate a binlog file of approximately 16 MB.
  • 32000
    Is this page helpful?
    Scored Successfully!