Intelligent optimering i Azure Database for PostgreSQL – flexibel server

Azure Database for PostgreSQL flexibel server innehåller en intelligent justeringsfunktion som automatiskt förbättrar prestanda och hjälper till att förhindra problem. Intelligent justering övervakar kontinuerligt statusen för din Azure Database for PostgreSQL flexibel serverdatabas och anpassar databasen dynamiskt till din arbetsbelastning.

Den här funktionen innehåller två automatiska justeringsfunktioner:

  • Justering av autovacuum: Den här funktionen är utfasad och har ersatts av den nyare funktionen adaptiv autovacuum.
  • Justering av skrivningar: Den här funktionen övervakar volym och mönster för skrivoperationer. Den ändrar parametrar som påverkar skrivprestanda. Dessa justeringar förbättrar både systemets prestanda och tillförlitlighet och förhindrar proaktivt potentiella komplikationer.

Lär dig hur du konfigurerar intelligent justering.

Varför ska man använda intelligent justering?

Att justera skrivåtgärder i databasen är en viktig del av att upprätthålla hälsotillståndet och prestandan för en Azure Database for PostgreSQL flexibel server. Databasadministratörer utför vanligtvis den här uppgiften. Att ständigt övervaka en databas och finjustera skrivåtgärder kan vara utmanande och tidskrävande. Den här uppgiften blir allt mer komplex när du hanterar flera databaser.

Intelligent justering förenklar den här processen. I stället för att övervaka och justera databasen manuellt kan du använda intelligent justering för att automatiskt övervaka och finjustera databasen. Sedan kan du fokusera på andra viktiga uppgifter.

Funktionen för justering av skrivningar övervakar mängden och transaktionsmönster för skrivoperationer. Den justerar parametrar som bgwriter_delay, checkpoint_completion_target, max_wal_sizeoch min_wal_size. Genom att göra det förbättrar det systemets prestanda och tillförlitlighet, även under hög skrivbelastning.

När du använder intelligent justering sparar du värdefull tid och resurser genom att förlita dig på din Azure Database for PostgreSQL flexibla server för att upprätthålla optimala prestanda för dina databaser.

Hur fungerar intelligent justering?

Intelligent justering är en pågående övervaknings- och analysprocess som lär sig om arbetsbelastningens egenskaper. Den spårar även din aktuella belastning och resursanvändning, till exempel CPU eller IOPS. Det stör inte den normala driften av programarbetsbelastningen.

Processen gör det möjligt för databasen att dynamiskt anpassa sig till din arbetsbelastning genom att urskilja den aktuella skrivprestandan och kontrollpunktseffektiviteten på servern. Med hjälp av dessa insikter distribuerar intelligent justering justeringsåtgärder som förbättrar arbetsbelastningens prestanda och undviker potentiella fallgropar.

Justering av skrivningar

Intelligent justering justerar fyra parametrar som är relaterade till justering av skrivningar: bgwriter_delay, checkpoint_completion_target, max_wal_size och min_wal_size.

Parametern bgwriter_delay avgör hur ofta bakgrundsskrivaren vaknar för att rensa "smutsiga" buffertar (buffertar som är nya eller ändrade). Bakgrundsskrivarprocessen är en av tre processer i en Azure Database for PostgreSQL flexibel server som hanterar skrivåtgärder. De andra processerna är kontrollpunktsprocessen och backend-skrivningar (standardklientprocesser, till exempel programanslutningar).

Bakgrundsskrivarprocessens primära roll är att avlasta huvudprocessen för kontrollpunkter och minska belastningen från skrivningar i backend. Parametern bgwriter_delay styr frekvensen för bakgrundsskrivarens avrundningar. Genom att justera den här parametern kan du även optimera prestanda för DML-frågor (Data Manipulation Language).

Parametern checkpoint_completion_target är en del av den andra skrivmekanismen som en Azure Database for PostgreSQL flexibel server stöder, särskilt kontrollpunktsprocessen. Kontrollpunkter sker med konstanta intervall som checkpoint_timeout definierar (om de inte tvingas genom att överskrida det konfigurerade utrymmet). För att undvika att överbelasta I/O-systemet med en plötslig mängd sidskrivningar sprids skrivningen av smutsiga buffertar vid en kontrollpunkt ut över en viss tid. Parametern checkpoint_completion_target styr denna varaktighet genom att använda checkpoint_timeout för att ange den som en andel av kontrollpunktsintervallet.

Standardvärdet checkpoint_completion_target för är 0,9 (sedan PostgreSQL 14). Det här värdet fungerar vanligtvis bäst eftersom det sprider I/O-belastningen över den maximala tidsperioden. I sällsynta fall kan kontrollpunkter inte slutföras i tid på grund av oväntade fluktuationer i antalet nödvändiga WAL-segment (Write-Ahead Logging). Potentiell påverkan på prestanda är orsaken till varför checkpoint_completion_target är ett målmått för intelligent justering.

Begränsningar och kända problem

  • Intelligent justering gör endast optimeringar i specifika intervall. Det är möjligt att funktionen inte gör några ändringar.
  • Intelligent optimering justerar inte ANALYZE-inställningar.