Freigeben über


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.

Ü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

Sie können die folgenden Konfigurationsoptionen verwenden, um die Kosten von Pools zu kontrollieren:

  • Legen Sie die Min Idle-Instanzen (Min. Leerlauf) auf 0 fest, um zu vermeiden, dass sie für ausgeführte Instanzen bezahlen, die keine Arbeit ausführen. Im Gegenzug kann es dabei zu einem Zeitanstieg kommen, wenn ein Cluster eine neue Instanz beschaffen muss.

  • Legen Sie die Max Capacity (Max. Kapazität) auf Grundlage der erwarteten Nutzung fest. Dadurch wird die Obergrenze für die maximale Anzahl verwendeter Instanzen und Instanzen im Leerlauf im Pool festgelegt. Wenn ein Auftrag oder Cluster eine Instanz aus einem Pool anfordert, der seine maximale Kapazität erreicht hat, schlägt die Anforderung fehl, und der Cluster erhält keine weiteren Instanzen mehr. Daher empfiehlt Databricks, die maximale Kapazität nur festzulegen, wenn ein strenges Instanzkontingent oder eine strikte Budgeteinschränkung vorliegt.

  • Legen Sie die Idle Instance Auto Termination-Zeit (Automatische Beendigung von Leerlaufinstanzen) fest, um einen Puffer zwischen dem Freigabezeitpunkt der Instanz aus dem Cluster und dem Zeitpunkt, zu dem sie aus dem Pool gelöscht wird, zur Verfügung zu stellen. Legen Sie dies auf einen Zeitraum fest, mit dem Sie die Kosten minimieren und gleichzeitig die Verfügbarkeit von Instanzen für geplante Aufträge sicherstellen können. Beispielsweise ist die Ausführung von Auftrag A für 8:00 Uhr geplant und dauert 40 Minuten. Die Ausführung von Auftrag B ist beispielsweise für 9:00 Uhr geplant und dauert 30 Minuten. Legen Sie den Wert für die automatische Beendigung (Auto Termination) auf 20 Minuten fest, um sicherzustellen, dass Instanzen, die nach Abschluss von Auftrag A an den Pool zurückgegeben werden, beim Start von Auftrag B verfügbar sind. Diese Instanzen werden, sofern sie nicht von einem anderen Cluster beansprucht werden, 20 Minuten nach dem Ende von Auftrag B beendet.

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.