• FAQs

Operational FAQ

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

If you failed to pull the Milvus Docker image from Docker Hub, try adding other registry mirrors.

Users from Mainland China 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?

Docker is an efficient way to deploy Milvus, but not the only way. You can also deploy Milvus from source code. This requires Ubuntu (18.04 or higher) or CentOS (7 or higher). See Building Milvus from Source Code for more information.

What are the main factors affecting recall?

Recall is affected mainly by index type and search parameters.

For FLAT index, Milvus takes an exhaustive scan within a collection, with a 100% return.

For IVF indexes, the nprobe parameter determines the scope of a search within the collection. Increasing nprobe increases the proportion of vectors searched and recall, but diminishes query performance.

For HNSW index, the ef parameter determines the breadth of the graph search. Increasing ef increases the number of points searched on the graph and recall, but diminishes query performance.

For more information, see Vector Indexing.

Why did my changes to the configuration files not take effect?

Milvus v2.0 does not support modification to configuration files during runtime. You must restart Milvus Docker for configuration file changes to take effect.

How do I know if Milvus has started successfully?

If Milvus is started using Docker Compose, run docker ps to observe how many Docker containers are running and check if Milvus services started correctly.

  • For Milvus standalone, you should be able to observe at least three running Docker containers, one being the Milvus service and the other two being etcd management and storage service. For more information, see Installing Milvus Standalone.
  • For Milvus Cluster, you should be able to observe at least twelve running Docker containers, nine for the Milvus service and three for basic services. For more information, see Installing Milvus Cluster.

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

The time difference is usually due to the fact that the host machine does not use Coordinated Universal Time (UTC).

The log files inside the Docker image use UTC by default. If your host machine does not use UTC, this issue may occur.

How do I know if my CPU supports Milvus?

Milvus' computing operations depend on CPU’s support for SIMD (Single Instruction, Multiple Data) extension instruction set. Whether your CPU supports SIMD extension instruction set is crucial to index building and vector similarity search within Milvus. Ensure that your CPU supports at least one of the following SIMD instruction sets:

  • SSE4.2
  • AVX
  • AVX2
  • AVX512

Run the lscpu command to check if your CPU supports the SIMD instruction sets mentioned above:

$ lscpu | grep -e sse4_2 -e avx -e avx2 -e avx512

Why does Milvus return illegal instruction during startup?

Milvus requires your CPU to support a SIMD instruction set: SSE4.2, AVX, AVX2, or AVX512. CPU must support at least one of these to ensure that Milvus operates normally. An illegal instruction error returned during startup suggests that your CPU does not support any of the above four instruction sets.

See CPU’s support for SIMD Instruction Set.

Can I install Milvus on Windows?

Yes. You can install Milvus on Windows either by compiling from source code or from a binary package.

See Run Milvus 2.0 on Windows to learn how to install Milvus on Windows.

I got an error when installing pymilvus on Windows. What shall I do?

It is not recommended to install PyMilvus on Windows. But if you have to install PyMilvus on Windows but got an error, try installing it in a Conda environment. See Install Milvus SDK for more information about how to install PyMilvus in the Conda environment.

Can I deploy Milvus when disconnected from the Internet?

Yes. You can install Milvus in an offline environment. See Install Milvus Offline for more information.

Where can I find the logs generated by Milvus?

The Milvus log is printed to stout (standard output) and stderr (standard error) by default, however we highly recommend redirecting your log to a persistent volume in production. To do so, update log.file.rootPath in milvus.yaml. And if you deploy Milvus with milvus-helm chart, you also need to enable log persistence first via --set log.persistence.enabled=true.

If you didn't change the config, using kubectl logs <pod-name> or docker logs CONTAINER can also help you to find the log.

Can I create index for a segment before inserting data into it?

Yes, you can. But we recommend inserting data in batches, each of which should not exceed 256 MB, before indexing each segment.

Still have questions?

You can:

  • Check out Milvus on GitHub. Feel free to ask questions, share ideas, and help others.
  • Join our Milvus Forum or Slack Channel to find support and engage with our open-source community.