Bewährte Methoden für Pools
In diesem Artikel wird erläutert, was Pools sind und wie Sie sie am besten konfigurieren. Informationen zum Erstellen eines Pools finden Sie unter Poolkonfigurationsreferenz.
Hinweis
Wenn Ihre Workload serverloses Computing unterstützt, empfiehlt Databricks die Verwendung von serverlosem Computing anstelle von Pools, um immer aktiviertes, skalierbares Computing zu nutzen. Weitere Informationen finden Sie unter Herstellen einer Verbindung mit serverlosem Compute.
Überlegungen zu Pools
Berücksichtigen Sie beim Erstellen eines Pools Folgendes:
- Erstellen von Pools mithilfe von Instanztypen Azure Databricks Runtimes, basierend auf Zielworkloads.
- Füllen Sie Pools nach Möglichkeit mit Spot-Instanzen auf, um Kosten zu senken. Verwenden Sie Spotpools nur als Workerknoten. Ihr Treiberknoten sollte On-Demand-Instanzen verwenden.
- Füllen Sie Pools mit bedarfsbasierten Instanzen für Aufträge mit kurzen Ausführungszeiten und strengen Ausführungszeitanforderungen auf.
- Verwenden Sie Pooltags und Clustertags, um die Abrechnung zu verwalten.
- Füllen Sie Pools vorab auf, um sicherzustellen, dass Instanzen verfügbar sind, wenn sie von Clustern benötigt werden.
Erstellen von Pools basierend auf Workloads
Sie können die Instanzbeschaffungszeit minimieren, indem Sie für jeden Instanztyp und jede Azure Databricks Runtime, die Ihre Organisation häufig verwendet, einen Pool erstellen. Wenn die meisten Datentechnikcluster beispielsweise Instanztyp A verwenden, Data Science-Cluster Instanztyp B und Analysecluster Instanztyp C, erstellen Sie einen Pool mit jedem Instanztyp.
Verwenden von Spotinstanzpools
Wenn Ihr Treiberknoten und die Workerknoten unterschiedliche Anforderungen haben, benutzen Sie jeweils einen anderen Pool.
Azure Databricks empfiehlt, keine Spotinstanzen für Ihren Treiberknoten zu verwenden. Wenn Sie einen Spotpool für Ihren Workerknoten verwenden, wählen Sie einen Bedarfspool als Treibertyp aus.
Konfigurieren Sie Pools für die Verwendung bedarfsbasierter Instanzen für Aufträge mit kurzen Ausführungszeiten und strengen Ausführungszeitanforderungen. Verwenden Sie bedarfsbasierte Instanzen, um zu verhindern, dass beschaffte Instanzen an einen höheren Bieter auf dem Spot-Markt verloren gehen.
Konfigurieren Sie Pools für die Verwendung von Spot-Instanzen für Cluster, die interaktive Entwicklung unterstützen, oder Aufträge, die Kosteneinsparungen gegenüber Zuverlässigkeit priorisieren.
Kennzeichnen von Pools zum Verwalten von Kosten und Abrechnung
Wenn Sie Pools mit der richtigen Kostenstelle kennzeichnen, können Sie die Kosten- und Nutzungsrückbuchung verwalten. Sie können mehrere benutzerdefinierte Tags verwenden, um einem Pool mehrere Kostenstellen zu zuordnen. Es ist jedoch wichtig zu verstehen, wie Tags beim Erstellen eines Clusters aus Pools weitergegeben werden. Tags aus Pools werden an die zugrunde liegenden Cloudanbieterinstanzen weitergegeben, die Tags des Clusters jedoch nicht. Wenden Sie alle benutzerdefinierten Tags an, die zum Verwalten der Rückbuchung der Computekosten des Cloudanbieters auf den Pool erforderlich sind.
Sowohl Pooltags als auch Clustertags werden an die Azure Databricks-Abrechnung weitergegeben. Sie können die Kombination aus Cluster- und Pooltags verwenden, um die Rückbuchung von Azure Databricks-Einheiten zu verwalten.
Weitere Informationen finden Sie unter Überwachen der Nutzung mithilfe von Tags.
Konfigurieren von Pools zur Kostenkontrolle
..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.
Vorabauffüllen von Pools
Um in vollem Umfang von Pools zu profitieren, können Sie neu erstellte Pools vorab auffüllen. Legen Sie Min Idle-Instanzen in der Poolkonfiguration auf einen Wert größer als 0 fest. Alternativ können Sie, wenn Sie die Empfehlung zum Festlegen dieses Werts auf 0 befolgen, einen Startauftrag verwenden, um sicherzustellen, dass neu erstellte Pools über verfügbare Instanzen verfügen, auf die Cluster zugreifen können.
Planen Sie bei Verwendung eines Startauftrags einen Auftrag mit flexiblen Ausführungszeitanforderungen, der ausgeführt wird, bevor Aufträge mit strengeren Leistungsanforderungen ausgeführt werden bzw. bevor Benutzer mit der Verwendung interaktiver Cluster beginnen. Nach Abschluss des Auftrags werden die für den Auftrag verwendeten Instanzen wieder an den Pool freigegeben. Legen Sie Einstellung für Min Idle-Instanz (Min. Leerlauf) auf 0 fest, und legen Sie die Idle Instance Auto Termination-Zeit (Automatische Beendigung von Leerlaufinstanzen) auf einen so hohen Wert fest, dass sichergestellt ist, dass Instanzen im Leerlauf für nachfolgende Aufträge verfügbar bleiben.
Mithilfe eines Startauftrags können die Poolinstanzen starten, den Pool auffüllen und für Downstreamaufträge oder interaktive Cluster verfügbar bleiben.