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 |
|
|
|
|
|
|
|
|
Docker Compose |
|
|
|
|
|
|
|
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:
Execute
docker stats milvus-standalonepara 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 31Na saída do comando, pode encontrar a utilização atual dos recursos da sua instância Milvus.
Pare e remova o contêiner.
$ docker stop milvus-standalone $ docker rm milvus-standaloneLocalize o ficheiro de script
standalone_embed.sh, encontre o comandodocker rune 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/nullCertifique-se de que os dados persistentes estão na mesma pasta que o script
standalone_embed.she execute o script da seguinte forma:sudo bash standalone_embed.sh startExecute
docker stats milvus-standalonepara 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:
Execute
docker stats milvus-standalonepara 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 31Na saída do comando, pode encontrar a utilização atual dos recursos da sua instância Milvus.
Pare e remova a pilha de contêineres.
$ docker compose downLocalize 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"Certifique-se de que os dados persistentes estejam disponíveis e execute
docker composeda seguinte forma:docker compose up -dExecute
docker stats milvus-standalonepara 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