Delen via


Intelligente afstemming uitvoeren in Azure Database for PostgreSQL - Flexibele server

VAN TOEPASSING OP: Azure Database for PostgreSQL - Flexibele server

Azure Database for PostgreSQL flexibele server heeft een intelligente afstemmingsfunctie die is ontworpen om de prestaties automatisch te verbeteren en problemen te voorkomen. Intelligent afstemmen bewaakt continu de status van de flexibele Server-database van Azure Database for PostgreSQL en past de database dynamisch aan uw workload aan.

Deze functie bestaat uit twee functies voor automatisch afstemmen:

  • Autovacuum-afstemming: Met deze functie wordt de verhouding van de bloat bijgehouden en worden de instellingen voor autovacuum dienovereenkomstig aangepast. Het is een factor in zowel het huidige als voorspelde resourcegebruik om onderbrekingen van de werkbelasting te voorkomen.
  • Schrijfafstemming: Deze functie bewaakt het volume en de patronen van schrijfbewerkingen en wijzigt parameters die van invloed zijn op de schrijfprestaties. Deze aanpassingen verbeteren zowel systeemprestaties als betrouwbaarheid, om proactief potentiële complicaties te voorkomen.

U kunt intelligente afstemming inschakelen met behulp van Azure Portal of de Azure CLI.

Waarom intelligent afstemmen?

Het autovacuum-proces is een essentieel onderdeel van het onderhouden van de status en prestaties van een flexibele Azure Database for PostgreSQL-serverdatabase. Hiermee kunt u opslag die wordt bezet door 'dode' rijen vrijmaken, ruimte vrijmaken en de database soepel laten werken.

Even belangrijk is het afstemmen van schrijfbewerkingen binnen de database. Deze taak valt doorgaans onder databasebeheerders. Het kan lastig en tijdrovend zijn om voortdurend een database te bewaken en schrijfbewerkingen af te stemmen. Deze taak wordt steeds complexer wanneer u te maken hebt met meerdere databases.

Hier bevinden zich intelligente afstemmingsstappen. In plaats van uw database handmatig te controleren en af te stemmen, kunt u intelligente afstemming gebruiken om de database automatisch te bewaken en af te stemmen. Vervolgens kunt u zich richten op andere belangrijke taken.

De functie autovacuumafstemming in intelligente afstemming bewaakt de verhouding tussen bloats en past instellingen aan indien nodig voor optimaal resourcegebruik. Het beheert proactief het 'opschonen' proces van de database en vermindert prestatieproblemen die verouderde gegevens kunnen veroorzaken.

De functie voor het afstemmen van schrijfbewerkingen bekijkt de hoeveelheid en transactionele patronen van schrijfbewerkingen. Het past op intelligente wijze parameters zoals bgwriter_delay, checkpoint_completion_target, max_wal_sizeen min_wal_size. Hierdoor worden de systeemprestaties en betrouwbaarheid verbeterd, zelfs onder hoge schrijfbelastingen.

Wanneer u intelligente afstemming gebruikt, kunt u waardevolle tijd en resources besparen door te vertrouwen op een flexibele Azure Database for PostgreSQL-server om de optimale prestaties van uw databases te behouden.

Hoe werkt intelligente afstemming?

Intelligent afstemmen is een doorlopend bewakings- en analyseproces dat niet alleen meer leert over de kenmerken van uw workload, maar ook uw huidige belasting en resourcegebruik bijhoudt, zoals CPU of IOPS. De normale bewerkingen van uw toepassingsworkload worden niet verstoord.

Met het proces kan de database dynamisch worden aangepast aan uw workload door de huidige bloatverhouding, schrijfprestaties en de efficiëntie van controlepunten op uw exemplaar te onderscheiden. Met deze inzichten implementeert intelligent afstemmen acties die de prestaties van uw workload verbeteren en potentiële valkuilen voorkomen.

Autovacuum afstemmen

Met intelligent afstemmen worden vijf parameters aangepast die betrekking hebben op autovacuum: autovacuum_vacuum_scale_factor, autovacuum_cost_limit, autovacuum_naptime, autovacuum_vacuum_thresholden autovacuum_vacuum_cost_delay. Deze parameters regelen onderdelen zoals:

  • Het deel van de tabel waarmee een VACUUM proces wordt ingesteld.
  • De op kosten gebaseerde vacuümvertragingslimiet.
  • Het onderbrekingsinterval tussen autovacuum-uitvoeringen.
  • Het minimale aantal bijgewerkte of dode tuples dat nodig is om een VACUUM proces te starten.
  • De pauzeduur tussen opschoonrondes.

Belangrijk

Intelligente afstemming wijzigt autovacuum-gerelateerde parameters op serverniveau, niet op afzonderlijke tabelniveaus. Als autovacuum is uitgeschakeld, kan intelligent afstemmen niet goed werken. Voor intelligente afstemming om het proces te optimaliseren, moet de functie autovacuum zijn ingeschakeld.

Hoewel de autovacuum-daemon twee bewerkingen (VACUUM en ANALYZE), intelligente afstemming alleen het VACUUM proces fine-tunest. Met deze functie wordt het ANALYZE proces momenteel niet aangepast, waarmee statistieken over de inhoud van de tabel worden verzameld om de flexibele serverqueryplanner van Azure Database for PostgreSQL te helpen bij het kiezen van het meest geschikte queryuitvoeringsplan.

Intelligent afstemmen omvat beveiligingen om het resourcegebruik, zoals CPU en IOPS, te meten. Het verhoogt de autovacuumactiviteit niet wanneer uw exemplaar zwaar wordt belast. Op deze manier zorgt intelligente afstemming voor een balans tussen effectieve opschoonbewerkingen en de algehele prestaties van uw systeem.

Wanneer intelligent afstemmen autovacuum optimaliseert, wordt de gemiddelde bloat van de server beschouwd met behulp van statistieken over live en dode tuples. Om bloat te verminderen, kan intelligente afstemming parameters zoals de schaalfactor of naptime verminderen. Het proces kan sneller worden geactiveerd VACUUM en, indien nodig, de vertraging tussen rondes verminderen.

Aan de andere kant, als de bloat minimaal is en het autovacuumproces te agressief is, kan intelligente afstemming parameters zoals vertraging, schaalfactor en naptime verhogen. Dit evenwicht minimaliseert de bloat en zorgt ervoor dat het autovacuumproces efficiënt resources gebruikt.

Afstemming van schrijfbewerkingen

Met intelligent afstemmen worden vier parameters met betrekking tot het afstemmen van schrijfbewerkingen aangepast: bgwriter_delay, checkpoint_completion_target, max_wal_sizeen min_wal_size.

De bgwriter_delay parameter bepaalt de frequentie waarmee het achtergrondschrijverproces wordt wakker om vuile buffers (buffers die nieuw of gewijzigd zijn) op te schonen. Het achtergrondschrijverproces is een van de drie processen in azure Database for PostgreSQL flexibele server die schrijfbewerkingen verwerken. De andere zijn het controlepuntproces en back-end-schrijfbewerkingen (standaardclientprocessen, zoals toepassingsverbindingen).

De primaire rol van het achtergrondschrijverproces is het verlichten van de belasting van het belangrijkste controlepuntproces en het verminderen van de belasting van back-end-schrijfbewerkingen. De bgwriter_delay parameter bepaalt de frequentie van achtergrondschrijverrondes. Door deze parameter aan te passen, kunt u ook de prestaties van DML-query's (Data Manipulation Language) optimaliseren.

De checkpoint_completion_target parameter maakt deel uit van het tweede schrijfmechanisme dat azure Database for PostgreSQL flexibele server ondersteunt, met name het controlepuntproces. Controlepunten vinden plaats met constante intervallen die checkpoint_timeout definiëren (tenzij geforceerd door het overschrijden van de geconfigureerde ruimte). Om te voorkomen dat het I/O-systeem overbelast raakt met schrijfbewerkingen op pagina's, wordt het schrijven van vuile buffers tijdens een controlepunt verspreid over een bepaalde periode. De checkpoint_completion_target parameter bepaalt deze duur door checkpoint_timeout de duur op te geven als een fractie van het controlepuntinterval.

De standaardwaarde checkpoint_completion_target is 0,9 (sinds PostgreSQL 14). Deze waarde werkt over het algemeen het beste, omdat deze de I/O-belasting over de maximale periode verspreidt. In zeldzame gevallen kunnen controlepunten mogelijk niet op tijd worden voltooid vanwege onverwachte fluctuaties in het aantal benodigde WAL-segmenten (Write-Ahead Logging). Mogelijke impact op prestaties is de reden waarom checkpoint_completion_target een doelmetriek voor intelligente afstemming is.

Beperkingen en bekende problemen

  • Intelligent afstemmen maakt optimalisaties alleen in specifieke bereiken. Het is mogelijk dat de functie geen wijzigingen aanbrengt.
  • Met intelligent afstemmen worden de instellingen niet aangepast ANALYZE .
  • Autovacuum-afstemming wordt momenteel ondersteund voor de rekenlagen Algemeen gebruik en Geoptimaliseerd voor geheugen die vier of meer vCores hebben. De rekenlaag Burstable-server wordt niet ondersteund.

Volgende stappen