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

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

Der flexible Azure Database for PostgreSQL-Server verfügt über ein intelligentes Optimierungsfeature, das darauf ausgelegt ist, die Leistung automatisch zu verbessern und Probleme zu vermeiden. Intelligente Optimierung überwacht kontinuierlich den Status der Flexiblen Serverdatenbank in Der Azure-Datenbank für PostgreSQL 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 Standard die Integrität und Leistung einer Azure-Datenbank für Flexible Serverdatenbank für PostgreSQL. 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 Optimierungen verwenden, können Sie wertvolle Zeit und Ressourcen sparen, indem Sie sich auf den flexiblen Azure Database for PostgreSQL-Server verlassen, um die optimale Leistung Ihrer Datenbanken zu Standard.

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 zu Tabelleninhalten sammelt, um dem flexiblen Serverabfrageplaner von Azure Database for PostgreSQL bei der Auswahl des am besten geeigneten Abfrageausführungsplans zu helfen.

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 Hintergrund-Writer-Prozess ist eines von drei Prozessen in Azure Database für PostgreSQL flexible Server, der Schreibvorgänge verarbeitet. 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 checkpoint_completion_target Parameter ist Teil des zweiten Schreibmechanismus, den Azure Database für PostgreSQL flexible Server unterstützt, insbesondere den Prüfpunktprozess. 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