Partilhar via


Práticas recomendadas de 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, consulte Referência de configuração do pool.

Nota

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

Considerações sobre o pool

Considere o seguinte ao criar um pool:

  • Crie pools usando tipos de instância e tempos de execução do Azure Databricks com base em cargas de trabalho de destino.
  • Quando possível, preencha pools com instâncias spot para reduzir custos. Use apenas pools de pontos como nós de trabalho. O nó do driver deve usar instâncias sob demanda.
  • Preencha pools com instâncias sob demanda para trabalhos com tempos de execução curtos e requisitos rigorosos de tempo de execução.
  • Use tags de pool e tags de cluster para gerenciar o faturamento.
  • Pré-preencha pools para garantir que as instâncias estejam disponíveis quando os clusters precisarem delas.

Criar pools com base em cargas de trabalho

Você pode minimizar o tempo de aquisição da instância criando um pool para cada tipo de instância e tempo de execução 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.

Usando pools de instâncias spot

Se o nó do driver e os nós de trabalho tiverem requisitos diferentes, use pools diferentes para cada um.

O Azure Databricks recomenda não usar instâncias spot para o nó do 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 estritos de tempo de execução. Use instâncias sob demanda para evitar que instâncias adquiridas sejam perdidas para um licitante mais alto no mercado à vista.

Configure pools para usar instâncias spot para clusters que oferecem suporte ao desenvolvimento interativo ou trabalhos que priorizam a economia de custos em detrimento da confiabilidade.

Pools de tags para gerenciar custos e faturamento

A marcação de pools no centro de custo correto permite gerenciar o custo e o estorno de uso. Você pode usar várias tags personalizadas para associar vários centros de custo a um pool. No entanto, é importante entender como as tags são propagadas quando um cluster é criado a partir de pools. As tags de pools se propagam para as instâncias subjacentes do provedor de nuvem, mas as tags do cluster não. Aplique todas as tags personalizadas necessárias para gerenciar o estorno do custo de computação do provedor de nuvem ao pool.

As tags de pool e as tags de cluster se propagam para a cobrança do Azure Databricks. Você pode usar a combinação de tags de cluster e pool para gerenciar o estorno das Unidades do Azure Databricks.

Para saber mais, consulte Monitorar o uso usando tags.

Configurar pools para controlar o custo

.. Azure-AWS:

You can use the following configuration options to help control the cost of pools:

- Set the [Min Idle](/compute/pools.md#minimum-idle-instances) instances to 0 to avoid paying for running instances that aren’t doing work. The tradeoff is a possible increase in time when a cluster needs to acquire a new instance.
- Set the [Max Capacity](/compute/pools.md#maximum-capacity) based on anticipated usage. This sets the ceiling for the maximum number of used and idle instances in the pool. If a job or cluster requests an instance from a pool at its maximum capacity, the request fails, and the cluster doesn't acquire more instances. Therefore, Databricks recommends that you set the maximum capacity only if there is a strict instance quota or budget constraint.
- Set the [Idle Instance Auto Termination](/compute/pools.md#idle-instance-auto-termination) time to provide a buffer between when the instance is released from the cluster and when it’s dropped from the pool. Set this to a period that allows you to minimize cost while ensuring the availability of instances for scheduled jobs. For example, job A is scheduled to run at 8:00 AM and takes 40 minutes to complete. Job B is scheduled to run at 9:00 AM and takes 30 minutes to complete. Set the Idle Instance Auto Termination value to 20 minutes to ensure that instances returned to the pool when job A completes are available when job B starts. Unless they are claimed by another cluster, those instances are terminated 20 minutes after job B ends.

Pré-preencher piscinas

Para se beneficiar totalmente dos pools, você pode pré-preencher os pools recém-criados. Defina as instâncias Min Idle maiores que zero na configuração do pool. Como alternativa, se você estiver seguindo a recomendação de 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 ser executado antes de trabalhos com requisitos de desempenho mais rigorosos ou antes que os usuários comecem a usar clusters interativos. Após a conclusão do trabalho, as instâncias usadas para o trabalho são liberadas de volta para o pool. Defina a configuração Min Idle instance como 0 e defina o tempo de Terminação Automática de Instância Ociosa alto 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 trabalhos downstream ou clusters interativos.