milvus-logo
LFAI
Home
  • Comenzar

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

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.18/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 servicio standalone y sustituya su valor por el ID de la GPU deseada. Puede utilizar la herramienta nvidia-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.

  1. 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
    
  2. Abra el archivo milvus.yaml copiado con su editor de texto preferido. Por ejemplo, con vim:

    vim milvus.yaml
    
  3. Edite las opciones initMemSize y maxMemSize 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.
  4. 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
    
  5. 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:

Traducido porDeepL

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

¿Fue útil esta página?