Leistungsoptimierung des Openflow Connector für Kafka

Dieses Thema enthält Anleitungen zur Optimierung der Leistung von Snowflake Openflow Connector for Kafka, um einen optimalen Durchsatz zu erzielen und die Latenzzeit bei der Datenaufnahme in Snowflake zu minimieren.

Hinweise zur Performance

Wenn Sie den Openflow Connector für Kafka für eine optimale Leistung konfigurieren, sollten Sie die folgenden Schlüsselfaktoren berücksichtigen, die sich auf den Datenaufnahmedurchsatz und die Latenzzeit auswirken:

Kafka-Konfiguration

Anzahl der Partitionen

Weitere Partitionen ermöglichen eine höhere Parallelität, erfordern jedoch eine sorgfältige Koordination der Konfiguration des Verbrauchers. Übermäßige Partitionen können mehrere Probleme verursachen: erhöhter Speicherverbrauch, langsamere Leader-Wahlen bei Ausfällen und erheblicher Overhead bei der Metadatenverwaltung auf Brokern.

Kompression

Die Meldungskomprimierung kann die Netzwerkbandbreite reduzieren, erhöht jedoch die CPU-Auslastung.

FlowFile-Optimierung

FlowFile-Größe

Für eine optimale Leistung sollten FlowFiles im Bereich von 1–10 MB liegen und nicht einzelne kleine Meldungen enthalten. Größere Flowfiles reduzieren den Verarbeitungsaufwand und verbessern den Durchsatz, indem sie die Anzahl der einzelnen Dateioperationen minimieren. Die Standardeinstellungen sollten FlowFiles in einem akzeptablen Größenbereich ergeben. Bei geringem Durchsatz sind kleine Flowfiles zu erwarten.

Wenn Sie kleine Flowfiles mit hohem Durchsatz beobachten, wenden Sie sich an den Snowflake-Support.

Netzwerk und Infrastruktur

Netzwerklatenz

Geringere Latenz zwischen Kafka-Brokern und Openflow verbessert die Gesamtleistung. Snowflake empfiehlt, Kafka-Broker und Openflow in derselben CSP-Region bereitzustellen.

Empfehlungen zur Knotengröße

Die folgende Tabelle enthält Konfigurationsempfehlungen auf der Grundlage der erwarteten Workload-Eigenschaften:

Knotengröße

Empfohlen für

Meldungsratenkapazität

Klein (S)

Szenarien mit niedrigem bis mittlerem Durchsatz

Bis zu 18 MB/s pro Knoten

Mittel (M)

Szenarien mit mittlerem bis hohem Durchsatz

Bis zu 145 MB/s pro Knoten

Groß (L)

Szenarien mit hohem Durchsatz

Bis zu 250 MB/s pro Knoten

Best Practices zur Leistungsoptimierung

Anpassen der gleichzeitigen Aufgaben des Prozessors

Um die Prozessorleistung zu optimieren, können Sie die Anzahl der gleichzeitigen Tasks für ConsumeKafka- und PublishSnowpipeStreaming-Prozessoren anpassen. Gleichzeitige Aufgaben ermöglichen es Prozessoren, mehrere Threads gleichzeitig auszuführen, was den Durchsatz in Szenarios mit hohem Volumen verbessert.

Um die gleichzeitigen Aufgaben für einen Prozessor anzupassen, führen Sie die folgenden Aufgaben aus:

  1. Klicken Sie mit der rechten Maustaste auf den Prozessor im Openflow-Canvas.

  2. Wählen Sie im Kontextmenü „Konfigurieren“ aus.

  3. Navigieren Sie zur Registerkarte „Scheduling“.

  4. Geben Sie im Feld „gleichzeitige Aufgaben“ die gewünschte Anzahl der gleichzeitigen Aufgaben ein.

  5. Wählen Sie Anwenden, um die Konfiguration zu speichern.

Wichtige Hinweise

Speicherverbrauch

Jede gleichzeitig ausgeführte Aufgabe verbraucht zusätzlichen Speicherplatz. Überwachen Sie die JVM-Heap-Nutzung, wenn Sie die Anzahl gleichzeitiger Aufgaben erhöhen.

Kafka-Partitionen

Für ConsumeKafka sollte die Anzahl der gleichzeitigen Tasks multipliziert mit der Anzahl der Laufzeitknoten die Gesamtanzahl der Kafka-Partitionen aus allen Topics nicht überschreiten.

Beginnen Sie vorsichtig

Beginnen Sie mit niedrigeren Werten und erhöhen Sie diese schrittweise, während Sie die Leistungskennzahlen überwachen.

Problembehandlung bei Leistungsproblemen: Häufige Leistungsengpässe

Hohe Verbraucherverzögerung oder Engpässe bei der Snowflake-Datenaufnahme

Wenn die Verzögerung der Kafka-Verbraucher zunimmt oder die Snowflake-Datenaufnahme langsam ist, führen Sie die folgenden Aufgaben durch:

  1. Überprüfen Sie die Konnektivität und Bandbreite des Netzwerks zwischen Openflow und Kafka-Brokern.

  2. Beobachten Sie, ob die Warteschlange vor dem PublishSnowpipeStreaming-Prozessor zunimmt.

    1. Wenn ja, erwägen Sie, weitere gleichzeitige Tasks für den PublishSnowpipeStreaming-Prozessor im Rahmen der in Empfohlene Einstellungen für gleichzeitige Aufgaben angegebenen Begrenzungen hinzuzufügen.

    2. Wenn nicht, erwägen Sie, weitere gleichzeitige Tasks für den ConsumeKafka-Prozessor im Rahmen der in Empfohlene Einstellungen für gleichzeitige Aufgaben angegebenen Begrenzungen hinzuzufügen.

  3. Ziehen Sie die Verwendung eines größeren Knotentyps in Betracht.

  4. Erwägen Sie, die maximale Anzahl von Knoten für die Laufzeit zu erhöhen.

Speicherauslastung

Wenn Probleme mit dem Speicher auftreten:

  1. Reduzieren Sie die Batchgrößen, um den Speicherbedarf zu verringern.

  2. Reduzieren Sie die Anzahl der gleichzeitigen Aufgaben für den ConsumeKafka-Prozessor.

  3. Ziehen Sie ein Upgrade auf einen größeren Knotentyp in Betracht.

Probleme mit der Netzwerklatenz

Wenn eine hohe Latenz auftritt:

  1. Überprüfen Sie die Netzwerkkonfiguration zwischen Openflow und externen Systemen.

  2. Ziehen Sie in Betracht, Openflow näher an Ihrem Kafka-Cluster zu installieren.

  3. Bei geringem Durchsatz sollten Sie in Betracht ziehen, die Client-Lag-Einstellungen im PublishSnowpipeStreaming-Prozessor und die maximale uncommittete Zeit im ConsumeKafka-Prozessor zu verringern.