Umgebungsleistung und -kosten optimieren

Cloud Composer 1 Cloud Composer 2

Auf dieser Seite wird erläutert, wie Sie die Skalierungs- und Leistungsparameter Ihrer Umgebung an die Anforderungen Ihres Projekts anpassen, damit Sie die Leistung verbessern und die Kosten für Ressourcen reduzieren, die von Ihrer Umgebung nicht verwendet werden.

Weitere Seiten zur Skalierung und Optimierung:

Übersicht über den Optimierungsprozess

Änderungen an den Parametern Ihrer Umgebung können sich auf viele Aspekte der Leistung Ihrer Umgebung auswirken. Wir empfehlen, Ihre Umgebung in Iterationen zu optimieren:

  1. Beginnen Sie mit Umgebungsvoreinstellungen.
  2. Führen Sie die DAGs aus.
  3. Beobachten Sie die Leistung Ihrer Umgebung.
  4. Passen Sie die Skalierungs- und Leistungsparameter der Umgebungs an und wiederholen Sie dies ab dem vorherigen Schritt.

Mit Umgebungsvoreinstellungen beginnen

Beim Erstellen einer Umgebung in der Google Cloud Console können Sie eine von drei Umgebungsvoreinstellungen auswählen. Diese Voreinstellungen legen die anfängliche Skalierungs- und Leistungskonfiguration Ihrer Umgebung fest. Nachdem Sie Ihre Umgebung erstellt haben, können Sie alle Skalierungs- und Leistungsparameter ändern, die von einer Voreinstellung bereitgestellt werden.

Wir empfehlen, mit einer der Voreinstellungen zu beginnen, basierend auf den folgenden Schätzungen:

  • Gesamtzahl der DAGs, die Sie in der Umgebung bereitstellen möchten
  • Maximale Anzahl gleichzeitiger DAG-Ausführungen
  • Maximale Anzahl gleichzeitiger Aufgaben

Die Leistung Ihrer Umgebung hängt von der Implementierung bestimmter DAGs ab, die Sie in Ihrer Umgebung ausführen. Die folgende Tabelle enthält Schätzungen, die auf dem durchschnittlichen Ressourcenverbrauch basieren. Wenn Sie davon ausgehen, dass Ihre DAGs mehr Ressourcen verbrauchen, passen Sie die Schätzungen entsprechend an.

Empfohlene Voreinstellung DAGs insgesamt Maximale Anzahl gleichzeitiger DAG-Ausführungen Maximale Anzahl gleichzeitiger Aufgaben
Klein 50 15 18
Mittel 250 60 100
Groß 1000 250 400

Eine Umgebung muss beispielsweise 40 DAGs ausführen. Alle DAGs müssen gleichzeitig mit jeweils einer aktiven Aufgabe ausgeführt werden. Diese Umgebung verwendet dann die Voreinstellung „Mittel“, da die maximale Anzahl gleichzeitiger DAG-Ausführungen und Aufgaben die empfohlenen Schätzungen für die Voreinstellung „Klein“ überschreitet.

DAGs ausführen

Nachdem die Umgebung erstellt wurde, laden Sie Ihre DAGs darin hoch. Führen Sie die DAGs aus und beobachten Sie die Leistung der Umgebung.

Wir empfehlen, Ihre DAGs nach einem Zeitplan auszuführen, der die reale Anwendung Ihrer DAGs widerspiegelt. Wenn Sie beispielsweise mehrere DAGs gleichzeitig ausführen möchten, prüfen Sie die Leistung Ihrer Umgebung, wenn alle diese DAGs gleichzeitig ausgeführt werden.

Leistung der Umgebung beobachten

In diesem Abschnitt werden die gängigsten Aspekte der Kapazitäts- und Leistungsoptimierung von Cloud Composer 2 beschrieben. Wir empfehlen Ihnen, diese Anleitung Schritt für Schritt zu befolgen, da die gängigsten Leistungsüberlegungen zuerst behandelt werden.

Monitoring-Dashboard aufrufen

Sie können die Leistungsmesswerte Ihrer Umgebung im Monitoring-Dashboard Ihrer Umgebung überwachen.

So rufen Sie das Monitoring-Dashboard für Ihre Umgebung auf:

  1. Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.

    Zur Seite Umgebungen“

  2. Klicken Sie auf den Namen Ihrer Umgebung.

  3. Rufen Sie den Tab Monitoring auf.

CPU- und Arbeitsspeichermesswerte des Planers überwachen

Mit den CPU- und Arbeitsspeichermesswerten des Airflow-Planers können Sie prüfen, ob die Leistung des Planers einen Engpass für die Airflow-Gesamtleistung darstellt.

Diagramme für Airflow-Planer
Abbildung 1. Diagramme für Airflow-Planer (zum Vergrößern klicken)

Sehen Sie sich im Monitoring-Dashboard im Abschnitt Planer Diagramme für die Airflow-Planer Ihrer Umgebung an:

  • Gesamte CPU-Nutzung der Planer
  • Gesamte Arbeitsspeichernutzung der Planer

Nehmen Sie Anpassungen entsprechend Ihren Beobachtungen vor:

Gesamt-Parsingzeit für alle DAG-Dateien überwachen

Die Planer parsen DAGs, bevor DAG-Ausführungen geplant werden. Wenn das Parsen von DAGs sehr lange dauert, wird dadurch Kapazität des Planers verbraucht und die Leistung von DAG-Ausführungen reduziert.

Diagramm der DAG-Gesamt-Parsingzeit
Abbildung 2. Diagramm der DAG-Parsingzeit (zum Vergrößern klicken)

Sehen Sie sich im Monitoring-Dashboard im Abschnitt DAG-Statistiken Diagramme für die gesamte DAG-Analysezeit an.

Wenn der Wert etwa zehn Sekunden überschreitet, sind Ihre Planer möglicherweise mit dem DAG-Parsing überlastet und können DAGs nicht effektiv ausführen. Die standardmäßige DAG-Parsing-Häufigkeit in Airflow beträgt 30 Sekunden. Wenn die DAG-Parsingzeit diesen Grenzwert überschreitet, überschneiden sich Parsingzyklen, wodurch die Kapazität des Planers erschöpft wird.

Gemäß Ihren Beobachtungen sollten Sie vielleicht Folgendes tun:

Bereinigung von Worker-Pods beobachten

Die Pod-Bereinigung kann auftreten, wenn ein bestimmter Pod im Cluster Ihrer Umgebung die Ressourcenlimits erreicht.

Diagramm zur Worker-Pod-Bereinigung
Abbildung 3. Diagramm mit Worker-Pod-Bereinigungen (zum Vergrößern klicken)

Wenn ein Airflow-Worker-Pod bereinigt wird, werden alle auf diesem Pod ausgeführten Aufgabeninstanzen unterbrochen und später von Airflow als fehlgeschlagen markiert.

Die meisten Probleme bei Worker-Pod-Bereinigungen treten auf, wenn in Workern nicht genügend Arbeitsspeicher zur Verfügung steht.

Beobachten Sie im Monitoring-Dashboard im Abschnitt Worker die Diagramme für die Worker-Pods-Bereinigungen für Ihre Umgebung.

Das Diagramm Gesamte Arbeitsspeichernutzung der Worker zeigt eine Gesamtperspektive für die Umgebung. Ein einzelner Worker kann das Arbeitsspeicherlimit weiterhin überschreiten, auch wenn die Arbeitsspeicherauslastung auf Umgebungsebene in Ordnung ist.

Gemäß Ihren Beobachtungen sollten Sie vielleicht Folgendes tun:

Aktive Worker überwachen

Die Anzahl der Worker in Ihrer Umgebung wird automatisch als Reaktion auf die Aufgaben in der Warteschlange skaliert.

Diagramme zu aktiven Workern und Aufgaben in der Warteschlange
Abbildung 4. Diagramme zu aktiven Workern und Aufgaben in der Warteschlange (zum Vergrößern klicken)

Beobachten Sie im Monitoring-Dashboard im Abschnitt Worker die Diagramme für die Anzahl aktiver Worker und die Anzahl der Aufgaben in der Warteschlange:

  • Aktive Worker
  • Airflow-Tasks

Nehmen Sie Anpassungen entsprechend Ihren Beobachtungen vor:

  • Wenn die Umgebung häufig ihre maximale Anzahl von Workern erreicht und gleichzeitig die Anzahl der Aufgaben in der Celery-Warteschlange kontinuierlich hoch ist, sollten Sie die maximale Anzahl von Workern erhöhen.
  • Wenn es lange Planungsverzögerungen zwischen Aufgaben gibt, aber die Umgebung gleichzeitig nicht bis zur maximalen Anzahl von Workern hochskaliert wird, gibt es wahrscheinlich eine Airflow-Einstellung, die die Ausführung drosselt und verhindert, dass Cloud Composer-Mechanismen die Umgebung skalieren. Da Cloud Composer 2-Umgebungen auf Basis der Anzahl der Aufgaben in der Celery-Warteschlange skaliert werden, sollten Sie Airflow so konfigurieren, dass Aufgaben auf dem Weg in die Warteschlange nicht gedrosselt werden:

    • Erhöhen Sie die Nebenläufigkeit von Workern. Die Nebenläufigkeit von Workern muss auf einen Wert gesetzt werden, der höher als die erwartete maximale Anzahl gleichzeitiger Aufgaben ist, geteilt durch die maximale Anzahl von Workern in der Umgebung.
    • Erhöhen Sie die DAG-Nebenläufigkeit, wenn ein einzelner DAG eine große Anzahl von Aufgaben parallel ausführt, was dazu führen kann, dass die maximale Anzahl von ausgeführten Aufgabeninstanzen pro DAG erreicht wird.
    • Erhöhen Sie die maximale Anzahl aktiver Ausführungen pro DAG, wenn Sie denselben DAG mehrmals parallel ausführen, was zu einer Drosselung der Ausführung durch Airflow führen kann, da die maximale Anzahl aktiver Ausführungen pro DAG erreicht ist.

Worker-CPU- und -Arbeitsspeichernutzung überwachen

Überwachen Sie die gesamte CPU- und Arbeitsspeichernutzung, die über alle Worker in Ihrer Umgebung aggregiert wurde, um festzustellen, ob Airflow-Worker die Ressourcen Ihrer Umgebung ordnungsgemäß nutzen.

Worker-CPU- und -Arbeitsspeicherdiagramme
Abbildung 5. Worker-CPU- und -Arbeitsspeicherdiagramme (zum Vergrößern anklicken)

Sehen Sie sich im Monitoring-Dashboard im Abschnitt Worker Diagramme für die CPU- und Arbeitsspeichernutzung durch Airflow-Worker an:

  • Gesamte CPU-Nutzung der Worker
  • Gesamte Arbeitsspeichernutzung der Worker

Dieses Diagramm stellt die aggregierte Ressourcennutzung dar. Einzelne Worker können ihre Kapazitätslimits möglicherweise weiterhin erreichen, auch wenn in der aggregierten Ansicht freie Kapazitäten angezeigt werden.

Nehmen Sie Anpassungen entsprechend Ihren Beobachtungen vor:

Ausgeführte Aufgaben und Aufgaben in der Warteschlange überwachen

Sie können die Anzahl der ausgeführten Aufgaben in der Warteschlange überwachen, um die Effizienz des Planungsprozesses zu überprüfen.

Diagramm, das ausgeführte und in die Warteschlange gestellte Aufgaben anzeigt
Abbildung 6. Diagramm, das ausgeführte und in die Warteschlange gestellte Aufgaben anzeigt (zum Vergrößern klicken)

Sehen Sie sich im Monitoring-Dashboard im Abschnitt Worker das Diagramm Airflow-Aufgaben für Ihre Umgebung an.

Aufgaben in der Warteschlange warten darauf, von Workern ausgeführt zu werden. Wenn in Ihrer Umgebung Aufgaben in der Warteschlange vorhanden sind, bedeutet dies, dass die Worker in Ihrer Umgebung bereits andere Aufgaben ausführen.

Warteschlangen sind in einer Umgebung nie ganz leer, insbesondere bei Verarbeitungsspitzen. Wenn Sie jedoch eine hohe Anzahl von Aufgaben in der Warteschlange oder einen wachsenden Trend im Diagramm beobachten, kann dies darauf hindeuten, dass die Worker nicht genügend Kapazität zur Verarbeitung der Aufgaben haben oder dass Airflow die Ausführung der Aufgaben drosselt.

Eine hohe Anzahl von Aufgaben in der Warteschlange wird normalerweise beobachtet, wenn die Anzahl der laufenden Aufgaben ebenfalls das Maximum erreicht.

So beheben Sie beide Probleme:

CPU- und Arbeitsspeichernutzung der Datenbank überwachen

Leistungsprobleme der Airflow-Datenbank können zu Problemen bei der DAG-Ausführung führen. Die Datenbanklaufwerknutzung ist in der Regel kein Grund zur Sorge, da der Speicher nach Bedarf automatisch erweitert wird.

Diagramme für Datenbank-CPU- und -Arbeitsspeicher
Abbildung 7. Diagramme für Datenbank-CPU- und -Arbeitsspeicher (zum Vergrößern klicken)

Sehen Sie sich im Monitoring-Dashboard im Abschnitt Worker Diagramme für die CPU- und Arbeitsspeichernutzung durch die Airflow-Datenbank an:

  • CPU-Nutzung der Datenbank
  • Arbeitsspeichernutzung der Datenbank

Wenn die CPU-Nutzung der Datenbank für mehr als einige Prozent der Gesamtzeit 80 % überschreitet, ist die Datenbank überlastet und erfordert eine Skalierung.

Die Einstellungen für die Datenbankgröße werden durch das Attribut für die Größe Ihrer Umgebung gesteuert. Ändern Sie die Umgebungsgröße in eine andere Stufe („Klein“, „Mittel“ oder „Groß“), um die Datenbank vertikal oder horizontal zu skalieren. Wenn Sie die Umgebungsgröße erhöhen, steigen die Kosten Ihrer Umgebung.

Latenz der Aufgabenplanung überwachen

Wenn die Latenz zwischen Aufgaben die erwarteten Werte überschreitet (z. B. 20 Sekunden oder mehr), kann dies darauf hindeuten, dass die Umgebung die Last der Aufgaben, die von DAG-Ausführungen generiert werden, nicht verarbeiten kann.

Diagramm zur Aufgabenlatenz (Airflow-Benutzeroberfläche)
Abbildung 8. Diagramm zur Aufgabenlatenz, Airflow-Benutzeroberfläche (zum Vergrößern klicken)

Sie können das Latenzdiagramm der Aufgabenplanung in der Airflow-Benutzeroberfläche Ihrer Umgebung aufrufen.

In diesem Beispiel liegen die Verzögerungen (2,5 und 3,5 Sekunden) innerhalb der zulässigen Grenzen, aber deutlich höhere Latenzen können auf Folgendes hinweisen:

Webserver-CPU und -Arbeitsspeicher überwachen

Die Leistung des Airflow-Webservers wirkt sich auf die Airflow-Benutzeroberfläche aus. Es ist nicht üblich, dass der Webserver überlastet ist. Wenn es doch geschieht, kann sich die Leistung der Airflow-Benutzeroberfläche verschlechtern, aber dies wirkt sich nicht auf die Leistung von DAG-Ausführungen aus.

Webserver-CPU- und Arbeitsspeicherdiagramme
Abbildung 9. Webserver-CPU- und Arbeitsspeicherdiagramme (zum Vergrößern anklicken)

Sehen Sie sich im Monitoring-Dashboard im Abschnitt Webserver Diagramme für den Airflow-Webserver an:

  • Webserver-CPU-Nutzung
  • Webserver-Arbeitsspeichernutzung

Basierend auf Ihren Beobachtungen:

Skalierungs- und Leistungsparameter der Umgebung anpassen

Anzahl der Planer ändern

Wenn Sie die Anzahl der Planer anpassen, verbessern Sie die Planerkapazität und Ausfallsicherheit der Airflow-Planung.

Wenn Sie die Anzahl der Planer erhöhen, erhöht sich auch der Traffic zur und von der Airflow-Datenbank. Wir empfehlen in den meisten Szenarien, zwei Airflow-Planer zu verwenden. Die Verwendung von mehr als zwei Planern ist nur in seltenen Fällen erforderlich, die besondere Überlegungen erfordern.

Wenn Sie die Terminplanung beschleunigen möchten:

Beispiele:

Console

Führen Sie die Schritte unter Anzahl der Planer anpassen aus, um die erforderliche Anzahl von Planern für Ihre Umgebung festzulegen.

gcloud

Führen Sie die Schritte unter Anzahl der Planer anpassen aus, um die erforderliche Anzahl von Planern für Ihre Umgebung festzulegen.

Im folgenden Beispiel wird die Anzahl der Planer auf zwei festgelegt:

gcloud composer environments update example-environment \
    --scheduler-count=2

Terraform

Führen Sie die Schritte unter Anzahl der Planer anpassen aus, um die erforderliche Anzahl von Planern für Ihre Umgebung festzulegen.

Im folgenden Beispiel wird die Anzahl der Planer auf zwei festgelegt:

resource "google_composer_environment" "example-environment" {

  # Other environment parameters

  config {
    workloads_config {
      scheduler {
        count = 2
      }
    }
  }
}

CPU und Arbeitsspeicher für Planer ändern

Die CPU- und Arbeitsspeicherparameter gelten für jeden Planer in Ihrer Umgebung. Wenn Ihre Umgebung beispielsweise zwei Planer hat, beträgt die Gesamtkapazität das Doppelte der angegebenen Menge an CPU und Arbeitsspeicher.

Console

Führen Sie die Schritte unter Skalierungs- und Leistungsparameter für Worker, Planer und Webserver anpassen aus, um CPU und Arbeitsspeicher für Planer festzulegen.

gcloud

Führen Sie die Schritte unter Skalierungs- und Leistungsparameter für Worker, Planer und Webserver anpassen aus, um CPU und Arbeitsspeicher für Planer festzulegen.

Im folgenden Beispiel werden die CPU und der Arbeitsspeicher für Planer geändert. Sie können je nach Bedarf nur CPU- oder Arbeitsspeicherattribute angeben.

gcloud composer environments update example-environment \
  --scheduler-cpu=0.5 \
  --scheduler-memory=3.75

Terraform

Führen Sie die Schritte unter Skalierungs- und Leistungsparameter für Worker, Planer und Webserver anpassen aus, um CPU und Arbeitsspeicher für Planer festzulegen.

Im folgenden Beispiel werden die CPU und der Arbeitsspeicher für Planer geändert. Sie können die CPU- oder Speicherattribute je nach Bedarf weglassen.

resource "google_composer_environment" "example-environment" {

  # Other environment parameters

  config {
    workloads_config {
      scheduler {
        cpu = "0.5"
        memory_gb = "3.75"
      }
    }
  }
}

Maximale Anzahl der Worker ändern

Wenn Sie die maximale Anzahl von Workern erhöhen, kann Ihre Umgebung bei Bedarf automatisch auf eine höhere Anzahl von Workern skaliert werden.

Wenn Sie die maximale Anzahl von Workern verringern, wird die maximale Kapazität der Umgebung reduziert. Es kann aber auch hilfreich sein, die Umgebungskosten zu senken.

Beispiele:

Console

Führen Sie die Schritte unter Mindest- und Höchstanzahl der Worker anpassen aus, um die erforderliche maximale Anzahl von Workern für Ihre Umgebung festzulegen.

gcloud

Führen Sie die Schritte unter Mindest- und Höchstanzahl der Worker anpassen aus, um die erforderliche maximale Anzahl von Workern für Ihre Umgebung festzulegen.

Im folgenden Beispiel wird die maximale Anzahl der Worker auf sechs festgelegt:

gcloud composer environments update example-environment \
    --max-workers=6

Terraform

Führen Sie die Schritte unter Mindest- und Höchstanzahl der Worker anpassen aus, um die erforderliche maximale Anzahl von Workern für Ihre Umgebung festzulegen.

Im folgenden Beispiel wird die maximale Anzahl von Planern auf sechs festgelegt:

resource "google_composer_environment" "example-environment" {

  # Other environment parameters

  config {
    workloads_config {
      worker {
        max_count = "6"
      }
    }
  }
}

Worker-CPU und -Arbeitsspeicher ändern

  • Das Verringern des Worker-Arbeitsspeichers kann hilfreich sein, wenn das Worker-Nutzungsdiagramm eine sehr niedrige Arbeitsspeicherauslastung anzeigt.

  • Wenn Sie den Worker-Arbeitsspeicher erhöhen, können Worker mehr Aufgaben gleichzeitig oder mehr Arbeitsspeicher erfordernde Aufgaben verarbeiten. Dies könnte das Problem von Worker-Pod-Bereinigungen beheben.

  • Eine Verringerung der Worker-CPU kann hilfreich sein, wenn das CPU-Nutzungsdiagramm der Worker anzeigt, dass die CPU-Ressourcen stark überlastet sind.

  • Wenn Sie die Worker-CPU erhöhen, können Worker mehr Aufgaben gleichzeitig verarbeiten und es kann in einigen Fällen die Zeit für die Verarbeitung dieser Aufgaben reduzieren.

Durch das Ändern der CPU oder des Arbeitsspeichers der Worker werden Worker neu gestartet. Dies kann sich auf laufende Aufgaben auswirken. Dies wird empfohlen, wenn keine DAGs ausgeführt werden.

Die CPU- und Arbeitsspeicherparameter gelten für jeden Worker in Ihrer Umgebung. Wenn Ihre Umgebung beispielsweise vier Worker hat, beträgt die Gesamtkapazität das Vierfache der angegebenen Menge an CPU und Arbeitsspeicher.

Console

Führen Sie die Schritte unter Skalierungs- und Leistungsparameter für Worker, Planer und Webserver anpassen aus, um CPU und Arbeitsspeicher für Worker festzulegen.

gcloud

Führen Sie die Schritte unter Skalierungs- und Leistungsparameter für Worker, Planer und Webserver anpassen aus, um CPU und Arbeitsspeicher für Worker festzulegen.

Im folgenden Beispiel werden die CPU und der Arbeitsspeicher für Worker geändert. Bei Bedarf können Sie das CPU- oder Arbeitsspeicherattribut weglassen.

gcloud composer environments update example-environment \
  --worker-memory=3.75 \
  --worker-cpu=2

Terraform

Führen Sie die Schritte unter Skalierungs- und Leistungsparameter für Worker, Planer und Webserver anpassen aus, um CPU und Arbeitsspeicher für Worker festzulegen.

Im folgenden Beispiel werden die CPU und der Arbeitsspeicher für Worker geändert. Sie können den CPU- oder Arbeitsspeicherparameter bei Bedarf weglassen.

resource "google_composer_environment" "example-environment" {

  # Other environment parameters

  config {
    workloads_config {
      worker {
        cpu = "2"
        memory_gb = "3.75"
      }
    }
  }
}

Webserver-CPU und -Arbeitsspeicher ändern

Eine Verringerung von Webserver-CPU oder -Arbeitsspeicher kann hilfreich sein, wenn das Webserver-Nutzungsdiagramm anzeigt, dass die CPU kontinuierlich nicht ausgelastet ist.

Durch das Ändern von Webserverparametern wird der Webserver neu gestartet. Dies führt zu einem vorübergehenden Ausfall des Webservers. Wir empfehlen Ihnen, Änderungen außerhalb der regulären Nutzungszeiten vorzunehmen.

Console

Führen Sie die Schritte unter Skalierungs- und Leistungsparameter für Worker, Planer und Webserver anpassen aus, um CPU und Arbeitsspeicher für den Webserver festzulegen.

gcloud

Führen Sie die Schritte unter Skalierungs- und Leistungsparameter für Worker, Planer und Webserver anpassen aus, um CPU und Arbeitsspeicher für den Webserver festzulegen.

Im folgenden Beispiel werden die CPU und der Arbeitsspeicher für den Webserver geändert. Sie können je nach Anforderung CPU- oder Arbeitsspeicherattribute weglassen.

gcloud composer environments update example-environment \
    --web-server-cpu=2 \
    --web-server-memory=3.75

Terraform

Führen Sie die Schritte unter Skalierungs- und Leistungsparameter für Worker, Planer und Webserver anpassen aus, um CPU und Arbeitsspeicher für den Webserver festzulegen.

Im folgenden Beispiel werden die CPU und der Arbeitsspeicher für den Webserver geändert. Sie können je nach Anforderung CPU- oder Arbeitsspeicherattribute weglassen.

resource "google_composer_environment" "example-environment" {

  # Other environment parameters

  config {
    workloads_config {
      web_server {
        cpu = "2"
        memory_gb = "3.75"
      }
    }
  }
}

Umgebungsgröße ändern

Durch das Ändern der Umgebungsgröße wird die Kapazität von Cloud Composer-Backend-Komponenten wie der Airflow-Datenbank und der Airflow-Warteschlange geändert.

  • Erwägen Sie, die Umgebungsgröße zu verringern (z. B. „Groß“ zu „Mittel“ oder „Mittel“ zu „Klein“), wenn die Messwerte zur Datenbanknutzung deutlich eine mangelnde Auslastung anzeigen.
  • Wenn Sie eine hohe Auslastung der Airflow-Datenbank beobachten, sollten Sie vielleicht die Umgebungsgröße erhöhen.

Console

Führen Sie die Schritte unter Umgebungsgröße anpassen aus, um die Umgebungsgröße festzulegen.

gcloud

Führen Sie die Schritte unter Umgebungsgröße anpassen aus, um die Umgebungsgröße festzulegen.

Im folgenden Beispiel wird die Größe der Umgebung in "Mittel" geändert.

gcloud composer environments update example-environment \
    --environment-size=medium

Terraform

Führen Sie die Schritte unter Umgebungsgröße anpassen aus, um die Umgebungsgröße festzulegen.

Im folgenden Beispiel wird die Größe der Umgebung in "Mittel" geändert.

resource "google_composer_environment" "example-environment" {

  # Other environment parameters

  config {
    environment_size = "medium"
  }
}

Auflistungsintervall des DAG-Verzeichnisses ändern

Wenn Sie das Auflistungsintervall des DAG-Verzeichnisses erhöhen, wird die Planerlast im Zusammenhang mit der Erkennung neuer DAGs im Bucket der Umgebung reduziert.

  • Dieses Intervall sollte vielleicht erhöht werden, wenn Sie selten neue DAGs bereitstellen.
  • Sie sollten dieses Intervall Intervall verringern, wenn Airflow schneller auf neu bereitgestellte DAG-Dateien reagieren soll.

Zum Ändern dieses Parameters überschreiben Sie die folgende Airflow-Konfigurationsoption:

Bereich Schlüssel Wert Notes
scheduler dag_dir_list_interval Neuer Wert für das Auflistungsintervall Der Standardwert in Sekunden ist 120.

Parsing-Intervall für DAG-Dateien ändern

Durch Erhöhen des DAG-Datei-Parsing-Intervalls wird die Planerlast reduziert, die mit dem kontinuierlichen Parsen von DAGs in der DAG-Bag verknüpft ist.

Erhöhen Sie dieses Intervall, wenn Sie eine hohe Anzahl von DAGs haben, die sich nicht zu häufig ändern, oder eine hohe Planerlast im Allgemeinen beobachten.

Zum Ändern dieses Parameters überschreiben Sie die folgende Airflow-Konfigurationsoption:

Bereich Schlüssel Wert Notes
scheduler min_file_process_interval Neuer Wert für das DAG-Parsing-Intervall Der Standardwert in Sekunden ist 30.

Worker-Nebenläufigkeit

Die Gleichzeitigkeitsleistung und die Autoscaling-Funktion Ihrer Umgebung hängen mit zwei Einstellungen zusammen:

  • die Mindestanzahl von Airflow-Workern
  • den Parameter [celery]worker_concurrency

Die von Cloud Composer bereitgestellten Standardwerte sind für die meisten Anwendungsfälle optimal. Ihre Umgebung kann jedoch von benutzerdefinierten Anpassungen profitieren.

Überlegungen zur Leistung der Nebenläufigkeit von Workern

Der Parameter [celery]worker_concurrency definiert die Anzahl der Aufgaben, die ein einzelner Worker aus der Aufgabenwarteschlange übernehmen kann. Die Ausführungsgeschwindigkeit der Aufgabe hängt von mehreren Faktoren ab, z. B. Worker-CPU, Arbeitsspeicher und der Art der Arbeit selbst.

Worker-Autoscaling

Cloud Composer überwacht die Aufgabenwarteschlange und erstellt zusätzliche Worker, die wartende Aufgaben übernehmen. Wenn Sie [celery]worker_concurrency auf einen hohen Wert setzen, kann jeder Worker viele Aufgaben übernehmen. Unter bestimmten Umständen füllt sich die Warteschlange daher möglicherweise nie, sodass das Autoscaling nie ausgelöst wird.

Beispiel: In einer Cloud Composer-Umgebung mit zwei Airflow-Workern, [celery]worker_concurrency auf 100 festgelegt, und Aufgaben 200 in der Warteschlange, nimmt jeder Worker 100 Aufgaben auf. Dadurch bleibt die Warteschlange leer und löst kein Autoscaling aus. Wenn diese Aufgaben lange dauern, kann dies zu Leistungsproblemen führen.

Wenn die Aufgaben jedoch klein und schnell ausgeführt werden können, könnte ein hoher Wert in der [celery]worker_concurrency-Einstellung zu einer überhöhten Skalierung führen. Wenn sich in dieser Umgebung beispielsweise 300 Aufgaben in der Warteschlange befinden, beginnt Cloud Composer mit der Erstellung neuer Worker. Wenn jedoch die ersten 200 Aufgaben fertig sind, bevor die neuen Worker bereit sind, können sie von einem vorhandenen Worker aufgenommen werden. Das Endergebnis ist, dass durch das Autoscaling neue Worker erstellt werden, für sie aber keine Aufgaben vorhanden sind.

Wenn Sie [celery]worker_concurrency für Sonderfälle anpassen, sollte dies auf Ihren Spitzenausführungszeiten und Warteschlangennummern basieren:

  • Bei Aufgaben, die länger dauern, sollten Worker die Warteschlange nicht vollständig leeren können.
  • Erhöhen Sie für schnellere, kleinere Aufgaben die Mindestanzahl von Airflow-Workern, um eine übermäßige Skalierung zu vermeiden.

Aufgabenprotokolle synchronisieren

Airflow-Worker enthalten eine Komponente, die Logs zur Aufgabenausführung mit Cloud Storage-Buckets synchronisiert. Eine hohe Anzahl gleichzeitiger Aufgaben, die von einem einzelnen Worker ausgeführt werden, führt zu einer hohen Anzahl von Synchronisierungsanfragen. Dies könnte Ihren Worker überlasten und zu Leistungsproblemen führen.

Wenn Sie aufgrund einer hohen Anzahl von Traffic zur Logsynchronisierung Leistungsprobleme feststellen, senken Sie die [celery]worker_concurrency-Werte und passen Sie stattdessen die Mindestanzahl von Airflow-Workern an.

Nebenläufigkeit von Workern ändern

Wenn Sie diesen Parameter ändern, wird die Anzahl der Aufgaben angepasst, die ein einzelner Worker gleichzeitig ausführen kann.

Beispielsweise kann ein Worker mit 0,5 CPUs normalerweise sechs gleichzeitige Aufgaben verarbeiten. Eine Umgebung mit drei solchen Workern kann bis zu 18 Aufgaben gleichzeitig ausführen.

  • Erhöhen Sie diesen Parameter, wenn sich Aufgaben in der Warteschlange befinden und Ihre Worker einen geringen Prozentsatz ihrer CPUs und des Arbeitsspeichers gleichzeitig verwenden.

  • Verringern Sie diesen Parameter, wenn Sie Pod-Bereinigungen erhalten. Dies würde die Anzahl der Aufgaben reduzieren, die ein einzelner Worker zu verarbeiten versucht. Alternativ können Sie den Worker-Arbeitsspeicher erhöhen.

Der Standardwert für die Nebenläufigkeit von Workern ist gleich:

  • In Airflow 2.6.3 und höher ein Mindestwert von 32, 12 * worker_CPU und 6 * worker_memory.
  • In Airflow-Versionen vor 2.6.3 ein Mindestwert von 32, 12 * worker_CPU und 8 * worker_memory.
  • In Airflow-Versionen vor 2.3.3 12 * worker_CPU.

Der Wert worker_CPU ist die Anzahl der CPUs, die einem einzelnen Worker zugewiesen sind. Der Wert worker_memory ist die Größe des Arbeitsspeichers, der einem einzelnen Worker zugewiesen ist. Wenn Worker in Ihrer Umgebung beispielsweise jeweils 0, 5 CPU und 4 GB Arbeitsspeicher verwenden, wird die Nebenläufigkeit der Worker auf 6 festgelegt. Der Wert für die Nebenläufigkeit von Workern hängt nicht von der Anzahl der Worker in Ihrer Umgebung ab.

Zum Ändern dieses Parameters überschreiben Sie die folgende Airflow-Konfigurationsoption:

Bereich Schlüssel Wert
celery worker_concurrency Neuer Wert für Worker-Nebenläufigkeit

Nebenläufigkeit von DAGs ändern

Die DAG-Nebenläufigkeit definiert die maximale Anzahl von Aufgabeninstanzen, die in jedem DAG gleichzeitig ausgeführt werden können. Erhöhen Sie diese Anzahl, wenn Ihre DAGs eine große Anzahl gleichzeitiger Aufgaben ausführen. Wenn diese Einstellung niedrig ist, verzögert der Planer das Einfügen weiterer Aufgaben in die Warteschlange, wodurch auch die Effizienz des Umgebungs-Autoscalings reduziert wird.

Zum Ändern dieses Parameters überschreiben Sie die folgende Airflow-Konfigurationsoption:

Bereich Schlüssel Wert Notes
core max_active_tasks_per_dag Neuer Wert für DAG-Nebenläufigkeit Der Standardwert ist 16.

Maximale Anzahl aktiver Ausführungen pro DAG erhöhen

Dieses Attribut definiert die maximale Anzahl aktiver DAG-Ausführungen pro DAG. Wenn derselbe DAG gleichzeitig mehrmals ausgeführt werden muss, z. B. mit verschiedenen Eingabeargumenten, kann der Planer solche Ausführungen aufgrund dieses Attributs parallel starten.

Zum Ändern dieses Parameters überschreiben Sie die folgende Airflow-Konfigurationsoption:

Bereich Schlüssel Wert Notes
core max_active_runs_per_dag Neuer Wert für die maximale Anzahl aktiver Ausführungen pro DAG Der Standardwert ist 25.

Nächste Schritte