Kontingente und Limits

Kontingente

Der verwaltete Dataflow-Dienst hat die folgenden Kontingentlimits:

  • Jeder Nutzer kann bis zu 3.000.000 Anfragen pro Minute senden.
  • Jeder Dataflow-Job kann maximal 1.000 Compute Engine-Instanzen verwenden.
  • Jedes Google Cloud-Projekt kann mindestens 25 parallele Dataflow-Jobs ausführen.
  • Jeder Dataflow-Worker hat eine maximale Anzahl von Logs, die in einem Zeitintervall ausgegeben werden können. Das genaue Limit finden Sie in der Logging-Dokumentation.
  • Wenn Sie sich für Kontingente auf Organisationsebene entscheiden, kann jede Organisation mindestens 125 parallele Dataflow-Jobs ausführen.
  • Jeder Nutzer kann bis zu 15.000 Monitoringanfragen pro Minute senden.
  • Jedes Google Cloud-Projekt erhält die folgenden Shuffle-Slots in jeder Region:
    • asia-east1: 48 Slots
    • asia-northeast1: 24 slots
    • asia-south1: 32 Slots
    • europe-west1: 160 Slots
    • europe-west3: 24 slots
    • europe-west4: 128 Slots
    • northamerica-northeast1: 24 Slots
    • us-central1: 160 Slots
    • us-east1: 160 Slots
    • us-east4: 32 Slots
    • us-west1: 96 Slots
    • andere Regionen: 16 Slots
    160 Slots sind ausreichend für einen Shuffle von etwa 100 TB Daten zur gleichen Zeit.
  • Jedes Google Cloud-Projekt erhält 600 GB pro Minute und Cloud-Region des Streaming Engine-Durchsatzes, um Daten zwischen Compute Engine-Instanzen und Streaming Engine zu senden.

Sie können Ihre aktuelle Nutzung des Dataflow-spezifischen Kontingents prüfen:

  1. Gehen Sie in der Google Cloud Console zur Seite APIs & Dienste.
    APIs & Dienste aufrufen
  2. Klicken Sie auf Dashboard.
  3. Klicken Sie auf Dataflow API.
  4. Klicken Sie auf Kontingente.
    Wenn Sie zum Beispiel die aktuelle Kontingentnutzung für Shuffle-Slots prüfen möchten, finden Sie das Diagramm mit Shuffle-Slots auf der Seite "Kontingente".
    Shuffle-Slots auf der Seite "Kontingente".

Der Dataflow-Dienst verwendet verschiedene Komponenten der Google Cloud, z. B. BigQuery, Cloud Storage, Pub/Sub und Compute Engine. Diese (und andere Google Cloud-Dienste) verwenden Kontingente, um die maximale Anzahl von Ressourcen zu begrenzen, die Sie in einem Projekt verwenden können. Wenn Sie Dataflow verwenden, müssen Sie gegebenenfalls Ihre Kontingenteinstellungen für diese Dienste anpassen.

Compute Engine-Kontingente

Wenn Sie Ihre Pipeline im Dataflow-Dienst ausführen, erstellt Dataflow zum Ausführen des Pipelinecodes Compute Engine-Instanzen.

Compute Engine-Kontingente sind pro Region festgelegt. Prüfen Sie das Compute Engine-Kontingent Ihres Projekts und senden Sie bei Bedarf eine Anfrage in Bezug auf die folgenden Anpassungen:

  • CPUs: Die Standard-Maschinentypen für Dataflow sind n1-standard-1 für Batch-Jobs, n1-standard-2 für Jobs mit Streaming Engine und n1-standard-4 für Jobs ohne Streaming Engine. FlexRS verwendet standardmäßig n1-standard-2-Maschinen. Im Betarelease verwendet FlexRS zu 90 % VMs auf Abruf und zu 10 % normale VMs. Compute Engine berechnet die Anzahl der CPUs durch Addieren der CPU-Gesamtzahl jeder einzelnen Instanz. Werden beispielsweise 10 Instanzen vom Typ n1-standard-4 ausgeführt, zählen sie als 40 CPUs. Weitere Informationen über die Zuordnung von Maschinentypen zur CPU-Anzahl finden Sie hier.
  • Verwendete IP-Adressen: Die Anzahl der in Ihrem Projekt verwendeten IP-Adressen muss für die gewünschte Anzahl von Instanzen ausreichend sein. Um 10 Compute Engine-Instanzen zu verwenden, benötigen Sie 10 aktive IP-Adressen.
  • Persistent Disk: Dataflow hängt Persistent Disk an jede Instanz an.
    • Die standardmäßige Laufwerkgröße beträgt 250 GB für Batch- und 400 GB für Streamingpipelines. Für 10 Instanzen benötigen Sie standardmäßig 2.500 GB nichtflüchtigen Speicher für einen Batchjob.
    • Die standardmäßige Laufwerkgröße für Dataflow Shuffle-Batchpipelines beträgt 25 GB.
    • Die standardmäßige Laufwerkgröße für Streaming Engine-Streamingpipelines beträgt 30 GB.
  • Verwaltete Instanzgruppen: Dataflow stellt Ihre Compute Engine-Instanzen als verwaltete Instanzgruppe bereit. Sie müssen dementsprechend folgende Kontingente haben:
    • Eine Instanzgruppe pro Dataflow-Job
    • Eine verwaltete Instanzgruppe pro Dataflow-Job
    • Eine Instanzvorlage pro Dataflow-Job

Zusätzliche Kontingente

Je nachdem, welche Quellen und Senken Sie verwenden, benötigen Sie möglicherweise auch zusätzliche Kontingente.

  1. Pub/Sub: Wenn Sie Pub/Sub verwenden, benötigen Sie gegebenenfalls eine Kontingenterhöhung. Beachten Sie bei der Planung der Kontingente, dass zur Verarbeitung einer Nachricht von Pub/Sub 3 Vorgänge nötig sind. Wenn Sie benutzerdefinierte Zeitstempel verwenden, sollten Sie Ihre erwartete Anzahl von Vorgängen verdoppeln, da Dataflow ein separates Abo erstellt, um benutzerdefinierte Zeitstempel zu verfolgen.
  2. BigQuery: Wenn Sie die Streaming API für BigQuery verwenden, gelten Kontingentlimits und andere Einschränkungen.

Limits

In diesem Abschnitt werden die praktischen Limits für die Produktion in Dataflow beschrieben.

Limit Wert
Maximale Worker-Anzahl pro Pipeline 1.000
Maximale Größe für eine Joberstellungsanfrage. Pipelinebeschreibungen mit zahlreichen Schritten und langen Namen können dieses Limit erreichen. 10 MB
Maximale Anzahl von Nebeneingabe-Shards 20.000
Maximale Größe für einen einzelnen Elementwert in Streaming Engine. 100 MB
Maximale Anzahl von Logeinträgen pro Worker in einem bestimmten Zeitraum 15.000 Nachrichten alle 30 Sekunden
Streaming Engine-Limits Menge
Maximale Byte für Pub/Sub-Nachrichten. 7 MB
Maximale Größe eines großen Schlüssels. Schlüssel über 64 KB führen zu einer geringeren Leistung. 2 MB
Maximale Länge der von TagValue und TagBag verwendeten Zustands-Tags. 64 KB