Adaptives Autovacuum konfigurieren

Auf dieser Seite erhalten Sie einen Überblick über die adaptive automatische Bereinigung in AlloyDB for PostgreSQL und erfahren, wie Sie sie konfigurieren.

Die Bereinigung ist ein wichtiger Wartungsvorgang für PostgreSQL-Datenbanken. Damit wird Speicherplatz freigegeben, der von aktualisierten oder gelöschten Zeilen belegt wird, um eine übermäßige Vergrößerung von Tabellen oder Indexen zu vermeiden. Sie wird auch zum Fixieren von Transaktions-IDs verwendet, um einen Transaktions-ID-Wraparound zu verhindern, und zum Aktualisieren der Tabellenstatistiken.

Weitere Informationen zum Bereinigen finden Sie unter Routine Vacuuming.

AlloyDB unterstützt die adaptive automatische Bereinigung, um die Bereinigung und das kollektive Aktualisieren der Tabellenstatistiken zu automatisieren. Bei der adaptiven automatischen Bereinigung wird die Bereinigungsarbeitslast automatisch angepasst, wenn sich die Arbeitslast ändert. Außerdem werden fehlerhafte Tupel entfernt und Tabellenstatistiken aktualisiert.

Die automatische Bereinigung sorgt für eine zuverlässige und konsistente Transaktionsleistung der Anwendung und für eine hohe Verfügbarkeit des Systems, indem sie einen Transaktions-ID-Wraparound verhindert.

Standardmäßig ist in AlloyDB die adaptive automatische Bereinigung aktiviert. Sie können sie mit Datenbank-Flags deaktivieren oder ändern.

Vorteile

Die adaptive automatische Bereinigung bietet folgende Vorteile:

  • Automatische Anpassung von Ressourcen: AlloyDB passt Ressourcen wie CPU, E/A, Anzahl der Bereinigungsprozesse und Arbeitsspeicher für den Bereinigungsprozess automatisch an den Echtzeitstatus der Arbeitslast und die verfügbaren Ressourcen an, ohne die Systemleistung zu beeinträchtigen.

  • Verhinderung eines Transaktions-ID-Wraparound: AlloyDB überwacht den Fortschritt der Bereinigung und die Geschwindigkeit des Verbrauchs von Transaktions-IDs. Bei Bedarf drosselt AlloyDB den Verbrauch von Transaktions-IDs, indem jede Tabelle in der Datenbank bereinigt wird, um einen Transaktions-ID-Wraparound zu verhindern.

  • Regelmäßige Bereinigung von Tabellen: AlloyDB löst die automatische Bereinigung basierend auf der Anzahl der fehlerhaften Tupel und der zu scannenden Seiten aus. Es entfernt in regelmäßigen Abständen fehlerhafte Tupel, um eine übermäßige Vergrößerung von Tabellen oder Indexen zu vermeiden.

  • Automatische Erkennung blockierender Prozesse: AlloyDB erkennt automatisch blockierende Prozesse wie Transaktionen mit langer Ausführungszeit, verwaiste vorbereitete Transaktionen und verwaiste Replikationsslots und zeigt Warnmeldungen wie die folgenden im postgres-Log an:

    Found a backend process PROCESS_ID with a long running transaction whose transaction
    id age AGE is larger than or equal to the transaction age threshold AGE_THRESHOLD.
    

Adaptives Autovacuum konfigurieren

Standardmäßig ist die adaptive automatische Bereinigung in AlloyDB aktiviert. Sie können sie deaktivieren, indem Sie das Datenbank-Flag enable_google_adaptive_autovacuum einer Instanz auf off setzen.

Weitere Informationen zum Festlegen von Datenbank-Flags finden Sie unter Datenbank-Flags einer Instanz konfigurieren.

AlloyDB unterstützt mehrere standardmäßige PostgreSQL-Datenbank-Flags, die sich auf die Bereinigung und automatische Bereinigung beziehen, zum Beispiel vacuum_cost_delay und autovacuum_vacuum_cost_delay. Sie müssen in keinem dieser Flags Werte für die adaptive automatische Bereinigung festlegen, da sie ihr Verhalten an Ihre tatsächlichen Arbeitslasten anpasst und es optimiert. Wenn Sie Werte für diese Flags festlegen, passt die adaptive automatische Bereinigung ihr Verhalten an diese Einstellungen an.

Eine vollständige Liste der unterstützten PostgreSQL-Datenbank-Flags für die Bereinigung und automatische Bereinigung finden Sie unter vacuum flags und autovacuum flags.