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, confira Monitorar o uso usando marcas.
Configurar os 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é-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.