Práticas recomendadas 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 marca para gerenciar o custo e a cobrança
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 marcas personalizadas para associar vários centros de custo a um pool. No entanto, é importante compreender como as marcas são propagadas quando um cluster é criado a partir de pools. As marcas de pools se propagam nas instâncias de provedor de nuvem subjacentes, mas as marcas 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, veja Uso de atributos usando marcas.
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 o Min Idle instâncias como 0 para evitar pagar por 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 o momento em que a instância é liberada do cluster e aquele em que ela é removida do pool. Defina isso como um período que permita minimizar custos e, ao mesmo tempo, garantir 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 você estiver seguindo a recomendação para definir esse valor como zero, use um trabalho inicial para garantir que os 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 das instâncias Ociosas mínimas como 0 e definir o tempo de Término Automático da Instância Ociosa alta o suficiente para garantir que as instâncias ociosas 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.