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.

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 en savoir plus, consultez Superviser l’utilisation à l’aide de balises.

Configurer les pools pour contrôler les coûts

..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é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.