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.5.4/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
También puede acceder a Milvus WebUI en http://127.0.0.1:9091/webui/
para obtener más información sobre su instancia de Milvus. Para más detalles, consulte Milvus WebUI.
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:
Comprobar Quickstart para ver qué puede hacer Milvus.
Consultar Milvus WebUI para saber más sobre la instancia de Milvus.
Aprender las operaciones básicas de Milvus:
Despliegue su clúster Milvu en nubes:
Explore Milvus WebUI, una interfaz web intuitiva para la observabilidad y gestión de Milvus.
Explore Milvus Backup, una herramienta de código abierto para las copias de seguridad de los datos de Milvus.
Explore Birdwatcher, una herramienta de código abierto para depurar Milvus y actualizaciones de configuración dinámicas.
Explore Attu, una herramienta GUI de código abierto para la gestión intuitiva de Milvus.