Compartilhar via


Melhores práticas do pool

Este artigo explica o que são pools e como você pode configurá-los melhor. Para obter informações sobre como criar um pool, confira Referência de configuração do pool.

Observação

Se sua carga de trabalho der suporte à computação sem servidor, o Databricks recomenda usar a computação sem servidor em vez de pools para aproveitar a computação escalonável e sempre ativa. Consulte Conectar-se ao computador sem servidor.

Considerações sobre o pool

Considere o seguinte ao criar um pool:

  • Crie pools usando tipos de instância e os runtimes do Azure Databricks baseados em cargas de trabalho de destino.
  • Quando possível, preencha pools com instâncias spot para reduzir os custos. Use apenas pools spot como nós de trabalho. Seu nó de driver deve usar instâncias sob demanda.
  • Preencha os pools com instâncias sob demanda para trabalhos com tempos de execução curtos e requisitos mais rígidos de tempo de execução.
  • Use marcas de pool e marcas de cluster para gerenciar a cobrança.
  • Preencha previamente os pools para garantir que as instâncias estão disponíveis quando os clusters precisam delas.

Criar pools com base nas cargas de trabalho

É possível minimizar o tempo de aquisição de instância criando um pool para cada tipo de instância e o runtime do Azure Databricks que sua organização normalmente usa. Por exemplo, se a maioria dos clusters de engenharia de dados usar o tipo de instância A, os clusters de ciência de dados usarem o tipo de instância B e os clusters de análise usarem o tipo de instância C, crie um pool com cada tipo de instância.

Como usar pools de instância spot

Se o seu nó de driver e nó de trabalho tiverem requisitos diferentes, crie pools diferentes para cada um.

O Azure Databricks recomenda não usar instâncias spot para seu nó de driver. Se você usar um pool spot para o nó de trabalho, selecione um pool sob demanda como seu Tipo de driver.

Configure pools para usar instâncias sob demanda para trabalhos com tempos de execução curtos e requisitos mais rígidos de tempo de execução. Use instâncias sob demanda para impedir que as instâncias adquiridas seja perdidas para um aumento no mercado spot.

Configure pools para usar instâncias spot para clusters que suportam o desenvolvimento interativo ou trabalhos que priorizam a economia de custos em relação à confiabilidade.

Pools de tags para gerenciar o custo e o faturamento

A marcação de pools para o centro de custo correto permite que você gerencie o custo e o estorno de uso. É possível usar várias tags personalizadas para associar vários centros de custo a um pool. No entanto, é importante entender como as etiquetas são propagadas quando um cluster é criado a partir de pools. Tags de pools se propagam para as instâncias subjacentes do provedor de nuvem, mas os tags do cluster não. Aplique todas as marcas personalizadas necessárias para gerenciar o custo de computação do provedor de nuvem para o pool.

As marcas de pool e de cluster são propagadas para a cobrança do Azure Databricks. É possível usar a combinação de marcas de cluster e pool para gerenciar estorno de Unidades de Azure Databricks.

Para saber mais, confira Usar marcas para atribuir e acompanhar o uso.

Configurar os pools para controlar o custo

Você pode usar as seguintes opções de configuração para ajudar a controlar o custo dos pools:

  • Defina as instâncias do Min Idle como 0 para evitar o pagamento de instâncias em execução que não estão funcionando. A compensação é um possível aumento no tempo quando um cluster precisa adquirir uma nova instância.
  • Defina a Capacidade Máxima com base no uso previsto. Isso define o limite máximo para o número máximo de instâncias ociosas e usadas no pool. Se um trabalho ou cluster solicitar uma instância de um pool em sua capacidade máxima, a solicitação falhará e o cluster não adquirirá mais instâncias. Portanto, a Databricks recomenda que você defina a capacidade máxima somente se houver uma cota de instâncias rigorosa ou restrição de orçamento.
  • Defina o tempo de Terminação Automática da Instância Ociosa para fornecer um buffer entre quando a instância for liberada do cluster e quando ela for removida do pool. Defina isso para um período que permite minimizar o custo, garantindo a disponibilidade de instâncias para trabalhos agendados. Por exemplo, o trabalho A está agendado para ser executado às 8:00 AM e leva 40 minutos para ser concluído. O trabalho B está agendado para ser executado às 9:00 AM e leva 30 minutos para ser concluído. Defina o valor de Encerramento Automático da Instância Ociosa como 20 minutos para garantir que as instâncias retornadas ao pool quando o trabalho A for concluído estarão disponíveis quando o trabalho B for iniciado. A menos que sejam reivindicadas por outro cluster, essas instâncias são encerradas 20 minutos após o fim do trabalho B.

Pré-popular pools

Para se beneficiar totalmente dos pools, você pode preencher previamente os pools recém-criados. Defina as instâncias Mínimas Ociosas maiores que zero na configuração do pool. Como alternativa, se estiver seguindo a recomendação para definir esse valor como zero, utilize uma tarefa inicial para garantir que pools recém-criados tenham instâncias disponíveis para os clusters acessarem.

Com a abordagem de trabalho inicial, agende um trabalho com requisitos de tempo de execução flexíveis para execução antes de trabalhos com requisitos de desempenho mais rígidos ou antes que os usuários comecem a usar clusters interativos. Após a finalização do trabalho, as instâncias usadas para o trabalho são liberadas de volta para o pool. Defina a configuração de Min Idle como 0 e ajuste o tempo de Término Automático das Instâncias Inativas alto o suficiente para garantir que as instâncias inativas permaneçam disponíveis para trabalhos subsequentes.

O uso de um trabalho inicial permite que as instâncias do pool girem, preencham o pool e permaneçam disponíveis para o trabalho downstream ou clusters interativos.