Ejecutar Milvus con soporte GPU usando Docker Compose
Esta página ilustra cómo iniciar una instancia Milvus con soporte GPU utilizando Docker Compose.
Requisitos previos
- Instale Docker.
- Compruebe los requisitos de hardware y software antes de la instalación.
Si encuentra algún problema al arrancar la imagen, contacte con nosotros en community@zilliz.com con detalles sobre el problema, y le proporcionaremos el soporte necesario.
Instalar Milvus
Para instalar Milvus con soporte GPU utilizando Docker Compose, siga estos pasos.
1. Descargue y configure el archivo YAML
Descarga milvus-standalone-docker-compose-gpu.yml
y guárdelo como docker-compose.yml manualmente, o con el siguiente comando.
$ wget https://github.com/milvus-io/milvus/releases/download/v2.4.17/milvus-standalone-docker-compose-gpu.yml -O docker-compose.yml
Es necesario realizar algunos cambios en las variables de entorno del servicio autónomo en el archivo YAML como se indica a continuación:
- Para asignar un dispositivo GPU específico a Milvus, localice el campo
deploy.resources.reservations.devices[0].devices_ids
en la definición del serviciostandalone
y sustituya su valor por el ID de la GPU deseada. Puede utilizar la herramientanvidia-smi
, incluida con los controladores de pantalla GPU de NVIDIA, para determinar el ID de un dispositivo GPU. Milvus admite múltiples dispositivos GPU.
Asigne un único dispositivo GPU a Milvus:
...
standalone:
...
deploy:
resources:
reservations:
devices:
- driver: nvidia
capabilities: ["gpu"]
device_ids: ["0"]
...
Asignar múltiples dispositivos GPU a Milvus:
...
standalone:
...
deploy:
resources:
reservations:
devices:
- driver: nvidia
capabilities: ["gpu"]
device_ids: ['0', '1']
...
2. Inicie Milvus
En el directorio que contiene docker-compose.yml, inicie Milvus ejecutando:
$ sudo docker compose up -d
Creating milvus-etcd ... done
Creating milvus-minio ... done
Creating milvus-standalone ... done
Si no puede ejecutar el comando anterior, compruebe si su sistema tiene instalado Docker Compose V1. Si este es el caso, se le aconseja migrar a Docker Compose V2 debido a las notas en esta página.
Después de iniciar Milvus,
- Los contenedores llamados milvus-standalone, milvus-minio y milvus-etcd están activos.
- El contenedor milvus-etcd no expone ningún puerto al host y mapea sus datos a volúmenes/etcd en la carpeta actual.
- El contenedor milvus-minio sirve los puertos 9090 y 9091 localmente con las credenciales de autenticación predeterminadas y asigna sus datos a volumes/minio en la carpeta actual.
- El contenedor milvus-standalone sirve los puertos 19530 localmente con la configuración por defecto y asigna sus datos a volumes/milvus en la carpeta actual.
Puede comprobar si los contenedores están en funcionamiento utilizando el siguiente comando:
$ 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
Si ha asignado varios dispositivos GPU a Milvus en docker-compose.yml, puede especificar qué dispositivo GPU está visible o disponible para su uso.
Haga que el dispositivo GPU 0
sea visible para Milvus:
$ CUDA_VISIBLE_DEVICES=0 ./milvus run standalone
Haga que los dispositivos GPU 0
y 1
sean visibles para Milvus:
$ CUDA_VISIBLE_DEVICES=0,1 ./milvus run standalone
Puede detener y eliminar este contenedor de la siguiente manera.
# Stop Milvus
$ sudo docker compose down
# Delete service data
$ sudo rm -rf volumes
Configurar el pool de memoria
Después de que Milvus esté en funcionamiento, puede personalizar el pool de memoria modificando los ajustes de initMemSize
y maxMemSize
en el archivo milvus.yaml
.
El archivo milvus.yaml
se encuentra en el directorio /milvus/configs/
dentro del contenedor Milvus.
Para configurar la reserva de memoria, modifique las opciones initMemSize
y maxMemSize
en el archivo milvus.yaml
de la siguiente manera.
Utilice el siguiente comando para copiar
milvus.yaml
desde el contenedor Milvus a su máquina local. Sustituya<milvus_container_id>
por el ID real de su contenedor Milvus.docker cp <milvus_container_id>:/milvus/configs/milvus.yaml milvus.yaml
Abra el archivo
milvus.yaml
copiado con su editor de texto preferido. Por ejemplo, con vim:vim milvus.yaml
Edite las opciones
initMemSize
ymaxMemSize
según sea necesario y guarde los cambios:... gpu: initMemSize: 0 maxMemSize: 0 ...
initMemSize
: Tamaño inicial de la reserva de memoria. Por defecto 1024.maxMemSize
: Tamaño máximo de la reserva de memoria. Por defecto es 2048.
Utilice el siguiente comando para copiar el archivo
milvus.yaml
modificado de nuevo al contenedor Milvus. Sustituya<milvus_container_id>
por el ID real de su contenedor Milvus.docker cp milvus.yaml <milvus_container_id>:/milvus/configs/milvus.yaml
Reinicie el contenedor Milvus para aplicar los cambios:
docker stop <milvus_container_id> docker start <milvus_container_id>
Lo que sigue
Una vez instalado Milvus en Docker, puede:
Consultar Quickstart para ver qué puede hacer Milvus.
Aprender las operaciones básicas de Milvus:
Despliegue su clúster Milvu en nubes:
Explore Milvus Backup, una herramienta de código abierto para realizar copias de seguridad de los datos de Milvus.
Explore Birdwatcher, una herramienta de código abierto para depurar Milvus y actualizaciones dinámicas de configuración.
Explore Attu, una herramienta GUI de código abierto para la gestión intuitiva de Milvus.