安装 Milvus、SDK 和 CLI
通过 docker-compose 安装运行 Milvus
Run Milvus with Docker Compose (Linux)
下载 docker-compose.yml
wget https://github.com/milvus-io/milvus/releases/download/v2.5.4/milvus-standalone-docker-compose.yml -O docker-compose.yml或者使用 curl 经过代理下载:
curl -L --proxy http://127.0.0.1:11111 https://github.com/milvus-io/milvus/releases/download/v2.5.4/milvus-standalone-docker-compose.yml -o docker-compose.yml拉取镜像
可以查看都包含哪些镜像:
cat docker-compose.yml | grep image拉取相关镜像:
- 若拉取较慢,可以换别的源,并将
docker-compose.yml中的对应image替换为新的源 - 或者加上环境变量
https_proxy=http://127.0.0.1:11111使用代理
docker pull quay.io/coreos/etcd:v3.5.0 # docker pull rancher/mirrored-coreos-etcd:v3.5.0
docker pull minio/minio:RELEASE.2020-12-03T00-03-10Z
docker pull milvusdb/milvus:v2.5.4自定义配置
Configure Milvus with Docker Compose | Milvus Documentation
下载默认配置文件:
wget http://raw.staticdn.net/milvus-io/milvus/v2.5.4/configs/milvus.yaml修改 milvus.yaml 中相关的项,例如:
- 提高 vector 类型的列数限制:
maxVectorFieldNum从4改为10 - 关闭自动段合并(否则会周期性地高占用CPU):
enableCompaction从true改为false
proxy:
maxVectorFieldNum: 10 # The maximum number of vector fields that can be specified in a collection. Value range: [1, 10].
dataCoord:
# Switch value to control if to enable segment compaction.
# Compaction merges small-size segments into a large segment, and clears the entities deleted beyond the rentention duration of Time Travel.
enableCompaction: false在 docker-compose.yml 中添加对应的 volumes:
services:
...
standalone:
container_name: milvus-standalone
image: milvusdb/milvus:v2.5.4
command: ["milvus", "run", "standalone"]
...
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/milvus.yaml:/milvus/configs/milvus.yaml
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvus运行 Milvus
docker compose up或者更完整一点:
docker compose build && docker compose down && docker compose up查看运行状态:
docker compose ps如果正常运行,输出形如:
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
milvus-etcd quay.io/coreos/etcd:v3.5.16 "etcd -advertise-cli…" etcd About a minute ago Up About a minute (healthy) 2379-2380/tcp
milvus-minio minio/minio:RELEASE.2023-03-20T20-16-18Z "/usr/bin/docker-ent…" minio About a minute ago Up About a minute (healthy) 0.0.0.0:9000-9001->9000-9001/tcp, :::9000-9001->9000-9001/tcp
milvus-standalone milvusdb/milvus:v2.5.4 "/tini -- milvus run…" standalone About a minute ago Up About a minute (healthy) 0.0.0.0:9091->9091/tcp, :::9091->9091/tcp, 0.0.0.0:19530->19530/tcp, :::19530->19530/tcp常见问题
minio 报错
milvus-minio | ERROR Unable to use the drive /minio_data: Drive /minio_data: found backend type fs, expected xl or xl-single原因:运行过不同版本的 docker-compose.yml,导致 minio 数据格式不兼容
解决:删除 volumes 目录,重新运行
周期性高 CPU 占用
[Bug]: Milvus (2.5.4) periodically utilizing high cpu, even when there is no in-progress tasks of query and index. · Issue #39830 · milvus-io/milvus
原因:Milvus 默认开启了自动段合并(compaction)
解决:将 milvus.yaml 中的 enableCompaction 从 true 改为 false,重启 Milvus 镜像
安装 Pymilvus
Install Milvus Python SDK | Milvus Documentation
pip install pymilvus==2.5.4验证安装:
python -c "import pymilvus; print(pymilvus.__version__)"安装 Milvus CLI
Install Milvus_CLI | Milvus Documentation
pip install milvus-cli验证安装:
milvus --version安装 GUI 管理工具 Attu
zilliztech/attu: The GUI for Milvus
下载镜像:
docker pull zilliz/attu:v2.4运行:
docker run -p 9009:3000 -e MILVUS_URL=127.0.0.1:19530 zilliz/attu:v2.4浏览器访问 http://<server_ip>:9009 即可。
pprof 查看性能日志
Dump 日志:
wget -O trace.out "http://localhost:9091/debug/pprof/trace?seconds=60"查看:
go tool trace -http=0.0.0.0:40843 trace.out访问 http://<server_ip>:40843 即可查看