milvus-logo
LFAI
Home
  • Commencer

Exécution de Milvus avec prise en charge du GPU à l'aide de Docker Compose

Cette page explique comment démarrer une instance Milvus avec prise en charge du GPU à l'aide de Docker Compose.

Conditions préalables

Si vous rencontrez des problèmes lors du tirage de l'image, contactez-nous à l'adresse community@zilliz.com en précisant le problème et nous vous fournirons l'assistance nécessaire.

Installer Milvus

Pour installer Milvus avec prise en charge du GPU à l'aide de Docker Compose, procédez comme suit.

1. Téléchargez et configurez le fichier YAML

Télécharger milvus-standalone-docker-compose-gpu.yml et enregistrez-le sous docker-compose.yml manuellement ou à l'aide de la commande suivante.

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

Vous devez apporter quelques modifications aux variables d'environnement du service autonome dans le fichier YAML, comme suit :

  • Pour affecter un périphérique GPU spécifique à Milvus, localisez le champ deploy.resources.reservations.devices[0].devices_ids dans la définition du service standalone et remplacez sa valeur par l'ID du GPU souhaité. Vous pouvez utiliser l'outil nvidia-smi, inclus avec les pilotes d'affichage GPU NVIDIA, pour déterminer l'ID d'un périphérique GPU. Milvus prend en charge plusieurs périphériques GPU.

Affecter un seul périphérique GPU à Milvus :

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

Affecter plusieurs périphériques GPU à Milvus :

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

2. Démarrer Milvus

Dans le répertoire qui contient docker-compose.yml, démarrez Milvus en exécutant :

$ sudo docker compose up -d

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

Si vous n'avez pas réussi à exécuter la commande ci-dessus, vérifiez si Docker Compose V1 est installé sur votre système. Si c'est le cas, il est conseillé de migrer vers Docker Compose V2 en raison des notes sur cette page.

Après le démarrage de Milvus,

  • Les conteneurs milvus-standalone, milvus-minio et milvus-etcd sont en place.
    • Le conteneur milvus-etcd n'expose aucun port à l'hôte et mappe ses données sur les volumes/etcd dans le dossier actuel.
    • Le conteneur milvus-minio dessert les ports 9090 et 9091 localement avec les informations d'authentification par défaut et affecte ses données aux volumes/minio dans le dossier actuel.
    • Le conteneur milvus-standalone dessert les ports 19530 localement avec les paramètres par défaut et mappe ses données sur volumes/milvus dans le dossier actuel.

Vous pouvez vérifier si les conteneurs sont opérationnels à l'aide de la commande suivante :

$ 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 vous avez affecté plusieurs périphériques GPU à Milvus dans docker-compose.yml, vous pouvez spécifier quel périphérique GPU est visible ou disponible pour l'utilisation.

Rendez le dispositif GPU 0 visible pour Milvus :

$ CUDA_VISIBLE_DEVICES=0 ./milvus run standalone

Rendre les dispositifs GPU 0 et 1 visibles par Milvus :

$ CUDA_VISIBLE_DEVICES=0,1 ./milvus run standalone

Vous pouvez arrêter et supprimer ce conteneur comme suit.

# Stop Milvus
$ sudo docker compose down

# Delete service data
$ sudo rm -rf volumes

Configuration du pool de mémoire

Une fois que Milvus est opérationnel, vous pouvez personnaliser le pool de mémoire en modifiant les paramètres initMemSize et maxMemSize dans le fichier milvus.yaml.

Le fichier milvus.yaml est situé dans le répertoire /milvus/configs/ à l'intérieur du conteneur Milvus.

Pour configurer le pool de mémoire, modifiez les paramètres initMemSize et maxMemSize dans le fichier milvus.yaml comme suit.

  1. Utilisez la commande suivante pour copier milvus.yaml du conteneur Milvus vers votre machine locale. Remplacez <milvus_container_id> par l'ID de votre conteneur Milvus.

    docker cp <milvus_container_id>:/milvus/configs/milvus.yaml milvus.yaml
    
  2. Ouvrez le fichier milvus.yaml copié avec votre éditeur de texte préféré. Par exemple, en utilisant vim :

    vim milvus.yaml
    
  3. Modifiez les paramètres initMemSize et maxMemSize si nécessaire et enregistrez vos modifications :

    ...
    gpu:
      initMemSize: 0
      maxMemSize: 0
    ...
    
    • initMemSize: Taille initiale du pool de mémoire. La valeur par défaut est 1024.
    • maxMemSize: Taille maximale du pool de mémoire. La valeur par défaut est 2048.
  4. Utilisez la commande suivante pour copier le fichier milvus.yaml modifié dans le conteneur Milvus. Remplacer <milvus_container_id> par l'ID du conteneur Milvus.

    docker cp milvus.yaml <milvus_container_id>:/milvus/configs/milvus.yaml
    
  5. Redémarrez le conteneur Milvus pour appliquer les modifications :

    docker stop <milvus_container_id>
    docker start <milvus_container_id>
    

Prochaines étapes

Après avoir installé Milvus dans Docker, vous pouvez :

Traduit parDeepLogo

Try Managed Milvus for Free

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

Get Started
Feedback

Cette page a-t - elle été utile ?