milvus-logo
LFAI
Home
  • Começar a trabalhar

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

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ço standalone e substitua o seu valor pelo ID da GPU pretendida. Pode utilizar a ferramenta nvidia-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.

  1. 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
    
  2. Abra o ficheiro milvus.yaml copiado com o seu editor de texto preferido. Por exemplo, usando o vim:

    vim milvus.yaml
    
  3. Edite as definições initMemSize e maxMemSize 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.
  4. 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
    
  5. 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:

Traduzido porDeepLogo

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

Esta página foi útil?