Operational FAQ

What if I failed to pull Milvus Docker image from Docker Hub?

Users in some countries may have limited access to Docker Hub. In this case, you can pull the Docker image from other registry mirrors. You can add the URL "" to the registry-mirrors array in /etc.docker/daemon.json.

  "registry-mirrors": [""]

Is Docker the only way to install and run Milvus?

No. You can also build Milvus from source code in Linux. See Build Milvus from source code for more information.

Why does Milvus return config check error?

The version of configuration file does not match the version your Milvus server.

Why do I get no space left on device when importing data to Milvus?

It is likely that you have not saved enough disk space.

Why is my recall rate unsatisfying?

You can increase the value of nprobe when searching from a client. The greater the value, the more accurate the result, and the more time it takes.

See Performance Tuning > Index for more information.

Why does my updated configuration not work?

You need to restart Milvus Docker each time you update the configuration file. See Milvus Server Configuration > Updating configurations.

How can I know if Milvus has started successfully?

Run sudo docker logs <container ID> to check if Milvus is running properly.

Why is the time in the log files different from the system time?

The log files in the Docker container use UTC time by default. If your host machine does not use UTC time, then the time in the log files is different. We recommend that you mount the log files onto your host machine to keep the time consistent between the log and the host.

How can I know whether my CPU supports Milvus?

The instruction sets that Milvus supports are SSE42, AVX, AVX2, and AVX512. Your CPU must support at least one of them for Milvus to function properly.

Why does Milvus return illegal instruction during startup?

If your CPU does not support SSE42, AVX, AVX2, or AVX512, Milvus cannot start properly. You can use cat /proc/cpuinfo to check the supported instruction sets.

How can I know whether my GPU is supported by Milvus?

Milvus supports CUDA architecture 6.0 or later. See Wikipedia for supported architectures.

Where is the script for starting the server in the Milvus Docker container?

It is at /var/lib/milvus/script/ in the Milvus Docker container.

Use any of the following methods:

Can I install Milvus on Windows?

Yes, so long as you have set up a Docker environment on your operating system.

How to fix the error when I install pymilvus on Windows?

Try installing pymilvus in a Conda environment.

Can I deploy Milvus service in an air-gapped environment?

Milvus is released as a Docker image. Follow these steps to deploy it from offline:

  1. Pull the latest Milvus Docker image when you have Internet access.

  2. Run docker save to save the Docker image as a TAR file.

  3. Transfer the TAR file to the air-gapped environment.

  4. Run docker load to load the file as a Docker image.

For more information about Docker, see

How can I differentiate if I have multiple Milvus nodes connected to Pushgateway?

You can add a Prometheus instance in prometheus.yaml. Then Prometheus or Granafa will show the monitoring data, as well as the source node.

Which database system should I use to manage Metadata, SQLite or MySQL?

We recommend using MySQL to manage Metadata in production environment.

How to calculate required memory based on the size of the dataset?

Different indexes require different memory space. You can use Milvus sizing tool to calculate the required memory for a vector search.

How to migrate data in Milvus?

Copy the entire db directory of the original Milvus service to the new directory. When restarting the Milvus service, map the copied db directory to the db directory of the Milvus service.

Note: Data formats of different versions may not be compatible with each other. The current data format is backward compatible with Milvus v0.7.0.

Can I increase my storage by adding interfaces such as S3 or GlusterFS?

No, you cannot. Milvus does not support this feature for now.

Why do I see WARN: increase temp memory to avoid cudaMalloc, or decrease query/add size (alloc 307200000 B, highwater 0 B) in the log file?

You receive this warning if the graphics memory required for a request is larger than the graphics memory allocated beforehand. The warning merely denotes an insufficient graphics memory. Milvus will expand the graphics memory accordingly.

Why does Milvus return database is locked?

If you use SQLite to manage Metadata, you receive this error message when write requests occur frequently. We recommend using MySQL for Metadata management. See Manage Metadata with MySQL.

Got an error Segmentation Fault from PyMilvus. What shall I do?

PyMilvus v1.1.0 allows you to download the latest version of the grpcio library. The server of Milvus v1.x is built on a earlier, customized version of gRPC, which is incompatible with the latest grpcio library. To fix this issue, either upgrade your PyMilvus version from v1.1.0 to v1.1.1 or roll back your grpcio library to 1.37.0:

pip install grpcio==1.37.0
pip install grpcio-tools==1.37.0

Can I specify the timeout for Milvus()?

Yes, PyMilvus v1.1.2 supports specifying the server connection timeout.

How to assign GPU devices to index/search?

In server_config.yaml file under /home/$USER/milvus/conf, you can assign GPU devices to index/search. See example:

  enable: true
  cache_size: 10GB
  gpu_search_threshold: 0
    - gpu0
    - gpu1
    - gpu2
    - gpu3
GPU 0,1,2,3 are first 4 GPUs from the list of GPU devices assigned to the docker container.

Still have questions?

You can:

  • Check out Milvus on GitHub. You're welcome to raise questions, share ideas, and help others.
  • Join our Slack community to find more help and have fun!
On this page