milvus-logo
LFAI
Casa
  • Iniziare

Esecuzione di Milvus con supporto GPU tramite Docker Compose

Questa pagina illustra come avviare un'istanza di Milvus con supporto GPU usando Docker Compose.

Prerequisiti

Se si riscontrano problemi nell'estrazione dell'immagine, contattateci all'indirizzo community@zilliz.com con i dettagli del problema e vi forniremo il supporto necessario.

Installare Milvus

Per installare Milvus con supporto GPU usando Docker Compose, seguite i seguenti passi.

1. Scaricare e configurare il file YAML

Scaricare milvus-standalone-docker-compose-gpu.yml e salvarlo come docker-compose.yml manualmente o con il seguente comando.

$ wget https://github.com/milvus-io/milvus/releases/download/v2.4.18/milvus-standalone-docker-compose-gpu.yml -O docker-compose.yml

È necessario apportare alcune modifiche alle variabili d'ambiente del servizio standalone nel file YAML come segue:

  • Per assegnare un dispositivo GPU specifico a Milvus, individuare il campo deploy.resources.reservations.devices[0].devices_ids nella definizione del servizio standalone e sostituire il suo valore con l'ID della GPU desiderata. È possibile utilizzare lo strumento nvidia-smi, incluso nei driver di visualizzazione delle GPU NVIDIA, per determinare l'ID di un dispositivo GPU. Milvus supporta più dispositivi GPU.

Assegnare un singolo dispositivo GPU a Milvus:

...
standalone:
  ...
  deploy:
    resources:
      reservations:
        devices:
          - driver: nvidia
            capabilities: ["gpu"]
            device_ids: ["0"]
...

Assegnazione di più dispositivi GPU a Milvus:

...
standalone:
  ...
  deploy:
    resources:
      reservations:
        devices:
          - driver: nvidia
            capabilities: ["gpu"]
            device_ids: ['0', '1']
...

2. Avviare Milvus

Nella directory che contiene docker-compose.yml, avviare Milvus eseguendo il comando:

$ sudo docker compose up -d

Creating milvus-etcd  ... done
Creating milvus-minio ... done
Creating milvus-standalone ... done

Se non si è riusciti a eseguire il comando precedente, verificare se sul sistema è installato Docker Compose V1. In tal caso, si consiglia di migrare a Docker Compose V2, come indicato nelle note di questa pagina.

Dopo aver avviato Milvus,

  • I contenitori milvus-standalone, milvus-minio e milvus-etcd sono attivi.
    • Il contenitore milvus-etcd non espone alcuna porta all'host e mappa i suoi dati nei volumi/etcd della cartella corrente.
    • Il contenitore milvus-minio serve le porte 9090 e 9091 localmente con le credenziali di autenticazione predefinite e mappa i suoi dati su volumi/minio nella cartella corrente.
    • Il contenitore milvus-standalone serve localmente le porte 19530 con le impostazioni predefinite e mappa i suoi dati su volumi/milvus nella cartella corrente.

È possibile verificare se i contenitori sono attivi e funzionanti usando il seguente 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

Se sono stati assegnati più dispositivi GPU a Milvus in docker-compose.yml, è possibile specificare quale dispositivo GPU è visibile o disponibile per l'uso.

Rendere il dispositivo GPU 0 visibile a Milvus:

$ CUDA_VISIBLE_DEVICES=0 ./milvus run standalone

Rendere visibili a Milvus i dispositivi GPU 0 e 1:

$ CUDA_VISIBLE_DEVICES=0,1 ./milvus run standalone

È possibile arrestare ed eliminare questo contenitore come segue.

# Stop Milvus
$ sudo docker compose down

# Delete service data
$ sudo rm -rf volumes

Configurare il pool di memoria

Dopo che Milvus è in funzione, è possibile personalizzare il pool di memoria modificando le impostazioni di initMemSize e maxMemSize nel file milvus.yaml.

Il file milvus.yaml si trova nella directory /milvus/configs/ all'interno del contenitore Milvus.

Per configurare il pool di memoria, modificare le impostazioni initMemSize e maxMemSize nel file milvus.yaml come segue.

  1. Usare il seguente comando per copiare milvus.yaml dal contenitore Milvus al computer locale. Sostituire <milvus_container_id> con l'attuale ID del contenitore Milvus.

    docker cp <milvus_container_id>:/milvus/configs/milvus.yaml milvus.yaml
    
  2. Aprire il file milvus.yaml copiato con l'editor di testo preferito. Ad esempio, utilizzando vim:

    vim milvus.yaml
    
  3. Modificare le impostazioni di initMemSize e maxMemSize come necessario e salvare le modifiche:

    ...
    gpu:
      initMemSize: 0
      maxMemSize: 0
    ...
    
    • initMemSize: Dimensione iniziale del pool di memoria. Per impostazione predefinita, 1024.
    • maxMemSize: Dimensione massima del pool di memoria. Per impostazione predefinita, 2048.
  4. Usare il seguente comando per copiare il file milvus.yaml modificato nel contenitore Milvus. Sostituire <milvus_container_id> con l'attuale ID del contenitore Milvus.

    docker cp milvus.yaml <milvus_container_id>:/milvus/configs/milvus.yaml
    
  5. Riavviare il contenitore Milvus per applicare le modifiche:

    docker stop <milvus_container_id>
    docker start <milvus_container_id>
    

Cosa succede ora

Dopo aver installato Milvus in Docker, è possibile:

Tradotto daDeepL

Try Managed Milvus for Free

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

Get Started
Feedback

Questa pagina è stata utile?