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 |
|
|
|
|
|
|
|
|
Docker Compose |
|
|
|
|
|
|
|
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
Ejecute
docker stats milvus-standalonepara 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 31En la salida del comando, puede encontrar el uso actual de recursos de su instancia de Milvus.
Detenga y elimine el contenedor.
$ docker stop milvus-standalone $ docker rm milvus-standaloneLocalice el archivo de script
standalone_embed.sh, encuentre el comandodocker runy 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/nullAsegú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 startEjecute
docker stats milvus-standalonepara 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
Ejecute
docker stats milvus-standalonepara 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 31En la salida del comando, puede encontrar el uso actual de recursos de su instancia de Milvus.
Detenga y elimine la pila de contenedores.
$ docker compose downLocalice 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"Asegúrese de que los datos persistentes estén disponibles y ejecute
docker composecomo se indica a continuación:docker compose up -dEjecute
docker stats milvus-standalonepara 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