Mise à l'échelle de Milvus Standalone
Milvus Standalone est un déploiement de serveur sur une seule machine. Tous les composants de Milvus Standalone sont regroupés dans une seule image Docker, ce qui facilite le déploiement. Cette rubrique décrit comment mettre à l'échelle une instance Milvus fonctionnant dans ce mode.
Conditions préalables
Lors du déploiement de Milvus Standalone avec Docker ou Docker Compose, le script de déploiement (standalone_embed.sh) ou le fichier de configuration (docker-compose.yml) crée plusieurs volumes et les mappe à des répertoires hôtes pour assurer la persistance des données.
Pour faire évoluer une instance Milvus déployée de cette manière, vous devez arrêter et supprimer le conteneur ou la pile de conteneurs existants, redéployer Milvus Standalone avec les paramètres de configuration mis à jour et réutiliser les données persistantes sur votre hôte pour lancer une nouvelle instance.
Le tableau suivant répertorie le mappage des volumes entre l'hôte et les conteneurs.
Option de déploiement |
Chemin d'accès de l'hôte |
Chemin du conteneur |
|---|---|---|
Docker |
|
|
|
|
|
|
|
|
Docker Compose |
|
|
|
|
|
|
|
Avant d'exécuter les procédures de ce guide, assurez-vous que vos données persistent dans les chemins d'hôte ci-dessus.
Mise à l'échelle des instances déployées à l'aide de Docker
Pour mettre à l'échelle une instance Milvus en cours d'exécution, vous devez arrêter l'instance, supprimer le conteneur et redéployer l'instance avec de nouveaux paramètres et des données persistantes.
La procédure spécifique est la suivante :
Exécutez
docker stats milvus-standalonepour afficher le CPU et la mémoire alloués à l'instance Milvus. La sortie doit être similaire à ce qui suit :CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 917da667f2ff milvus-standalone 6.10% 171.8MiB / 3.886GiB 4.32% 1.57kB / 0B 1.01GB / 1.79MB 31Dans la sortie de la commande, vous pouvez trouver l'utilisation actuelle des ressources de votre instance Milvus.
Arrêtez et supprimez le conteneur.
$ docker stop milvus-standalone $ docker rm milvus-standaloneLocalisez le fichier script
standalone_embed.sh, la commandedocker runet ajoutez les limites de ressources.... sudo docker run -d \ --name milvus-standalone \ --security-opt seccomp:unconfined \ -e ETCD_USE_EMBED=true \ -e ETCD_DATA_DIR=/var/lib/milvus/etcd \ -e ETCD_CONFIG_PATH=/milvus/configs/embedEtcd.yaml \ -e COMMON_STORAGETYPE=local \ -v $(pwd)/volumes/milvus:/var/lib/milvus \ -v $(pwd)/embedEtcd.yaml:/milvus/configs/embedEtcd.yaml \ -v $(pwd)/user.yaml:/milvus/configs/user.yaml \ -p 19530:19530 \ -p 9091:9091 \ -p 2379:2379 \ --health-cmd="curl -f http://localhost:9091/healthz" \ --health-interval=30s \ --health-start-period=90s \ --health-timeout=20s \ --health-retries=3 \ --memory="4g" \ # New memory limit --cpus="2.0" \ # New CPU limit milvusdb/milvus:v2.5.11 \ milvus run standalone 1> /dev/nullAssurez-vous que les données persistantes se trouvent dans le même dossier que le script
standalone_embed.shet exécutez le script comme suit :sudo bash standalone_embed.sh startExécutez
docker stats milvus-standalonepour afficher le CPU et la mémoire alloués à l'instance Milvus après la mise à l'échelle. La sortie doit être similaire à ce qui suit :CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 7aea450f87ce milvus-standalone 7.52% 210.9MiB / 4GiB 5.15% 1.05kB / 0B 610kB / 8.19kB 29
Mise à l'échelle des instances déployées à l'aide de Docker Compose
Pour mettre à l'échelle une instance Milvus en cours d'exécution, vous devez arrêter l'instance, supprimer la pile de conteneurs et redéployer l'instance avec de nouveaux paramètres et des données persistantes.
La procédure spécifique est la suivante :
Exécutez
docker stats milvus-standalonepour afficher le CPU et la mémoire alloués à l'instance Milvus. La sortie doit être similaire à ce qui suit :CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 917da667f2ff milvus-standalone 6.10% 171.8MiB / 3.886GiB 4.32% 1.57kB / 0B 1.01GB / 1.79MB 31Dans la sortie de la commande, vous pouvez trouver l'utilisation actuelle des ressources de votre instance Milvus.
Arrêtez et supprimez la pile de conteneurs.
$ docker compose downLocaliser le fichier de configuration
docker-compose.yml, trouver la section autonome et ajouter les limites de ressources.... standalone: container_name: milvus-standalone image: milvusdb/milvus:v2.5.8 command: ["milvus", "run", "standalone"] deploy: resources: limits: cpus: "2" # new cpu limits memory: 4G # new memory limits security_opt: - seccomp:unconfined environment: ETCD_ENDPOINTS: etcd:2379 MINIO_ADDRESS: minio:9000 volumes: - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvus healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"] interval: 30s start_period: 90s timeout: 20s retries: 3 ports: - "19530:19530" - "9091:9091" depends_on: - "etcd" - "minio"Assurez-vous que les données persistantes sont disponibles et exécutez
docker composecomme suit :docker compose up -dExécutez
docker stats milvus-standalonepour afficher le CPU et la mémoire alloués à l'instance Milvus après la mise à l'échelle. La sortie doit être similaire à ce qui suit :CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 7aea450f87ce milvus-standalone 7.52% 210.9MiB / 4GiB 5.15% 1.05kB / 0B 610kB / 8.19kB 29