Adaptives Autovacuum konfigurieren

Auf dieser Seite erhalten Sie einen Überblick über das adaptive Autovacuum in AlloyDB for PostgreSQL und erfahren, wie Sie es konfigurieren.

VACUUM 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 Transaktions-ID-Wraparound zu verhindern, und zum Aktualisieren der Tabellenstatistiken.

Weitere Informationen zum Staubsaugen

Um den Prozess der automatischen Bereinigung und der kollektiven Aktualisierung der Tabellenstatistiken zu automatisieren, unterstützt AlloyDB die adaptive automatische Bereinigung. Mit Adaptive autovacuum wird die Vakuumarbeitslast automatisch angepasst, wenn sich Ihre Arbeitslast ändert. Außerdem werden inaktive Tupel entfernt und Tabellenstatistiken aktualisiert.

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

Standardmäßig ist in AlloyDB die adaptive Autovacuum-Funktion aktiviert. Sie können das adaptive Autovacuum in AlloyDB mit Datenbank-Flags deaktivieren oder ändern.

Vorteile

Das adaptive Autovacuum bietet folgende Vorteile:

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

  • Transaktions-ID-Wraparound verhindern AlloyDB überwacht den Fortschritt von VACUUM und die Geschwindigkeit des Verbrauchs von Transaktions-IDs. Bei Bedarf drosselt AlloyDB die Nutzung der Transaktions-ID, indem jede Tabelle in der Datenbank bereinigt wird, um ein Transaktions-ID-Wraparound zu verhindern.

  • Regelmäßiges VACUUM für Tabellen: AlloyDB löst „autovacuum“ basierend auf der Anzahl der fehlerhaften Tupel und der zu scannenden Seiten aus. Sie entfernt in regelmäßigen Abständen inaktive Tupel, um Bloat in Tabellen oder Indexen zu vermeiden.

  • Blockierende Abfragen automatisch erkennen: AlloyDB erkennt automatisch Blocker wie lang andauernde Transaktionen, verwaiste vorbereitete Transaktionen und verwaiste Replikations-Slots 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 adaptives Autovacuum in AlloyDB aktiviert. Sie können das adaptive Autovakuum 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 Standard-PostgreSQL-Datenbankflags, die sich auf VACUUM und AUTOVACUUM beziehen, z. B. vacuum_cost_delay und autovacuum_vacuum_cost_delay. Sie müssen in keinem dieser Flags Werte für das adaptive Autovacuum festlegen, da es sein Verhalten an Ihre tatsächlichen Arbeitslasten anpasst und optimiert. Wenn Sie Werte für diese Flags festlegen, passt „Adaptive Autovacuum“ ihr Verhalten an Ihre Einstellungen an.

Eine vollständige Liste der unterstützten PostgreSQL-Datenbank-Flags für „vacuum“ und „autovacuum“ finden Sie unter vacuum-Flags und autovacuum-Flags.