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
- Installer Docker.
- Vérifiez la configuration matérielle et logicielle requise avant de procéder à l'installation.
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.4.18/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 servicestandalone
et remplacez sa valeur par l'ID du GPU souhaité. Vous pouvez utiliser l'outilnvidia-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 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.
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
Ouvrez le fichier
milvus.yaml
copié avec votre éditeur de texte préféré. Par exemple, en utilisant vim :vim milvus.yaml
Modifiez les paramètres
initMemSize
etmaxMemSize
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.
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
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 :
Consulter Quickstart pour voir ce que Milvus peut faire.
Apprendre les opérations de base de Milvus :
Déployer votre cluster Milvus sur des clouds :
Découvrez Milvus Backup, un outil open-source pour les sauvegardes de données Milvus.
Découvrez Birdwatcher, un outil open-source pour le débogage de Milvus et les mises à jour dynamiques de la configuration.
Découvrez Attu, un outil GUI open-source pour la gestion intuitive de Milvus.