Escalar Milvus Standalone

Milvus Standalone es un despliegue de servidor de una sola máquina. Todos los componentes de Milvus Standalone están empaquetados en una sola imagen Docker, haciendo que el despliegue sea conveniente. Este tema describe cómo escalar una instancia de Milvus que se ejecuta en este modo.

Requisitos previos

Cuando se despliega Milvus Standalone con Docker o Docker Compose, el script de despliegue (standalone_embed.sh) o el archivo de configuración (docker-compose.yml) crea varios volúmenes y los mapea a directorios host para asegurar la persistencia de los datos.

Para escalar una instancia Milvus desplegada de esta manera, debe detener y eliminar el contenedor existente o la pila de contenedores, volver a desplegar Milvus Standalone con los ajustes de configuración actualizados y reutilizar los datos persistentes en su host para lanzar una nueva instancia.

La siguiente tabla enumera la asignación de volúmenes entre el host y los contenedores.

Opción de despliegue

Ruta del host

Ruta del contenedor

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

Antes de ejecutar los procedimientos de esta guía, asegúrese de que sus datos persisten en las rutas de host anteriores.

Escalar instancias desplegadas usando Docker

Para escalar una instancia de Milvus en ejecución, debe detener la instancia, eliminar el contenedor y volver a desplegar la instancia con nuevas configuraciones y datos persistentes.

El procedimiento específico es el siguiente

  1. Ejecute docker stats milvus-standalone para ver la CPU y la memoria asignadas a la instancia de Milvus. La salida debería ser similar a la siguiente:

    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
    

    En la salida del comando, puede encontrar el uso actual de recursos de su instancia de Milvus.

  2. Detenga y elimine el contenedor.

    $ docker stop milvus-standalone
    $ docker rm milvus-standalone
    
  3. Localice el archivo de script standalone_embed.sh, encuentre el comando docker run y añada los límites de recursos.

    ...
        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. Asegúrese de que los datos persistentes están en la misma carpeta que el script standalone_embed.sh, y ejecute el script como sigue:

    sudo  bash standalone_embed.sh start
    
  5. Ejecute docker stats milvus-standalone para ver la CPU y la memoria asignadas a la instancia de Milvus después del escalado. El resultado debería ser similar al siguiente:

    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
    

Escalar instancias desplegadas utilizando Docker Compose

Para escalar una instancia Milvus actualmente en ejecución, debe detener la instancia, eliminar la pila de contenedores y volver a desplegar la instancia con nuevas configuraciones y datos persistentes.

El procedimiento específico es el siguiente

  1. Ejecute docker stats milvus-standalone para ver la CPU y la memoria asignadas a la instancia de Milvus. La salida debería ser similar a la siguiente:

    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
    

    En la salida del comando, puede encontrar el uso actual de recursos de su instancia de Milvus.

  2. Detenga y elimine la pila de contenedores.

    $ docker compose down
    
  3. Localice el archivo de configuración docker-compose.yml, encuentre la sección independiente y añada los límites de recursos.

    ...
      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. Asegúrese de que los datos persistentes estén disponibles y ejecute docker compose como se indica a continuación:

    docker compose up -d
    
  5. Ejecute docker stats milvus-standalone para ver la CPU y la memoria asignadas a la instancia de Milvus después del escalado. La salida debería ser similar a la siguiente:

    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

¿Fue útil esta página?