Milvus System Configurations Checklist
This topic introduces the general sections of the system configurations in Milvus.
Milvus maintains a considerable number of parameters that configure the system. Each configuration has a default value, which can be used directly. You can modify these parameters flexibly so that Milvus can better serve your application. See Configure Milvus for more information.
Sections
For the convenience of maintenance, Milvus classifies its configurations into %s sections based on its components, dependencies, and general usage.
etcd
Related configuration of etcd, used to store Milvus metadata & service discovery.
See etcd-related Configurations for detailed description for each parameter under this section.
metastore
See metastore-related Configurations for detailed description for each parameter under this section.
tikv
Related configuration of tikv, used to store Milvus metadata.
Notice that when TiKV is enabled for metastore, you still need to have etcd for service discovery.
TiKV is a good option when the metadata size requires better horizontal scalability.
See tikv-related Configurations for detailed description for each parameter under this section.
localStorage
See localStorage-related Configurations for detailed description for each parameter under this section.
minio
Related configuration of MinIO/S3/GCS or any other service supports S3 API, which is responsible for data persistence for Milvus.
We refer to the storage service as MinIO/S3 in the following description for simplicity.
See minio-related Configurations for detailed description for each parameter under this section.
mq
Milvus supports four MQ: rocksmq(based on RockDB), natsmq(embedded nats-server), Pulsar and Kafka.
You can change your mq by setting mq.type field.
If you don’t set mq.type field as default, there is a note about enabling priority if we config multiple mq in this file.
standalone(local) mode: rocksmq(default) > natsmq > Pulsar > Kafka
cluster mode: Pulsar(default) > Kafka (rocksmq and natsmq is unsupported in cluster mode)
See mq-related Configurations for detailed description for each parameter under this section.
pulsar
Related configuration of pulsar, used to manage Milvus logs of recent mutation operations, output streaming log, and provide log publish-subscribe services.
See pulsar-related Configurations for detailed description for each parameter under this section.
rocksmq
If you want to enable kafka, needs to comment the pulsar configs
kafka:
brokerList:
saslUsername:
saslPassword:
saslMechanisms:
securityProtocol:
ssl:
enabled: false # whether to enable ssl mode
tlsCert: # path to client's public key (PEM) used for authentication
tlsKey: # path to client's private key (PEM) used for authentication
tlsCaCert: # file or directory path to CA certificate(s) for verifying the broker's key
tlsKeyPassword: # private key passphrase for use with ssl.key.location and set_ssl_cert(), if any
readTimeout: 10
See rocksmq-related Configurations for detailed description for each parameter under this section.
natsmq
natsmq configuration.
more detail: https://docs.nats.io/running-a-nats-service/configuration
See natsmq-related Configurations for detailed description for each parameter under this section.
rootCoord
Related configuration of rootCoord, used to handle data definition language (DDL) and data control language (DCL) requests
See rootCoord-related Configurations for detailed description for each parameter under this section.
proxy
Related configuration of proxy, used to validate client requests and reduce the returned results.
See proxy-related Configurations for detailed description for each parameter under this section.
queryCoord
Related configuration of queryCoord, used to manage topology and load balancing for the query nodes, and handoff from growing segments to sealed segments.
See queryCoord-related Configurations for detailed description for each parameter under this section.
queryNode
Related configuration of queryNode, used to run hybrid search between vector and scalar data.
See queryNode-related Configurations for detailed description for each parameter under this section.
indexCoord
See indexCoord-related Configurations for detailed description for each parameter under this section.
indexNode
See indexNode-related Configurations for detailed description for each parameter under this section.
dataCoord
See dataCoord-related Configurations for detailed description for each parameter under this section.
dataNode
See dataNode-related Configurations for detailed description for each parameter under this section.
msgChannel
This topic introduces the message channel-related configurations of Milvus.
See msgChannel-related Configurations for detailed description for each parameter under this section.
log
Configures the system log output.
See log-related Configurations for detailed description for each parameter under this section.
grpc
See grpc-related Configurations for detailed description for each parameter under this section.
tls
Configure the proxy tls enable.
See tls-related Configurations for detailed description for each parameter under this section.
common
See common-related Configurations for detailed description for each parameter under this section.
quotaAndLimits
QuotaConfig, configurations of Milvus quota and limits.
By default, we enable:
TT protection;
Memory protection.
Disk quota protection.
You can enable:
DML throughput limitation;
DDL, DQL qps/rps limitation;
DQL Queue length/latency protection;
DQL result rate protection;
If necessary, you can also manually force to deny RW requests.
See quotaAndLimits-related Configurations for detailed description for each parameter under this section.
trace
See trace-related Configurations for detailed description for each parameter under this section.
gpu
#when using GPU indexing, Milvus will utilize a memory pool to avoid frequent memory allocation and deallocation.
#here, you can set the size of the memory occupied by the memory pool, with the unit being MB.
#note that there is a possibility of Milvus crashing when the actual memory demand exceeds the value set by maxMemSize.
#if initMemSize and MaxMemSize both set zero,
#milvus will automatically initialize half of the available GPU memory,
#maxMemSize will the whole available GPU memory.
See gpu-related Configurations for detailed description for each parameter under this section.