Executar o Milvus com suporte a GPU usando o Docker Compose
Esta página ilustra como iniciar uma instância do Milvus com suporte a GPU usando o Docker Compose.
Pré-requisitos
- Instalar o Docker.
- Verifique os requisitos de hardware e software antes da instalação.
Se encontrar algum problema ao puxar a imagem, contacte-nos em community@zilliz.com com detalhes sobre o problema, e iremos fornecer-lhe o suporte necessário.
Instalar o Milvus
Para instalar o Milvus com suporte a GPU usando o Docker Compose, siga estas etapas.
1. Descarregar e configurar o ficheiro YAML
Faça o download milvus-standalone-docker-compose-gpu.yml
e salve-o como docker-compose.yml manualmente ou com o seguinte comando.
$ wget https://github.com/milvus-io/milvus/releases/download/v2.4.17/milvus-standalone-docker-compose-gpu.yml -O docker-compose.yml
É necessário fazer algumas alterações nas variáveis de ambiente do serviço autónomo no ficheiro YAML, como se segue:
- Para atribuir um dispositivo GPU específico ao Milvus, localize o campo
deploy.resources.reservations.devices[0].devices_ids
na definição do serviçostandalone
e substitua o seu valor pelo ID da GPU pretendida. Pode utilizar a ferramentanvidia-smi
, incluída nos controladores de visualização da GPU NVIDIA, para determinar a ID de um dispositivo GPU. O Milvus suporta múltiplos dispositivos GPU.
Atribuir um único dispositivo GPU ao Milvus:
...
standalone:
...
deploy:
resources:
reservations:
devices:
- driver: nvidia
capabilities: ["gpu"]
device_ids: ["0"]
...
Atribuir vários dispositivos GPU ao Milvus:
...
standalone:
...
deploy:
resources:
reservations:
devices:
- driver: nvidia
capabilities: ["gpu"]
device_ids: ['0', '1']
...
2. Iniciar o Milvus
No diretório que contém o docker-compose.yml, inicie o Milvus executando:
$ sudo docker compose up -d
Creating milvus-etcd ... done
Creating milvus-minio ... done
Creating milvus-standalone ... done
Se não conseguiu executar o comando acima, verifique se o seu sistema tem o Docker Compose V1 instalado. Se este for o caso, é aconselhável migrar para o Docker Compose V2 devido às notas nesta página.
Depois de iniciar o Milvus,
- Os contêineres chamados milvus-standalone, milvus-minio e milvus-etcd estão ativos.
- O contentor milvus-etcd não expõe quaisquer portas ao anfitrião e mapeia os seus dados para volumes/etcd na pasta atual.
- O contentor milvus-minio serve as portas 9090 e 9091 localmente com as credenciais de autenticação predefinidas e mapeia os seus dados para volumes/minio na pasta atual.
- O contentor milvus-standalone serve as portas 19530 localmente com as definições predefinidas e mapeia os seus dados para volumes/milvus na pasta atual.
Pode verificar se os contentores estão em funcionamento utilizando o seguinte comando:
$ sudo docker compose ps
Name Command State Ports
--------------------------------------------------------------------------------------------------------------------
milvus-etcd etcd -advertise-client-url ... Up 2379/tcp, 2380/tcp
milvus-minio /usr/bin/docker-entrypoint ... Up (healthy) 9000/tcp
milvus-standalone /tini -- milvus run standalone Up 0.0.0.0:19530->19530/tcp, 0.0.0.0:9091->9091/tcp
Se tiver atribuído vários dispositivos GPU ao Milvus em docker-compose.yml, pode especificar qual o dispositivo GPU que está visível ou disponível para utilização.
Torne o dispositivo de GPU 0
visível para o Milvus:
$ CUDA_VISIBLE_DEVICES=0 ./milvus run standalone
Tornar os dispositivos de GPU 0
e 1
visíveis para o Milvus:
$ CUDA_VISIBLE_DEVICES=0,1 ./milvus run standalone
Pode parar e eliminar este contentor da seguinte forma.
# Stop Milvus
$ sudo docker compose down
# Delete service data
$ sudo rm -rf volumes
Configurar o pool de memória
Depois de o Milvus estar a funcionar, pode personalizar a reserva de memória modificando as definições initMemSize
e maxMemSize
no ficheiro milvus.yaml
.
O ficheiro milvus.yaml
está localizado no diretório /milvus/configs/
dentro do contentor do Milvus.
Para configurar o pool de memória, modifique as definições initMemSize
e maxMemSize
no ficheiro milvus.yaml
da seguinte forma.
Utilize o seguinte comando para copiar
milvus.yaml
do contentor Milvus para a sua máquina local. Substitua<milvus_container_id>
pelo seu ID de contentor Milvus atual.docker cp <milvus_container_id>:/milvus/configs/milvus.yaml milvus.yaml
Abra o ficheiro
milvus.yaml
copiado com o seu editor de texto preferido. Por exemplo, usando o vim:vim milvus.yaml
Edite as definições
initMemSize
emaxMemSize
conforme necessário e guarde as alterações:... gpu: initMemSize: 0 maxMemSize: 0 ...
initMemSize
: Initial size of the memory pool. A predefinição é 1024.maxMemSize
: Tamanho máximo do conjunto de memória. A predefinição é 2048.
Utilize o seguinte comando para copiar o ficheiro
milvus.yaml
modificado de volta para o contentor Milvus. Substitua<milvus_container_id>
pelo seu ID real do contentor Milvus.docker cp milvus.yaml <milvus_container_id>:/milvus/configs/milvus.yaml
Reinicie o contentor Milvus para aplicar as alterações:
docker stop <milvus_container_id> docker start <milvus_container_id>
O que vem a seguir
Depois de instalar o Milvus no Docker, você pode:
Verificar o Quickstart para ver o que o Milvus pode fazer.
Aprender as operações básicas do Milvus:
Implantar seu cluster Milvu em nuvens:
Explore o Milvus Backup, uma ferramenta de código aberto para backups de dados do Milvus.
Explore o Birdwatcher, uma ferramenta de código aberto para depuração do Milvus e actualizações dinâmicas de configuração.
Explore o Attu, uma ferramenta GUI de código aberto para gerenciamento intuitivo do Milvus.