Partager via


Meilleures pratiques pour les pools

Cet article explique ce que sont les pools et comment les configurer au mieux. Pour plus d’informations sur la création d’un pool, consultez Informations de référence sur la configuration de pool.

Remarque

Si votre charge de travail prend en charge le calcul serverless, Databricks recommande d’utiliser le calcul serverless au lieu de pools pour bénéficier d’un calcul toujours actif et évolutif. Voir Se connecter à un calcul serverless.

Considérations sur les pools

Lors de la création d’un pool, tenez compte des éléments suivants :

  • Créez des pools à l’aide de types d’instance et de runtimes Azure Databricks basés sur des charges de travail cibles.
  • Dans la mesure du possible, remplissez les pools avec des instances spot pour réduire les coûts. Utilisez uniquement des pools spot en tant que nœuds Worker. Votre nœud de pilote doit utiliser des instances à la requête.
  • Remplissez les pools avec des instances à la demande pour des travaux dont les temps d’exécution sont courts et les exigences en termes de temps d’exécution strictes.
  • Utilisez des étiquettes de pool et de cluster pour gérer la facturation.
  • Pré-remplissez les pools pour vous assurer que les instances sont disponibles quand des clusters en ont besoin.

Créer des pools basés sur les charges de travail

Vous pouvez réduire le temps d’acquisition d’instance en créant un pool pour chaque type d’instance et runtime Azure Databricks que votre organisation utilise couramment. Par exemple, si la plupart des clusters d’ingénierie des données utilisent un type d’instance A, si les clusters de science des données utilisent un type d’instance B, et si les clusters d’analyse utilisent un type d’instance C, créez un pool avec chaque type d’instance.

Utilisation des stratégies d’instance spot

Si les exigences de votre nœud pilote et de vos nœuds de travail sont différentes, utilisez des pools différents pour chacun d’entre eux.

Azure Databricks recommande de ne pas utiliser d’instances spot pour votre nœud de pilote. Si vous utilisez un pool spot pour votre nœud Worker, sélectionnez un pool à la demande comme type de pilote.

Configurez les pools afin qu’ils utilisent des instances à la demande pour des travaux dont les temps d’exécution sont courts et les exigences en termes de temps d’exécution strictes. Utilisez des instances à la demande pour empêcher que des instances acquises soient perdues au profit d’un surenchérisseur sur le marché spot.

Configurez les pools afin qu’ils utilisent des instances spot pour les clusters qui prennent en charge le développement interactif ou les travaux qui font passer les économies de coût avant la fiabilité.

Balisez les pools pour gérer les coûts et la facturation

L’étiquetage des pools sur le centre de coût approprié vous permet de gérer la facturation interne des coûts et de l’utilisation. Vous pouvez utiliser plusieurs balises personnalisées pour associer plusieurs centres de coût à un pool. Toutefois, il est important de comprendre comment les étiquettes sont propagées lors de la création d’un cluster à partir de pools. Les balises des pools se propagent aux instances du fournisseur de cloud sous-jacent, mais pas les balises du cluster. Appliquez toutes les étiquettes personnalisées requises pour la gestion de la facturation interne du coût de calcul du fournisseur de cloud au pool.

Les étiquettes de pool et de cluster se propagent à la facturation d’Azure Databricks. Vous pouvez utiliser la combinaison d’étiquettes de cluster et de pool pour gérer la facturation interne d’unités Azure Databricks.

Pour plus d’informations, consultez Utilisation des attributs à l’aide de balises.

Configurer les pools pour contrôler les coûts

Vous pouvez utiliser les options de configuration suivantes pour contrôler le coût des pools :

  • Définissez les instances Min Idle sur 0 pour éviter de payer pour les instances en cours d’exécution qui ne fonctionnent pas. Le compromis est une augmentation possible du temps nécessaire à l’acquisition d’une nouvelle instance par un cluster.
  • Définissez la capacité maximale selon l’utilisation prévue. Cela définit le plafond pour le nombre maximal d’instances utilisées et inactives dans le pool. Si un travail ou un cluster demande une instance à partir d’un pool à sa capacité maximale, la requête échoue et le cluster n’acquiert pas d’instances supplémentaires. Par conséquent, Databricks recommande de définir la capacité maximale uniquement s’il existe un quota d’instance strict ou une contrainte budgétaire.
  • Définissez le temps d'arrêt automatique de terminaison de l'instance inactive pour prévoir un intervalle entre le moment où l'instance est libérée du cluster et celui où elle est supprimée du pool. Définissez cette valeur sur une période qui vous permet de réduire les coûts tout en garantissant la disponibilité des instances pour les travaux planifiés. Par exemple, le travail A est planifié pour s’exécuter à 8h00 et prend 40 minutes. Le travail B est planifié pour s’exécuter à 9 h 00 et prend 30 minutes. Définissez la valeur d’arrêt automatique de l’instance inactive sur 20 minutes pour vous assurer que les instances retournées au pool lorsque le travail A est terminé sont disponibles au démarrage du travail B. Si ces instances ne sont pas revendiquées par un autre cluster, elles sont arrêtées 20 minutes après la fin du travail B.

Préremplir les pools

Pour tirer pleinement parti des pools, vous pouvez préremplir les pools nouvellement créés. Définissez les instances minimales inactives comme supérieures à zéro dans la configuration du pool. Si vous suivez la recommandation de définir cette valeur sur zéro, vous pouvez également utiliser un travail de démarrage pour vous assurer que les pools nouvellement créés ont des instances disponibles pour les clusters.

Avec l’approche du travail de démarrage, planifiez un travail avec des exigences de temps d’exécution flexibles afin qu’il s’exécute avant des travaux dont les exigences de performances sont plus strictes, ou avant que des utilisateurs commencent à utiliser des clusters interactifs. Une fois le travail terminé, les instances utilisées pour celui-ci sont restituée au pool. Définissez la valeur du paramètre d’instance minimale inactive sur 0, et le temps d’arrêt automatique d’instance inactive sur une valeur suffisamment élevée pour garantir que des instances inactives restent disponibles pour des travaux subséquents.

L’utilisation d’un travail de démarrage permet aux instances de pool de démarrer, de remplir le pool, et de rester disponibles pour des travaux en aval ou des clusters interactifs.