Utföra intelligent justering i Azure Database for PostgreSQL – flexibel server

GÄLLER FÖR: Azure Database for PostgreSQL – flexibel server

Azure Database for PostgreSQL – flexibel server har en intelligent justeringsfunktion som är utformad för att förbättra prestanda automatiskt och förhindra problem. Intelligent justering övervakar kontinuerligt Azure Database for PostgreSQL-databasens status för flexibel server och anpassar databasen dynamiskt till din arbetsbelastning.

Den här funktionen består av två automatiska justeringsfunktioner:

  • Autovacuumjustering: Den här funktionen spårar uppsvälldhetsförhållandet och justerar autovacuuminställningarna därefter. Den tar hänsyn till både aktuell och förutsagd resursanvändning för att förhindra arbetsbelastningsstörningar.
  • Skrivjustering: Den här funktionen övervakar volymen och mönstren för skrivåtgärder och ändrar parametrar som påverkar skrivprestanda. Dessa justeringar förbättrar både systemets prestanda och tillförlitlighet för att proaktivt avvärja potentiella komplikationer.

Du kan aktivera intelligent justering med hjälp av Azure-portalen eller Azure CLI.

Varför intelligent justering?

Autovacuum-processen är en viktig del av att upprätthålla hälsotillståndet och prestandan för en flexibel Azure Database for PostgreSQL-serverdatabas. Det hjälper till att frigöra lagring som upptas av "döda" rader, frigör utrymme och håller databasen igång smidigt.

Lika viktigt är justeringen av skrivåtgärder i databasen. Den här uppgiften faller vanligtvis på databasadministratörer. 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.

Här stegar intelligent justering in. 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.

Autovacuum tuning-funktionen i intelligent justering övervakar uppsvälldhetsförhållandet och justerar inställningarna efter behov för optimal resursanvändning. Den hanterar proaktivt "rensningsprocessen" i databasen och minskar prestandaproblem som inaktuella data kan orsaka.

Funktionen skrivjustering observerar antalet och transaktionsmönstren för skrivåtgärder. 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 kan du spara värdefull tid och resurser genom att förlita dig på en flexibel Azure Database for PostgreSQL-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 inte bara lär sig om arbetsbelastningens egenskaper utan även spårar 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 aktuell uppsvälldhetsgrad, skrivprestanda och kontrollpunktseffektivitet på din instans. Med dessa insikter distribuerar intelligent justering justeringsåtgärder som förbättrar arbetsbelastningens prestanda och undviker potentiella fallgropar.

Autovacuumjustering

Intelligent justering justerar fem parametrar relaterade till autovacuum: autovacuum_vacuum_scale_factor, autovacuum_cost_limit, autovacuum_naptime, autovacuum_vacuum_thresholdoch autovacuum_vacuum_cost_delay. Dessa parametrar reglerar komponenter som:

  • Den del av tabellen som startar en VACUUM process.
  • Den kostnadsbaserade vakuumfördröjningsgränsen.
  • Pausintervallet mellan autovacuum-körningar.
  • Det minsta antalet uppdaterade eller döda tupplar som behövs för att starta en VACUUM process.
  • Pausvaraktigheten mellan rensningsrundorna.

Viktigt!

Intelligent justering ändrar autovacuum-relaterade parametrar på servernivå, inte på enskilda tabellnivåer. Om autovacuum är inaktiverat kan intelligent justering inte heller fungera korrekt. För intelligent justering för att optimera processen måste funktionen autovacuum vara aktiverad.

Även om autovacuum daemon utlöser två åtgärder (VACUUM och ANALYZE), finjusterar intelligent justering endast VACUUM processen. Den här funktionen justerar ANALYZE för närvarande inte processen, som samlar in statistik om tabellinnehåll för att hjälpa Azure Database for PostgreSQL–frågehanteraren för flexibel server att välja den lämpligaste frågekörningsplanen.

Intelligent justering innehåller skydd för att mäta resursanvändning som CPU och IOPS. Det ökar inte autovacuumaktiviteten när instansen är hårt belastad. På så sätt säkerställer intelligent justering en balans mellan effektiva rensningsåtgärder och systemets övergripande prestanda.

När intelligent justering optimerar autovacuum tar den hänsyn till serverns genomsnittliga uppblåsthet med hjälp av statistik om levande och döda tupplar. För att minska uppsvälldhet kan intelligent justering minska parametrar som skalningsfaktorn eller naptime. Det kan utlösa VACUUM processen tidigare och, om det behövs, minska fördröjningen mellan omgångarna.

Å andra sidan, om uppblåstheten är minimal och autovacuumprocessen är för aggressiv, kan intelligent justering öka parametrar som fördröjning, skalningsfaktor och naptime. Den här balansen minimerar uppsvälldhet och hjälper till att säkerställa att autovacuum-processen använder resurser effektivt.

Skrivjustering

Intelligent justering justerar fyra parametrar relaterade till skrivjustering: bgwriter_delay, checkpoint_completion_target, max_wal_sizeoch min_wal_size.

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

Bakgrundsskrivareprocessens primära roll är att minska belastningen från den huvudsakliga kontrollpunktsprocessen och minska belastningen på backend-skrivningar. 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 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 våg av sidskrivningar sprids skrivning av smutsiga buffertar under en kontrollpunkt ut över en viss tidsperiod. Parametern checkpoint_completion_target styr den här varaktigheten med hjälp checkpoint_timeout av för att ange varaktigheten som en bråkdel 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 kanske kontrollpunkter inte slutförs i tid på grund av oväntade variationer 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 justering justerar ANALYZE inte inställningarna.
  • Autovacuum-justering stöds för närvarande för beräkningsnivåer för generell användning och minnesoptimerad server som har fyra eller fler virtuella kärnor. Den burstable server compute-nivån stöds inte.

Nästa steg