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

$(pwd)/volumes/milvus

/var/lib/milvus

$(pwd)/embedEtcd.yaml

/milvus/configs/embedEtcd.yaml

$(pwd)/user.yaml

/milvus/configs/user.yaml

Docker Compose

${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd(milvus-etcd)

/etcd

${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio(milvus-minio)

/minio_data

${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus(milvus-standalone)

/var/lib/milvus

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 :

  1. Exécutez docker stats milvus-standalone pour 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   31
    

    Dans la sortie de la commande, vous pouvez trouver l'utilisation actuelle des ressources de votre instance Milvus.

  2. Arrêtez et supprimez le conteneur.

    $ docker stop milvus-standalone
    $ docker rm milvus-standalone
    
  3. Localisez le fichier script standalone_embed.sh, la commande docker run et 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/null
    
  4. Assurez-vous que les données persistantes se trouvent dans le même dossier que le script standalone_embed.sh et exécutez le script comme suit :

    sudo  bash standalone_embed.sh start
    
  5. Exécutez docker stats milvus-standalone pour 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 :

  1. Exécutez docker stats milvus-standalone pour 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   31
    

    Dans la sortie de la commande, vous pouvez trouver l'utilisation actuelle des ressources de votre instance Milvus.

  2. Arrêtez et supprimez la pile de conteneurs.

    $ docker compose down
    
  3. Localiser 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"
    
  4. Assurez-vous que les données persistantes sont disponibles et exécutez docker compose comme suit :

    docker compose up -d
    
  5. Exécutez docker stats milvus-standalone pour 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
    

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 ?