使用 Docker Compose 安装支持 GPU 的 Milvus
本页介绍如何使用 Docker Compose 启动支持 GPU 的 Milvus 实例。
前提条件
如果您在拉取镜像时遇到任何问题,请发送邮件至 community@zilliz.com,说明问题详情,我们将为您提供必要的支持。
安装 Milvus
按照以下步骤使用 Docker Compose 安装支持 GPU 的 Milvus。
1. 下载并配置 YAML 文件
下载 milvus-standalone-docker-compose-gpu.yml
并手动将其保存为 docker-compose.yml,或使用以下命令:
$ wget https://github.com/milvus-io/milvus/releases/download/v2.5.10/milvus-standalone-docker-compose-gpu.yml -O docker-compose.yml
您需要对 YAML 文件中的 standalone 服务的环境变量进行一些修改:
- 要为 Milvus 分配特定的 GPU 设备,请在 standalone 服务定义中找到
deploy.resources.reservations.devices[0].devices_ids
字段,并将其值替换为所需 GPU 的 ID。您可以使用 NVIDIA GPU 显示驱动程序附带的nvidia-smi
工具来确定 GPU 设备的 ID。Milvus 支持多个 GPU 设备。
分配单个 GPU 设备给 Milvus:
...
standalone:
...
deploy:
resources:
reservations:
devices:
- driver: nvidia
capabilities: ["gpu"]
device_ids: ["0"]
...
分配多个 GPU 设备给 Milvus:
...
standalone:
...
deploy:
resources:
reservations:
devices:
- driver: nvidia
capabilities: ["gpu"]
device_ids: ['0', '1']
...
2. 启动 Milvus
在包含 docker-compose.yml 的目录中,运行以下命令启动 Milvus:
$ sudo docker compose up -d
Creating milvus-etcd ... done
Creating milvus-minio ... done
Creating milvus-standalone ... done
如果您无法运行上述命令,请检查您的系统是否安装了 Docker Compose V1。如果是这种情况,建议您迁移到 Docker Compose V2,详见本页的说明。
启动 Milvus 后:
- 名为 milvus-standalone、milvus-minio 和 milvus-etcd 的容器已启动。
- milvus-etcd 容器不向主机公开任何端口,并将其数据映射到当前文件夹中的 volumes/etcd。
- milvus-minio 容器使用默认身份验证凭据在本地提供端口 9090 和 9091,并将其数据映射到当前文件夹中的 volumes/minio。
- milvus-standalone 容器使用默认设置在本地提供端口 19530,并将其数据映射到当前文件夹中的 volumes/milvus。
您可以使用以下命令检查容器是否正在运行:
$ sudo docker compose ps
Name Command State Ports
--------------------------------------------------------------------------------------------------------------------
milvus-etcd etcd -advertise-client-url ... Up 2379/tcp, 2380/tcp
milvus-minio /usr/bin/docker-entrypoint ... Up (healthy) 9000/tcp
milvus-standalone /tini -- milvus run standalone Up 0.0.0.0:19530->19530/tcp, 0.0.0.0:9091->9091/tcp
您也可以访问 http://127.0.0.1:9091/webui/
了解更多关于您的 Milvus 实例的信息。详情请参考 Milvus WebUI。
如果您在 docker-compose.yml 中为 Milvus 分配了多个 GPU 设备,您可以指定哪些 GPU 设备可见或可用。
使 GPU 设备 0
对 Milvus 可见:
$ CUDA_VISIBLE_DEVICES=0 ./milvus run standalone
使 GPU 设备 0
和 1
对 Milvus 可见:
$ CUDA_VISIBLE_DEVICES=0,1 ./milvus run standalone
您可以按如下方式停止和删除此容器:
# 停止 Milvus
$ sudo docker compose down
# 删除服务数据
$ sudo rm -rf volumes
配置内存池
在 Milvus 启动并运行后,您可以通过修改 milvus.yaml
文件中的 initMemSize
和 maxMemSize
设置来自定义内存池。
milvus.yaml
文件位于 Milvus 容器内的 /milvus/configs/
目录中。
要配置内存池,请按如下方式修改 milvus.yaml
文件中的 initMemSize
和 maxMemSize
设置。
-
使用以下命令将
milvus.yaml
从 Milvus 容器复制到本地机器。将<milvus_container_id>
替换为您实际的 Milvus 容器 ID。docker cp <milvus_container_id>:/milvus/configs/milvus.yaml milvus.yaml
-
使用您喜欢的文本编辑器打开复制的
milvus.yaml
文件。例如,使用 vim:vim milvus.yaml
-
根据需要编辑
initMemSize
和maxMemSize
设置并保存更改:...
gpu:
initMemSize: 0
maxMemSize: 0
...initMemSize
:内存池的初始大小。默认为 1024。maxMemSize
:内存池的最大大小。默认为 2048。
-
使用以下命令将修改后的
milvus.yaml
文件复制回 Milvus 容器。将<milvus_container_id>
替换为您实际的 Milvus 容器 ID。docker cp milvus.yaml <milvus_container_id>:/milvus/configs/milvus.yaml
-
重启 Milvus 容器以应用更改:
docker stop <milvus_container_id>
docker start <milvus_container_id>
下一步
安装 Milvus 后,您可以:
-
查看 Hello Milvus 了解 Milvus 的功能。
-
查看 Milvus WebUI 了解更多关于 Milvus 实例的信息。
-
学习 Milvus 的基本操作:
-
Deploy your Milvu cluster on clouds:
-
Explore Milvus WebUI, an intuitive web interface for Milvus observability and management.
-
Explore Milvus Backup, an open-source tool for Milvus data backups.
-
Explore Birdwatcher, an open-source tool for debugging Milvus and dynamic configuration updates.
-
Explore Attu, an open-source GUI tool for intuitive Milvus management.