Wie kann ich eine hohe Ziellatenz bei einer AWS-DMS-Aufgabe beheben?

Lesedauer: 4 Minute
0

Ich führe eine AWS Database Migration Service (AWS DMS)-Aufgabe mit Volllast und Change Data Capture (CDC) aus. Die Quelllatenz ist nicht hoch, aber die Ziellatenz ist hoch oder sie nimmt zu.

Kurzbeschreibung

Sie können Amazon-CloudWatch-Metriken verwenden, um die Metriken Ihrer Replikationsaufgabe zu überwachen. Insbesondere können Sie CDCLatencySource und CDCLatencyTarget überwachen, um die Replikationslatenz in der laufenden Replikationsphase (CDC) zu ermitteln. Die CDCLatencySource-Metrik ist die Latenz zwischen der Quell- und der Replikations-Instance. Die CDCLatencyTarget-Metrik ist die Latenz zwischen Replikations-Instance und Ziel. Weitere Informationen finden Sie unter Metriken für Replikationsaufgaben.

Eine hohe CDCLatencySource bedeutet, dass der Prozess der Erfassung von Änderungen von der Quelle verzögert ist. Und eine hohe CDCLatencyTarget bedeutet, dass der Prozess der Anwendung der Änderungsereignisse auf das Ziel verzögert ist. Wenn sowohl CDCLatencySource als auch CDCLatencyTarget hoch sind, untersuchen Sie zuerst CDCLatencySource, da die Ziellatenz immer gleich oder größer als die Quelllatenz ist. Eine hohe CDCLatencyTarget ist höchstwahrscheinlich darauf zurückzuführen, dass die Erfassung der Änderungsereignisse von der Quelle verzögert erfolgt. Wenn CDCLatencySource nicht hoch ist, aber CDCLatencyTarget schon, dann können die folgenden Probleme die Latenz verursachen:

  • Das Ziel enthält keine Primärschlüssel oder Indizes.
  • Das Ziel weist Ressourcenengpässe auf.
  • In der Replikations-Instance gibt es Ressourcenengpässe.
  • Es besteht ein Netzwerkproblem zwischen der Replikations-Instance und dem Ziel.

Informationen zur Behebung dieser Probleme finden Sie im Abschnitt Bewährte Methoden und Problembehandlung in der folgenden Lösung.

Lösung

Keine Primärschlüssel oder Indizes im Ziel

Standardmäßig verwendet AWS DMS DML-Anweisungen (Data Manipulation Language), wie INSERT, UPDATE oder DELETE, um Änderungen in das Ziel zu schreiben. Wenn die erforderlichen Indizes nicht vorhanden sind, können Änderungen wie UPDATE und DELETE zu vollständigen Tabellenscans führen. Vollständige Tabellenscans können zu Leistungsproblemen auf dem Ziel und zu Latenz im Ziel führen. Überprüfen Sie die Schemas Ihrer Zieldatenbank, insbesondere wenn Sie das Zielschema manuell erstellt haben. Verwenden Sie Zieldatenbankmechanismen, um langsame Abfragen zu identifizieren, z. B. das Slow Query Log für MySQL, pg_stat_activity für Amazon Relational Database Service (Amazon RDS) für PostgreSQL oder einen Abfrageplan. Wenn Ihr Ziel Amazon Redshift ist, überprüfen Sie auch den Verteilungsstil für Ihre Tabelle. Alle Verteilungsstile können zu einer Ziellatenz führen, da das INSERT oder UPDATE von Daten in Tabellen länger dauert.

Ressourcenengpässe im Ziel

Wenn Ihr Ziel nicht über genügend Ressourcen verfügt, kann das Ziel Änderungen nicht in dem Tempo akzeptieren, mit dem AWS DMS sie sendet. Dies kann zu Ressourcenengpässen auf dem Ziel und zu Ziellatenz führen. Dies passiert auch, wenn andere Prozesse Ressourcen im Ziel verbrauchen. Wenn AWS das Ziel hostet, überprüfen Sie die Ressourcenstatistiken anhand der CloudWatch-Metriken.

Ressourcenengpässe in der Replikations-Instance

Wählen Sie eine Replikations-Instance mit ausreichend Ressourcen für Ihre Migration aus: CPU, Speicher, Netzwerk oder IOPS.

Verwenden Sie CloudWatch-Metriken, um die Ressourcen Ihrer Replikations-Instance zu überwachen.

Netzwerkproblem zwischen Replikations-Instance und Ziel

Probleme mit der Netzwerkbandbreite können ebenfalls zu Latenzproblemen führen, insbesondere wenn Ihr Ziel eine lokale Datenbank ist oder wenn Sie AWS DMS für die regionsübergreifende Replikation verwenden.

Bewährte Methoden und Problembehebung

Wenn Ihr Ziel Amazon RDS ist, befolgen Sie die bewährten Methoden, um die Leistung einer AWS-DMS-Migration zu verbessern. Amazon RDS verfügt über einen automatisierten Backup-Mechanismus, der innerhalb des Backup-Fensters startet, und Amazon RDS sichert die verschobenen Daten. Wenn gerade ein Snapshot der Ziel-RDS-DB-Instance erfasst wird, kann es bei AWS DMS zu Problemen kommen, wenn der Dienst Änderungen am Ziel vornimmt. Infolgedessen erhöht sich die Ziellatenz, bis die Snapshot-Erfassung abgeschlossen ist. Wenn Ihr Ziel Amazon Elastic Compute Cloud (Amazon EC2) oder eine lokale Datenbank ist, überprüfen Sie den Backup-Mechanismus Ihrer Zieldatenbank.

Einige Aufgabeneinstellungen können dazu führen, dass Änderungen langsam in das Ziel geschrieben werden. Wenn Sie die fortlaufende Replikation von einer Quelle aus ausführen, in der die Änderungsrate hoch ist, sollten Sie BatchApplyEnabled verwenden. Weitere Informationen finden Sie im Abschnitt BatchApplyEnabled unter Debuggen Ihrer AWS-DMS-Migrationen: Was tun, wenn etwas schief geht? Teil 3

Um BatchApplyEnabled auf Wahr zu setzen, führen Sie den Befehl modify-replication-task über das AWS Command Line Interface (AWS CLI) aus:

aws dms modify-replication-task --replication-task-arn arn:aws:dms:ap-northeast-1:123456789012:task:ABCDEFGHIJKLMNOPQRSTUVWXYZ --replication-task-settings "{\"TargetMetadata\":{\"BatchApplyEnabled\":true}}"

**Hinweis:**Wenn beim Ausführen von AWS-CLI-Befehlen Fehler auftreten, finden Sie weitere Informationen unter Beheben von AWS-CLI-Fehlern. Stellen Sie außerdem sicher, dass Sie die neueste AWS-CLI-Version verwenden.

Ähnliche Informationen

Einstellungen für die Verarbeitungsoptimierung ändern

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 6 Monaten