Escalar Milvus Standalone

Milvus Standalone é uma implantação de servidor de máquina única. Todos os componentes do Milvus Standalone são empacotados em uma única imagem Docker, tornando a implantação conveniente. Este tópico descreve como escalar uma instância do Milvus em execução neste modo.

Pré-requisitos

Ao implementar o Milvus Standalone com o Docker ou o Docker Compose, o script de implementação (standalone_embed.sh) ou o ficheiro de configuração (docker-compose.yml) cria vários volumes e mapeia-os para diretórios do anfitrião para garantir a persistência dos dados.

Para escalar uma instância do Milvus implantada dessa maneira, é necessário parar e remover o contêiner ou a pilha de contêineres existente, reimplantar o Milvus Standalone com definições de configuração atualizadas e reutilizar os dados persistentes no seu host para iniciar uma nova instância.

A tabela a seguir lista o mapeamento de volumes entre o host e os contêineres.

Opção de implantação

Caminho do host

Caminho do contentor

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 executar os procedimentos neste guia, certifique-se de que seus dados persistem nos caminhos de host acima.

Escalar instâncias implantadas usando o Docker

Para escalar uma instância do Milvus em execução, é necessário parar a instância, remover o contentor e reimplementar a instância com novas definições e dados persistentes.

O procedimento específico é o seguinte:

  1. Execute docker stats milvus-standalone para visualizar a CPU e a memória alocadas para a instância do Milvus. A saída deve ser semelhante à seguinte:

    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
    

    Na saída do comando, pode encontrar a utilização atual dos recursos da sua instância Milvus.

  2. Pare e remova o contêiner.

    $ docker stop milvus-standalone
    $ docker rm milvus-standalone
    
  3. Localize o ficheiro de script standalone_embed.sh, encontre o comando docker run e adicione os limites 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. Certifique-se de que os dados persistentes estão na mesma pasta que o script standalone_embed.sh e execute o script da seguinte forma:

    sudo  bash standalone_embed.sh start
    
  5. Execute docker stats milvus-standalone para ver a CPU e a memória alocadas para a instância do Milvus após o dimensionamento. A saída deve ser semelhante à seguinte:

    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 instâncias implantadas usando o Docker Compose

Para dimensionar uma instância do Milvus em execução no momento, é necessário parar a instância, remover a pilha de contêineres e reimplantar a instância com novas configurações e dados persistentes.

O procedimento específico é o seguinte:

  1. Execute docker stats milvus-standalone para visualizar a CPU e a memória alocadas para a instância do Milvus. A saída deve ser semelhante à seguinte:

    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
    

    Na saída do comando, pode encontrar a utilização atual dos recursos da sua instância Milvus.

  2. Pare e remova a pilha de contêineres.

    $ docker compose down
    
  3. Localize o ficheiro de configuração docker-compose.yml, encontre a secção autónoma e adicione os limites 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. Certifique-se de que os dados persistentes estejam disponíveis e execute docker compose da seguinte forma:

    docker compose up -d
    
  5. Execute docker stats milvus-standalone para ver a CPU e a memória alocadas à instância do Milvus após o dimensionamento. A saída deve ser semelhante à seguinte:

    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

Esta página foi útil?