Was sind SWAP-Dateien und warum belegen sie Speicherplatz in meiner AWS DMS-Instance?

Letzte Aktualisierung: 28.07.2022

Der Speicherplatz in meiner AWS-DMS-DB-Instance (AWS Database Migration Service) wird durch Auslagerungsdateien belegt, die in meiner Instance generiert wurden. Was sind SWAP-Dateien und wie kann ich die Generierung von Auslagerungsdateien reduzieren?

Kurzbeschreibung

In AWS DMS werden laufende Änderungen aus der Quelle von der SORTER-Komponente zwischengespeichert. Das dient dazu, Aktionen wie das Zusammenführen von Transaktionen sowie Filteraktionen und Datentransformationen zu verwalten, bevor sie auf das Ziel angewendet werden.

Wenn die Quellverarbeitung schneller ist als die Anwendung auf das Ziel, kann das Ziel die eingehenden Änderungen nicht bewältigen. Oder: Wenn lange Transaktionen die maximale Speicherzuweisung (MemoryLimitTotal) und die maximale Zeit (MemoryKeepTime) überschreiten, werden die Transaktionen aus dem Arbeitsspeicher auf den Datenträger der Replikations-Instance ausgelagert. Die dabei entstehenden Dateien werden als Auslagerungs- oder Sorter-Dateien bezeichnet.

Auslagerungsdateien wie diese unterscheiden sich von den Auslagerungsdateien des Betriebssystems, die erstellt werden, wenn der Serverarbeitsspeicher für die Verarbeitung nicht ausreicht. Daher sind diese Daten nicht in der SwapUsage-Metrik in Amazon CloudWatch enthalten.

Lösung

Ihre Aufgabenprotokolle enthalten ggf. eine Meldung wie die folgende:

„[SORTER ]I: Reading from source is paused. Total storage used by swap files exceeded the limit 1048576000 bytes (sorter_transaction.c:110) 00000849: 2021-04-28T07:19:20:987696 [SORTER ]I: Reading from source is resumed (sorter_transaction.c:116)]“ ([SORTER ]I: Das Lesen aus der Quelle wurde angehalten. Der insgesamt von Auslagerungsdateien belegte Speicher hat das Limit von 1 048 576 000 Bytes erreicht (sorter_transaction.c:110) 00000849: 2021-04-28T07:19:20:987696 [SORTER ]I: Das Lesen aus der Quelle wird fortgesetzt (sorter_transaction.c:116)])

Dies ist eine Informationsmeldung und kein Fehler. Diese Meldung wird angezeigt, wenn die von der AWS DMS-SORTER-Komponente verwendeten Auslagerungsdateien eine Größe von 1 GB (hartcodiertes Limit) erreichen. Die AWS DMS-Version 3.4.2 und höhere Versionen enthalten ein Feature, das Szenarien mit vollem Speicher verhindert. Hierzu wird die maximale Anzahl von Auslagerungsdateien begrenzt, die auf den Speichervolumes einer Replikations-Instance vorhanden sein können. Diese Meldung wird also angezeigt, wenn die von der DMS-SORTER-Komponente verwendeten Auslagerungsdateien das Limit von 1 GB erreichen.

Bei Erreichen des Limits von 1 GB wird die Quellenerfassung (SOURCE CAPTURE) durch die SORTER-Komponente angehalten. AWS DMS wendet dann Änderungen aus Auslagerungsdateien auf die Zieldatenbank an. Wenn die auf den Datenträger ausgelagerten Änderungen angewendet wurden oder die Größe der Auslagerungsdatei wieder weniger als 1 GB beträgt, wird die Quellenerfassung von AWS DMS fortgesetzt.

Hinweis: In diesem Fall wird die Aufgabe weiter ausgeführt. Nur die Quellenerfassung (SOURCE CAPTURE) wird angehalten.

Reduzieren der Generierung von Auslagerungsdateien

Verwenden Sie die folgenden bewährten Methoden, um die Generierung von Auslagerungsdateien in Ihrer AWS DMS-Instance zu reduzieren oder zu vermeiden:

  • Verwenden Sie den Batchanwendungsmodus und ParallelApplyThreads, um die Anwendung auf das Ziel zu verbessern (basierend auf Ihrem Engine-Typ).
  • Wenn in der Quelle Transaktionen mit langer Laufzeit auftreten, verwenden Sie häufige Commits in der Quelldatenbank, um das Problem zu entschärfen.
  • Wenn in der Replikations-Instance Arbeitsspeicher verfügbar ist, können SieMemoryLimitTotal und MemoryKeepTime erhöhen, damit Änderungen länger im Arbeitsspeicher verbleiben und somit später auf den Datenträger ausgelagert werden. Da AWS DMS die Änderungen auf den Datenträger auslagert, sobald eines der Limits erreicht ist, müssen beide Parameter erhöht werden.

War dieser Artikel hilfreich?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?