Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
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:
- Informationen zum Skalieren Ihrer Umgebungen finden Sie unter Umgebungen skalieren.
- Informationen zur Funktionsweise der Umgebungsskalierung finden Sie unter Umgebungsskalierung.
- Eine Anleitung zum Überwachen wichtiger Umgebungsmesswerte finden Sie unter Zustand und Leistung einer Umgebung anhand wichtiger Messwerte überwachen.
Ü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:
- Beginnen Sie mit Umgebungsvoreinstellungen.
- Führen Sie die DAGs aus.
- Beobachten Sie die Leistung Ihrer Umgebung.
- 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 der 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:
Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.
Klicken Sie auf den Namen Ihrer Umgebung.
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.
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:
Wenn die CPU-Nutzung des Planers konstant unter 30 bis 35 % liegt, haben Sie folgende Möglichkeiten:
Wenn die CPU-Nutzung des Planers für mehr als ein paar Prozent der Gesamtzeit 80 % überschreitet, können Sie Folgendes tun:
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.
Sehen Sie sich im Monitoring-Dashboard im Abschnitt DAG-Statistiken die Grafiken für Gesamtzeit für die DAG-Analyse.
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:
- Vereinfachen Sie Ihre DAGs, einschließlich ihrer Python-Abhängigkeiten.
- Erhöhen Sie das Parsing-Intervall für die DAG-Datei und das Auflistungsintervall für das DAG-Verzeichnis.
- Erhöhen Sie die Anzahl der Planer.
- Erhöhen Sie die CPU der Planer.
Bereinigung von Worker-Pods beobachten
Die Pod-Bereinigung kann auftreten, wenn ein bestimmter Pod im Cluster Ihrer Umgebung die Ressourcenlimits erreicht.
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:
- Erhöhen Sie den für Worker verfügbaren Arbeitsspeicher.
- Reduzieren Sie die Nebenläufigkeit von Workern. Auf diese Weise führt ein einzelner Worker weniger Aufgaben gleichzeitig aus. Dies stellt für jede einzelne Aufgabe mehr Arbeitsspeicher oder Speicherplatz bereit. Wenn Sie die Nebenläufigkeit von Workern ändern, sollten Sie vielleicht auch die maximale Anzahl von Workern erhöhen. Auf diese Weise bleibt die Anzahl der Aufgaben, die Ihre Umgebung gleichzeitig verarbeiten kann, gleich. Wenn Sie beispielsweise die Nebenläufigkeit von Workern von 12 auf 6 reduzieren, sollten Sie vielleicht die maximale Anzahl der Worker verdoppeln.
Aktive Worker überwachen
Die Anzahl der Worker in Ihrer Umgebung wird automatisch als Reaktion auf die Aufgaben in der Warteschlange skaliert.
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 ihr maximales Limit für Worker häufig erreicht und gleichzeitig die Anzahl der Aufgaben in der Celery-Warteschlange kontinuierlich hoch ist, sollten Sie vielleicht 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 basierend auf der Anzahl der Aufgaben in der Celery-Warteschlange skaliert werden, konfigurieren Sie Airflow so, dass Aufgaben nicht auf dem Weg in die Warteschlange 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.
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:
- Wenn die Arbeitsspeichernutzung der Worker das Limit erreicht, kann dies zu Worker-Pod-Bereinigungen führen. Erhöhen Sie den Worker-Arbeitsspeicher, um dieses Problem zu beheben.
- Wenn die Arbeitsspeichernutzung im Vergleich zum Limit minimal ist und keine Worker-Pod-Bereinigungen vorhanden sind, sollten Sie vielleicht den Worker-Arbeitsspeicher verringern.
Wenn die CPU-Nutzung der Worker das Limit erreicht (überschreitet 80 % für mehr als ein paar Prozent der Gesamtzeit), sollten Sie vielleicht Folgendes tun:
- Erhöhen Sie die Anzahl der Worker. Dadurch hat Ihre Umgebung mehr Kontrolle über die Kapazität, die für eine bestimmte Arbeitslast bereitgestellt wird.
- Erhöhen Sie die Worker-CPU oder reduzieren Sie die Worker-Nebenläufigkeit, wenn einzelne Aufgaben eine höhere CPU-Zuweisung benötigen. Andernfalls empfehlen wir, die Anzahl der Worker zu erhöhen.
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.
Beobachten Sie im Monitoring-Dashboard im Abschnitt Worker (Worker) Diagramm der Airflow-Aufgaben für Ihre Umgebung
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.
Beachten Sie im Monitoring-Dashboard im Abschnitt SQL-Datenbank, Grafiken für die CPU- und Arbeitsspeichernutzung durch die Airflow-Datenbank:
- 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.
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:
- Der Planer ist überlastet. Überwachen Sie Planer-CPU und -Arbeitsspeicher auf mögliche Probleme.
- Airflow-Konfigurationsoptionen drosseln die Ausführung. Versuchen Sie, die Nebenläufigkeit von Workern zu erhöhen, die DAG-Nebenläufigkeit zu erhöhen oder die maximale Anzahl aktiver Ausführungen pro DAG zu erhöhen.
- Es sind nicht genügend Worker zum Ausführen von Aufgaben vorhanden. Versuchen Sie, die maximale Anzahl von Workern zu erhöhen.
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.
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:
- Wenn die CPU-Nutzung des Webservers für mehr als einige Prozent der Gesamtzeit 80 % überschreitet, sollten Sie vielleicht die Webserver-CPU erhöhen.
- Bei hoher Webserver-Arbeitsspeichernutzung sollten Sie dem Webserver mehr Arbeitsspeicher hinzufügen.
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 der Traffic zu und aus der Airflow-Datenbank. Wir empfehlen, in den meisten Fällen zwei Airflow-Planer zu verwenden, Szenarien durchführen. Die Verwendung von drei Planern ist nur in seltenen Fällen erforderlich die besondere Überlegungen erfordern. Die Konfiguration von mehr als drei Schedulern führt häufig zu einer geringeren Leistung der Umgebung.
Wenn du eine schnellere Planung benötigst:
- Zwei Airflow-Planer konfigurieren
- Weisen Sie Airflow-Planern mehr CPU- und Arbeitsspeicherressourcen zu.
- dag-dir-list-interval verlängern
- min-file-process-interval erhöhen
- job-heartbeat-sec erhöhen
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 je nach Anforderung CPU- oder Arbeitsspeicherattribute 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. Bei Bedarf können Sie den CPU- oder Arbeitsspeicherparameter 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 | Hinweise |
---|---|---|---|
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 | Hinweise |
---|---|---|---|
scheduler |
min_file_process_interval |
Neuer Wert für das DAG-Parsing-Intervall | Der Standardwert in Sekunden ist 30 . |
Worker-Nebenläufigkeit
Die Nebenläufigkeitsleistung und die Fähigkeit Ihrer Umgebung zum Autoscaling sind verbunden auf zwei Einstellungen:
- die Mindestanzahl an Airflow-Workern
- den Parameter
[celery]worker_concurrency
Die von Cloud Composer bereitgestellten Standardwerte sind optimal für die meisten Anwendungsfälle, aber Ihre Umgebung könnte von benutzerdefinierte Anpassungen.
Leistungsaspekte der Nebenläufigkeit von Workern
Der Parameter [celery]worker_concurrency
definiert die Anzahl der Aufgaben, die ein einzelner Worker aus der Aufgabenwarteschlange abrufen kann.
Die Ausführungsgeschwindigkeit von Aufgaben hängt von
mehreren Faktoren wie Worker-CPU, Arbeitsspeicher
und die Art der Arbeit selbst.
Worker-Autoscaling
Cloud Composer überwacht die Aufgabenwarteschlange und erstellt zusätzliche Worker,
Aufgaben erledigt wird. Wenn Sie [celery]worker_concurrency
auf einen hohen Wert festlegen, kann jeder Worker viele Aufgaben übernehmen. Unter bestimmten Umständen wird die Warteschlange also möglicherweise nie voll, sodass das Autoscaling nie ausgelöst wird.
Beispiel: In einer Cloud Composer-Umgebung mit zwei Airflow-Workern
[celery]worker_concurrency
auf 100 gesetzt und die Tasks auf 200 in der Warteschlange
würde jeder Mitarbeiter 100 Aufgaben übernehmen. 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 auszuführen sind, kann ein hoher Wert in der [celery]worker_concurrency
-Einstellung zu einer übermäßigen Skalierung führen.
Wenn sich in dieser Umgebung beispielsweise 300 Aufgaben in der Warteschlange befinden, beginnt Cloud Composer, neue Worker zu erstellen. Aber wenn der erste
Die Ausführung von 200 Aufgaben wird abgeschlossen, wenn die neuen Worker bereit sind, ein vorhandener Worker
und sie aufnehmen kann. Das Endergebnis ist, dass durch Autoscaling neue Worker erstellt werden,
keine Aufgaben für sie.
Die Anpassung von [celery]worker_concurrency
für Sonderfälle sollte auf
auf die Spitzenausführungszeiten und die Anzahl der Warteschlangen:
- Bei Aufgaben, die länger dauern, sollten Worker nicht leer sein. in der Warteschlange.
- Erhöhen Sie für schnellere, kleinere Aufgaben die Mindestanzahl an Airflow-Worker, um eine übermäßige Skalierung zu vermeiden.
Synchronisierung von Aufgabenlogs
Airflow-Worker enthalten eine Komponente, die Protokolle 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 kann den Worker überlasten und zu Leistungsproblemen führen.
Wenn Leistungsprobleme aufgrund einer hohen Anzahl von Logsynchronisierungen auftreten
senken Sie die [celery]worker_concurrency
-Werte und passen Sie sie stattdessen an
Die Mindestanzahl von Airflow-Workern.
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:
- In Airflow 2.6.3 und höher muss der Mindestwert
32
sein,12 * worker_CPU
und6 * worker_memory
. - In Airflow-Versionen vor 2.6.3 ein Mindestwert aus
32
,12 * worker_CPU
und8 * 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. Die
Der Wert worker_memory
ist die Größe des Arbeitsspeichers, der einem einzelnen Worker zugewiesen ist. Wenn Worker in Ihrer Umgebung beispielsweise 0,5 CPUs und 4 GB Arbeitsspeicher jeweils verwenden, ist die Worker-Nebenläufigkeit auf 6
festgelegt. Der Worker-Gleichzeitigkeitswert
nicht von der Anzahl der Worker
in Ihrer Umgebung abhängig ist.
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 | Hinweise |
---|---|---|---|
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 | Hinweise |
---|---|---|---|
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
- Umgebungen skalieren
- Informationen zur Umgebungsskalierung
- Airflow-Konfigurationen überschreiben
- Zustand und Leistung einer Umgebung anhand wichtiger Messwerte überwachen