Teilen über


Durchführen der intelligenten Optimierung in Azure Database for PostgreSQL – Flexibler Server

GILT FÜR: Azure Database for PostgreSQL – Flexibler Server

Azure Database for PostgreSQL – Flexibler Server verfügt über eine intelligente Optimierungsfunktion, die entwickelt wurde, um die Gesamtleistung automatisch zu verbessern und mögliche Probleme zu vermeiden. Die intelligente Optimierung überwacht kontinuierlich den Status der Azure Database for PostgreSQL – Flexibler Server-Datenbank und passt die Datenbank dynamisch an Ihre Workload an.

Dieses Feature umfasst zwei automatische Optimierungsfunktionen:

  • Autovacuum-Optimierung: Diese Funktion verfolgt das Überfrachtungsverhältnis und passt die Autovacuum-Einstellungen entsprechend an. Sie berücksichtigt sowohl die aktuelle als auch die vorhergesagte Ressourcennutzung, um Unterbrechungen der Workload zu vermeiden.
  • Optimierung von Schreibvorgängen: Diese Funktion überwacht den Umfang und die Muster von Schreibvorgängen und ändert Parameter, die sich auf die Schreibleistung auswirken. Durch diese Anpassungen werden sowohl die Systemleistung als auch die Zuverlässigkeit verbessert, um potenzielle Komplikationen proaktiv abzuwenden.

Sie können die intelligente Optimierung über das Microsoft Azure-Portal oder die Azure CLI aktivieren.

Wozu Intelligente Optimierung?

Der Autovacuum-Prozess ist ein wichtiger Bestandteil der Aufrechterhaltung der Integrität und Leistung einer Azure DB for PostgreSQL – Flexibler Server-Datenbank. Sie hilft, Speicherplatz zurückzugewinnen, der durch „tote“ Zeilen belegt ist, und sorgt so für einen reibungslosen Betrieb der Datenbank.

Ebenso wichtig ist die Optimierung der Schreibvorgänge innerhalb der Datenbank. Diese Aufgabe obliegt in der Regel den Datenbankadministratoren. Die ständige Überwachung einer Datenbank und die Optimierung der Schreibvorgänge kann schwierig und zeitaufwändig sein. Diese Aufgabe wird zunehmend komplexer, wenn Sie mit mehreren Datenbanken zu tun haben.

Hier setzt die intelligente Optimierung an. Anstatt Ihre Datenbank manuell zu überwachen und zu optimieren, können Sie mithilfe der intelligenten Optimierung die Datenbank automatisch überwachen und optimieren. Sie können sich dann auf andere wichtige Aufgaben konzentrieren.

Die Autovacuum-Optimierungsfunktion in der intelligenten Optimierung überwacht das Überfrachtungsverhältnis und passt die Einstellungen bei Bedarf an, um die Ressourcen optimal zu nutzen. Es verwaltet proaktiv den „Bereinigungsprozess“ der Datenbank und entschärft Leistungsprobleme, die durch veraltete Daten entstehen können.

Die Schreiboptimierungsfunktion beobachtet die Menge und Transaktionsmuster von Schreibvorgängen. Parameter wie bgwriter_delay, checkpoint_completion_target, max_wal_size und min_wal_size werden intelligent angepasst. Auf diese Weise wird die Systemleistung und -zuverlässigkeit auch bei hoher Schreiblast verbessert.

Wenn Sie intelligente Optimierung verwenden, können Sie wertvolle Zeit und Ressourcen sparen, indem Sie sich auf Azure Database for PostgreSQL – Flexibler Server verlassen, um die optimale Leistung der Datenbanken zu gewährleisten.

Wie funktioniert die intelligente Optimierung?

Die intelligente Optimierung ist ein fortlaufender Überwachungs- und Analyseprozess, der nicht nur über die Merkmale Ihrer Workload überwacht, sondern auch die aktuelle Auslastung und Ressourcennutzung wie CPU oder IOPS nachverfolgt. Der normale Betrieb Ihrer Anwendungsworkload wird dadurch nicht gestört.

Mit diesem Prozess kann sich die Datenbank dynamisch an Ihre Workload anpassen, indem sie das aktuelle Auslastungsverhältnis, die Schreibleistung und die Prüfpunkteffizienz Ihrer Instanz erkennt. Auf der Grundlage dieser Erkenntnisse werden bei der intelligenten Optimierung Maßnahmen ergriffen, die die Leistung Ihrer Workload verbessern und potenzielle Fallstricke vermeiden.

Autovacuum-Tuning

Die intelligente Optimierung passt fünf Parameter im Zusammenhang mit dem Autovacuum-Prozess an: autovacuum_vacuum_scale_factor, autovacuum_cost_limit, autovacuum_naptime, autovacuum_vacuum_threshold und autovacuum_vacuum_cost_delay. Diese Parameter regeln Komponenten wie:

  • Tabellenanteil, der einen VACUUM-Prozess auslöst
  • Das kostenbasierte Vakuumverzögerungslimit
  • Das Pausenintervall zwischen Autovacuum-Ausführungen
  • Die Mindestanzahl der aktualisierten oder toten Tupel, die zum Starten eines VACUUM-Prozesses erforderlich sind
  • Die Pausendauer zwischen Bereinigungsrunden

Wichtig

Beachten Sie, dass die intelligente Optimierung Autovacuum-bezogene Parameter auf Serverebene und nicht auf einzelnen Tabellenebenen ändert. Außerdem kann die intelligente Optimierung nicht ordnungsgemäß funktionieren, wenn die Autovacuum-Funktion deaktiviert ist. Damit der Prozess durch intelligente Optimierung optimiert werden kann, muss die Autovacuum-Funktion aktiviert sein.

Obwohl der Autovacuum-Daemon zwei Vorgänge (VACUUM und ANALYZE) auslöst, wird durch die intelligente Optimierung nur der VACUUM-Prozess feinjustiert. Dieses Feature passt derzeit nicht den ANALYZE-Prozess an, der Statistiken über Tabelleninhalte sammelt, um dem Azure DB for PostgreSQL – Flexibler Server-Abfrageplaner zu helfen, den am besten geeigneten Abfrageausführungsplan zu wählen.

Die intelligente Optimierung umfasst Sicherheitsvorkehrungen zum Messen der Ressourcenauslastung wie CPU und IOPS. Die Autovacuum-Aktivität wird nicht erhöht, wenn Ihre Instanz stark belastet ist. So stellt die intelligente Optimierung ein Gleichgewicht zwischen effektiven Bereinigungsvorgängen und der Gesamtleistung Ihres Systems sicher.

Bei der intelligenten Optimierung der Autovacuum-Funktion wird die durchschnittliche Überfrachtung des Servers anhand von Statistiken zu aktiven und toten Tupeln betrachtet. Um eine Überfrachtung zu verringern, kann die intelligente Optimierung Parameter wie den Skalierungsfaktor oder die Pausendauer reduzieren. Sie kann den VACUUM-Prozess früher auslösen und bei Bedarf die Verzögerung zwischen den Runden verringern.

Ist die Überfrachtung hingegen minimal und der Autovacuum-Prozess zu aggressiv, können durch die intelligente Optimierung Parameter wie Verzögerung, Skalierungsfaktor und Pausendauer erhöht werden. Dieser Ausgleich minimiert die Überfrachtung und trägt dazu bei, dass der Autovacuum-Prozess Ressourcen effizient nutzt.

Optimierung der Schreibvorgänge

Die intelligente Optimierung passt vier Parameter im Zusammenhang mit der Optimierung der Schreibvorgänge an: bgwriter_delay, checkpoint_completion_target, max_wal_size und min_wal_size.

Der Parameter bgwriter_delay bestimmt die Häufigkeit, mit der der Hintergrundschreibprozess aktiviert wird, um „modifizierte“ (neue oder geänderte) Puffer zu reinigen. Der Hintergrundschreibprozess (bgwriter) ist einer von drei Prozessen in Azure DB for PostgreSQL – Flexibler Server, die Schreibvorgänge verarbeiten. Bei den beiden anderen Prozessen handelt es sich um den Prüfpunktprozess (checkpointer) und Back-End-Schreibvorgänge (Standardclientprozesse, z. B. Anwendungsverbindungen).

Die primäre Rolle des Hintergrundschreibprozesses besteht darin, den Hauptprüfpunktprozess zu entlasten und die Belastung durch Back-End-Schreibvorgänge zu verringern. Der Parameter bgwriter_delay steuert die Häufigkeit von Hintergrundschreibrunden. Durch Anpassen dieses Parameters können Sie die Leistung von DML-Abfragen (Data Manipulation Language) optimieren.

Der Parameter checkpoint_completion_target ist Teil des zweiten von Azure DB for PostgreSQL – Flexibler Server unterstützten Schreibmechanismus, nämlich des Prüfpunktprozesses. Prüfpunkte treten in konstanten, von checkpoint_timeout definierten Intervallen auf (sofern nicht durch Überschreitung des konfigurierten Speicherplatzes erzwungen). Um zu vermeiden, dass das E/A-System bei einer Zunahme von Seitenschreibvorgängen überlastet wird, wird das Schreiben schmutziger Puffer während eines Prüfpunkts über einen bestimmten Zeitraum verteilt. Der Parameter checkpoint_completion_target steuert diese Dauer, indem er checkpoint_timeout verwendet, um die Dauer als Bruchteil des Prüfpunktintervalls anzugeben.

Der Standardwert von checkpoint_completion_target beträgt 0,9 (seit PostgreSQL 14). Dieser Wert ist im Allgemeinen am besten geeignet, weil er die E/A-Last über den maximalen Zeitraum verteilt. In seltenen Fällen werden Prüfpunkte aufgrund unerwarteter Schwankungen bei der Anzahl der benötigten Write-Ahead-Protokollierungssegmente (WAL) möglicherweise nicht rechtzeitig fertiggestellt. Aufgrund der potenziellen Auswirkungen auf die Leistung ist checkpoint_completion_target eine Zielmetrik für die intelligente Optimierung.

Einschränkungen und bekannte Probleme

  • Die intelligente Optimierung nimmt Optimierungen nur in bestimmten Bereichen vor. Es ist möglich, dass die Funktion nichts ändert.
  • Die intelligente Optimierung passt die ANALYZE-Einstellungen nicht an.
  • Die Autovacuum-Optimierung wird derzeit für Server der Computeebenen „Universell“ und „Arbeitsspeicheroptimiert“ unterstützt, die über vier oder mehr virtuelle Kerne verfügen. Die Servercomputeebene „Burstfähig“ wird nicht unterstützt.

Nächste Schritte