Plan Azure Database for PostgreSQL-implementaties voor operationele prestaties.

Cloud computing heeft het landschap van database-hosting aanzienlijk veranderd. Het biedt teams toegang tot schaalbaarheid, tolerantie, wereldwijd bereik en mogelijkheden die voorheen onbereikbaar waren. In plaats van aanzienlijke kosten en overhead te maken door te plannen voor de grootst mogelijke workload (en die kosten vanaf dag één te dragen), kunnen teams nu optimaliseren op de exacte schaal die ze nodig hebben, wanneer ze deze nodig hebben en aanpassen naarmate hun eisen veranderen.

Introductie

De flexibiliteit om de juiste balans tussen resources te kiezen, is vooral waardevol voor PostgreSQL-databaseimplementaties. PostgreSQL-databaseworkloads kunnen klein beginnen, snel groeien, seizoensgebonden pieken, veranderen van leeszware naar schrijfzware werkbelastingen, of zich in realtime ontwikkelen van transactionele workloads naar hybride operationele en analytische systemen. Azure Database for PostgreSQL ervoor zorgt dat uw oplossingen uw doelen bereiken door een breed scala aan keuzes te bieden voor rekenkracht, opslag, beschikbaarheid, replicatie, beveiliging, back-up en operationeel beheer.

Maar met al deze kracht komt de verantwoordelijkheid, vooral bij het plannen van uw implementaties. Om de best mogelijke prestaties te bereiken, moeten uw implementatiebeslissingen overeenkomen met de vereisten van uw algehele workload.

Een geslaagde implementatie Azure Database for PostgreSQL is niet alleen een kwestie van het kiezen van 'de meeste kernen en geheugen die we nodig hebben'. In plaats daarvan zijn maximale operationele prestaties afkomstig van het begrijpen van het gedrag van uw toepassing, het gedrag van de client, berekening, opslag en databasegroeikenmerken en hoe deze allemaal elkaar snijden en communiceren.

De beste architectuur is de architectuur waarin deze onderdelen opzettelijk worden uitgelijnd.

Cloudprestatieplanning is een gedeelde verantwoordelijkheid

Een van de belangrijkste voordelen van overstappen op een vertrouwd cloudplatform is het model voor gedeelde verantwoordelijkheid. Microsoft biedt de wereldwijde infrastructuur, beheerde services, hardware-innovatie, betrouwbaarheid, beveiliging en operationele engineering. Uw teams brengen de specifieke expertise op het gebied van toepassingscontext: bedrijfskritiek, workloadgedrag, ontwerp van gegevensmodellen, netwerkverkeersprofiel, groeiverwachtingen, hersteldoelstellingen en vereisten voor eindgebruikerservaring.

De sterkste resultaten ontstaan wanneer deze twee krachten zijn geïntegreerd.

Azure biedt een zeer schaalbare Postgres-infrastructuur, maar uw team moet inzicht krijgen in deze gebieden:

  • Hoeveel gelijktijdige gebruikers worden verwacht tijdens normale en piekperioden?
  • Zijn de belangrijkste bewerkingen met leesintensieve, schrijfintensieve of gemengde bewerkingen?
  • Piekt de vraag tijdens het einde van de maand, het kwartaal, feestdagen, lanceringen of rapportagevensters?
  • Hoe snel groeit de gegevensset?
  • Welke bewerkingen zijn latentiegevoelig?
  • Welke query's en taken kunnen langere uitvoeringstijden aankunnen?
  • Is de workload voornamelijk OLTP, OLAP of een hybride?
  • Bevinden clients zich in de buurt van de databaseregio, wereldwijd gedistribueerd of geconcentreerd in één geografie?

Leg deze details vast vóór de implementatie, niet na een productieincident. Cloudimplementaties maken schalen eenvoudiger, maar de best presterende en meest rendabele ontwerpen beginnen nog steeds met het verzamelen van goede vereisten en de juiste planning. In de meeste gevallen kunnen deze vragen worden gedestilleerd tot de relaties tussen gelijktijdige verbindingen, maximale IOPS en vereiste doorvoer.

Prestaties hebben meerdere lagen

Databaseprestaties worden zelden bepaald door één instelling. Geslaagde implementatie-ervaringen zijn afhankelijk van verschillende lagen die samenwerken:

  • Prestaties van toepassingslaag.
    Deze laag omvat toepassingscode, querypatronen, indexdekking, triggergebruik, gegevenspartitionering, verwerking van verbindingen, caching, logica voor opnieuw proberen, pooling, ORM-gedrag, transactieontwerp en gedrag van achtergrondtaken.
  • Prestaties van client- en netwerklagen.
    nl-NL: Deze laag omvat waar clients zich bevinden, hoe ze verbinding maken, of aanvragen regio's en beschikbaarheidszones doorkruisen, netwerklatentie, TLS-overhead, verbindingswisselingen en of de toepassing efficiënt gebruikmaakt van verbindingspooling.
  • Prestaties van databaseplatform.
    Deze laag omvat configuratie van Postgres-implementatie, rekengrootte, geheugen, CPU, opslagtype, opslaggrootte, opslag-IOPS, opslagdoorvoer, hoge beschikbaarheid, replica's en onderhoudsbewerkingen.

Dit artikel richt zich voornamelijk op de derde laag: het plannen van de Azure Postgres-database-implementatie, zodat reken- en opslagkeuzen het vereiste prestatieprofiel ondersteunen.

Azure Database for PostgreSQL biedt flexibiliteit, maar planning is essentieel

Azure Database for PostgreSQL Flexibele server biedt een breed scala aan implementatieopties, waaronder:

Implementatiegebied Beschikbare opties
Compute Compute-lagen, generaties van virtuele machines (VM's), configuraties voor algemeen gebruik en configuraties die zijn geoptimaliseerd voor geheugen.
Storage Azure Premium SSD v1, Premium SSD v2, opslagschalen, IOPS-configuratie en doorvoerconfiguratie.
Availability Hoge beschikbaarheid, back-up en herstel en geografisch redundante back-ups in ondersteunde configuraties.
Replication Replica's en geo-replica's lezen.
Security Door de klant beheerde sleutels en bedrijfsbeveiligingsintegratie.

Deze flexibiliteit is krachtig omdat verschillende workloads verschillende mogelijkheden vereisen. Een transactioneel systeem met schrijfintensieve schrijfbewerkingen heeft niet hetzelfde profiel nodig als een rapportageintensief systeem. Een wereldwijde SaaS-toepassing heeft niet hetzelfde ontwerp nodig als een interne regionale toepassing. Een database die 5% per jaar groeit, heeft niet hetzelfde opslagabonnement nodig als één groeiende 200% maand per maand.

Het planningsdoel is om de behoeften van uw workloadprestatieprofiel te identificeren en vervolgens de juiste keuzes te implementeren voor zowel reken- als opslagopties om uw end-to-end-oplossingen succesvol te leveren.

Beginnen met het workloadprofiel

Voordat u rekenkracht of opslag kiest, definieert u de workload. Handige planningsdimensies zijn:

Planningsgebied Vragen om te beantwoorden
Geografie Waar bevinden zich gebruikers, toepassingen, replica's en integraties?
Concurrency Hoeveel gelijktijdige verbindingen en actieve query's worden verwacht?
Gegevensgrootte Wat is de huidige databasegrootte en wat is de verwachte groeisnelheid?
Wijzigingspercentage Hoe snel groeien gegevens per maand? Hoeveel write-ahead logs (WAL's) worden gegenereerd?
Werkbelastingtype Is het systeem OLTP, OLAP, rapportage-intensief, batch-zwaar of hybride?
Lees/schrijf-combinatie Welk percentage bewerkingen zijn lees- en schrijfbewerkingen?
Piekgedrag Zijn er voorspelbare bedrijfscycli, seizoenspieken of batchvensters?
Latentiegevoeligheid Welke transacties zijn gebruikersgericht en latentiekritisch?
Doorvoerbehoeften Zijn er grote gegevensscans, exports, import- of extract-, transformatie- en laadprocessen (ETL) ?
Verwachtingen opschalen Heeft de workload tijdelijke bursts of blijvend hogere prestaties nodig?

Het doel is niet om de toekomst perfect te voorspellen. Het doel is om te voorkomen dat u blind ontwerpt.

Inzicht in de drie kernconcepten voor opslagprestaties

Azure planning voor opslagprestaties komt meestal neer op drie gerelateerde maar afzonderlijke concepten: IOPS, doorvoer en latentie. Deze factoren zijn essentieel voor de planning van de prestaties van toepassingen.

IOPS

IOPS betekent invoer-/uitvoerbewerkingen per seconde. Het meet hoeveel lees- of schrijfbewerkingen de database elke seconde naar de opslag kan verzenden.

IOPS is vooral belangrijk voor OLTP-workloads. Deze systemen voeren vaak veel kleine, willekeurige lees- en schrijfbewerkingen uit, zoals invoegingen, updates, indexzoekacties, puntleesbewerkingen en korte transacties. Een transactionele workload met duizenden gelijktijdige gebruikers heeft mogelijk hoge IOPS nodig, zelfs als elke afzonderlijke bewerking klein is.

Veelvoorkomende IOPS-gevoelige scenario's zijn:

  • Verwerking van grote hoeveelheden orders
  • Updates van gebruikersprofielen
  • Inventarissystemen
  • Gebeurtenisverwerking
  • Betalings- of factureringssystemen
  • Zeer gelijktijdige SaaS-toepassingen

Doorvoer

Doorvoer, ook wel bandbreedte genoemd, meet hoeveel gegevens in de loop van de tijd naar de opslag kunnen worden gelezen of geschreven. Dit wordt uitgedrukt in MB/s.

Doorvoer is belangrijk wanneer bewerkingen grote hoeveelheden gegevens verplaatsen. Analytische queries, back-uptaken, herstelbewerkingen, batchtaken, indexbouw, tabelscans en ETL-workflows hebben mogelijk hoge doorvoer nodig, zelfs als ze niet de hoogste IOPS nodig hebben.

Veelvoorkomende doorvoergevoelige scenario's:

  • Query's rapporteren over grote tabellen
  • Bulkimport of bulksexport
  • Scans in datawarehousestijl
  • Back-up- en herstelbewerkingen
  • Grote indexbewerkingen maken of herbouwen
  • Batchverwerking

Wachttijd

Latentie is de tijd die nodig is om één I/O-aanvraag te voltooien. Lage latentie is essentieel voor gebruikersgerichte databasebewerkingen, met name wanneer veel kleine bewerkingen aan elkaar zijn gekoppeld in een transactie.

Een systeem kan een hoge theoretische IOPS hebben, maar voelt zich nog steeds traag als de latentie hoog is. Voor Postgres-workloads kan de opslaglatentie rechtstreeks van invloed zijn op reactietijden van query's, gedrag van transactiedoorvoer, controlepuntgedrag en algehele reactiesnelheid van toepassingen.

Opmerking

Premium SSD v1-schijven zijn ontworpen voor latenties van één milliseconden voor de meeste I/O-bewerkingen, en met name schijfcaching kan de leeslatentie voor schijfconfiguraties onder 4 TB verder verminderen. Premium SSD v2 en Ultra Disk bieden latentie van submilliseconden.

IOPS, doorvoer en latentie moeten samen worden overwogen

IOPS en doorvoer zijn verbonden. Een workload die verschillende kleine 8 KiB-bewerkingen uitgeeft, kan een hoge IOPS bereiken zonder hoge doorvoer. Een workload die grote multi MB-bewerkingen uitgeeft, kan een hoge doorvoer met lagere IOPS stimuleren.

Een eenvoudige manier om erover na te denken:

IOPS x I/O-grootte = doorvoer

Voor Postgres is de praktische implicatie dat planning voor workloadopslag moet zijn gebaseerd op waargenomen of geschatte workloadgedrag, niet alleen op databasegrootte. Voorbeeld:

  • Een OLTP-systeem met hoge gelijktijdigheid heeft mogelijk meer IOPS en lagere latentie nodig.
  • Een rapportage-intensief systeem heeft mogelijk meer doorvoer nodig.
  • Een hybride systeem heeft mogelijk beide nodig, met name tijdens piekcycli.
  • Een OLTP-systeem met hoge gelijktijdigheid heeft mogelijk meer IOPS en lagere latentie nodig.
  • Een rapportage-intensief systeem heeft mogelijk meer doorvoer nodig.
  • Een hybride systeem heeft mogelijk beide nodig, met name tijdens piekcycli.

Uw implementatiekeuzes zijn rechtstreeks van invloed op de opslagprestaties

Een veelvoorkomende fout is het instellen van uw opslag voor een doelprestatienummer zonder volledig na te denken of de geselecteerde reken-SKU dezelfde prestatieniveaus kan stimuleren.

Azure opslagprestaties hebben meerdere overwegingen. Deze details omvatten:

  • De rekenmogelijkheden zijn ingesteld (maximale reken-IOPS- en doorvoerlimieten).
  • De opslaggeneratie (SSD v1, SSD v2, Ultra Disk).
  • De opslagschijfgrootte (SSD v1-schijven onder 4.096 GB) bevatten hostcaching, waardoor IOPS-bursts boven de standaardbasislijnen mogelijk zijn.
  • De IOPS-capaciteit voor opslag.
  • De opslagcapaciteit.

In praktische termen: uw effectieve prestatielimiet is uw laagste relevante limiet in de keten.

Als de opslagconfiguratie 80.000 IOPS kan bieden, maar de reken-SKU slechts 20.000 IOPS kan leveren, levert de implementatie geen 80.000 IOPS. Als de generatie van de virtuele machine echter hoge IOPS ondersteunt, maar de geselecteerde opslaglaag lager is afgetopt, wordt de opslaglaag de prestatiegrens.

Berekenings- en opslagplanning moet samen plaatsvinden.

Premium SSD v1: sterke basislijnprestaties met belangrijk cachegedrag

Premium SSD v1 is een veelgebruikte keuze voor productieomgevingen van Azure Postgres-workloads die voorspelbare, ingerichte prestaties vereisen. Azure Postgres SSD v1-opslag ondersteunt maximaal 32 TB ruimte, 20.000 IOPS en 900 MB/s doorvoer.

Premium SSD v1 werkt goed voor workloads die profiteren van hostcaching. Azure Postgres ondersteunt hostcaching voor SSD v1-schijfgrootten loos dan 4096 GB. Elke harde schijf die tot 4.095 GB is geconfigureerd, kan profiteren van hostcaching. Zodra de opslag is ingericht op 4096 GB of hoger, wordt hostcaching niet ondersteund. Die grens is belangrijk. Voor Premium SSD v1-implementaties onder 4 TB kan caching de leesprestaties verbeteren en de leeslatentie verminderen. Deze caching zorgt voor een uitstekende kosten-naar-prestatie-efficiëntie voor leesintensieve of gemengde workloads die onder de drempelwaarde voor caching passen.

Waarom de grens van 4 TB belangrijk is

Wanneer een Premium SSD v1-implementatie groter wordt dan het bereik dat door caching wordt ondersteund, kan het prestatieprofiel het volgende wijzigen:

  • Leesbewerkingen profiteren niet meer van de hostcache.
  • Meer leesbewerkingen zijn rechtstreeks afkomstig van de onderliggende schijf.
  • Leesbewerkingen tellen mee tegen schijf-IOPS en doorvoerlimieten.
  • Latentiegevoelige leesworkloads kunnen ander gedrag vertonen.
  • Een configuratie die eerder efficiënt was, heeft mogelijk meer ingerichte IOPS nodig, meer doorvoer, rekenaanpassing, queryafstemming of een andere opslagoptie.

Oversteken boven 4 TB is niet slecht, maar je moet het plannen .

Als u verwacht dat een database groter is dan 4 TB, moet u rekening houden met de toekomstige status tijdens het ontwerpen van de architectuur. Een ontwerp dat goed presteert met 2 TB met caching, heeft mogelijk een ander prestatieplan nodig van 5 TB zonder caching.

Burst helpt bij pieken, maar vervangt geen duurzame capaciteit

Azure Postgres Premium SSD v1-opslagtoewijzingen van minder dan 4 TB ondersteunen het snel opslaan in de cache door de host, wat kan helpen in scenario's zoals:

  • Opstartactiviteit
  • Korte batchtaken
  • Verkeerspieken
  • Verwerking van einde van maand
  • Tijdelijke werkbelastingspieken

Hoewel bursting nuttig is, moet u het zorgvuldig gebruiken. Bursting kan tijdelijke pieken absorberen, maar het zou niet de basis moeten zijn voor een constante werklastvraag. Als de workload vaak boven de basislijn wordt uitgevoerd, is het beter om een hogere prestatielaag in te richten, de instellingen voor opslagprestaties aan te passen, rekenkracht te schalen of het workloadpatroon opnieuw te ontwerpen.

Een goede planningsvraag is: Is dit een tijdelijke piek, of is dit het nieuwe normaal?

Tijdelijke pieken kunnen goede kandidaten zijn voor bursting. Houd rekening met een duurzame vraag met behulp van opzettelijke capaciteitsplanning.

Premium SSD v2 ontkoppelt capaciteit, IOPS en doorvoer

Premium SSD v2 wijzigt het planningsmodel door de schijfgrootte, IOPS en doorvoer te ontkoppelen. Azure Database for PostgreSQL flexibele server Premium SSD v2 ondersteunt:

  • Capaciteit van 32 GB tot 64 TB.
  • Maximaal 80.000 IOPS.
  • Tot 1200 MB/s doorvoer.
  • Granulaire capaciteitsaanpassingen in stappen van 1 GB.
  • Flexibele IOPS- en doorvoerconfiguratie.
  • Lagere latentie dan Premium SSD v1.
  • Geen hostcache.

Deze wijziging is een belangrijke verschuiving. Met Premium SSD v1 zijn de prestaties nauwer gekoppeld aan de schijfgrootte. Met Premium SSD v2 kunt u de prestaties beter configureren rond de behoeften van de workload.

Een database met veel transacties kan bijvoorbeeld een hoge IOPS nodig hebben zonder een grote hoeveelheid opslagruimte nodig te hebben. Azure Postgres biedt basislijn-IOPS en doorvoer zonder extra kosten, met extra IOPS en doorvoer beschikbaar voor extra kosten. Premium SSD v2 biedt:

  • Schijven tot 399 GB ontvangen een basislijn van 3000 IOPS en 125 MB/s.
  • Schijven van 400 GB of groter ontvangen een basislijn van 12.000 IOPS en 500 MB/s.
  • Schijven kunnen maximaal 80.000 IOPS bereiken wanneer ze zijn geformatteerd met ten minste 160 GB beschikbare ruimte.
  • Doorvoer kan worden geschaald tot 1200 MB/s.

Premium SSD v2 is vaak aantrekkelijk wanneer u nauwkeuriger controle nodig hebt over de kosten en prestaties. In plaats van de opslagcapaciteit te schalen om de prestaties te ontgrendelen, kunt u de prestaties bewuster inrichten.

Ultra Disk (Preview): de high-end prestatielklasse van Azure-schijven

Ultra Disk is de meest krachtige schijfoptie. Azure Ultra Disk biedt prestatieniveaus tot:

  • 400.000 IOPS
  • Doorvoer van 10.000 MB/s
  • Capaciteit van 64 TB
  • Ontwerpdoelen voor latentie van submilliseconden
  • Onafhankelijk configureerbare capaciteit, IOPS en doorvoer

Ultra Disk Storage is ontworpen om IO-intensieve workloads te gebruiken voor databases van de hoogste laag, SAP HANA en transactieintensieve systemen. Deze nieuwe opslag biedt top-of-the-line prestaties voor uw bedrijfskritieke workloads. Uw team moet echter rekening houden met enkele belangrijke implementatiemogelijkheden, regionale beschikbaarheidsbeperkingen en configuratieopties bij het plannen van een implementatie:

  • Automatische groei van opslag wordt niet ondersteund voor servers die Ultra Disk gebruiken
  • Gegevensversleuteling met door de klant beheerde sleutels wordt niet ondersteund voor servers met Ultra Disk
  • Ultra Disks bieden geen ondersteuning voor schijfcaching

Het is belangrijk om inzicht te hebben in de mogelijkheden van Ultra Disk als onderdeel van de bredere Azure opslagprestaties. U moet echter de beschikbaarheid en ondersteuning van de service valideren voor uw specifieke Azure Postgres-workload. Neem contact op met uw Microsoft vertegenwoordiger als de Ultra Disk Preview beschikbaar is voor uw Azure Postgres-implementatie.

Het praktische leerpunt: Ultra Disk vertegenwoordigt het bovenste uiteinde van Azure opslagprestaties, maar uw end-to-end Postgres-ontwerp moet overeenkomende ondersteunde combinaties bevatten voor de geselecteerde reken-SKU, regio en releaseniveau.

Vm-generatie is van belang: V5- en V6-rekenopslag plafonds verschillen

Het genereren van berekeningen kan van invloed zijn op de opslagprestaties. Wanneer u het hoogste einde van Azure opslagprestaties verkent, voorkomt u het misverstand dat 'grote rekenkracht' automatisch 'maximale opslag' betekent. U moet de geselecteerde reken-SKU valideren op basis van de beoogde opslaglaag. Laten we dit punt illustreren door rekening te houden met twee even grote computegeneraties Ddsv5 en Ddsv6:

De Ddsv5-serie ondersteunt Premium Storage (met caching), Premium SSD v2 en Ultra Disk op het niveau van de VM-serie. De geaggregeerde limieten voor externe opslag van de VIRTUELE machine definiëren echter nog steeds het plafond voor wat die VIRTUELE machine kan aandrijven. Ddsv5-serie biedt opslagprestaties van maximaal 80.000 IOPS en 2600 MB/s.

De Ddsv6-serie biedt een hogere opslagenvelop, variërend van 400.000 IOPS en 12.000 MB/s. Rekenkracht uit de V6-serie biedt ook een hogere schaalbaarheid dan eerdere generaties, met maximaal 192 vCPU- en 768-GiB-geheugen.

Deze generatiewijziging is belangrijk voor postgres-ontwerp met hoge prestaties. Als voor uw doelarchitectuur hoge opslagprestaties zijn vereist, kan het kiezen van een rekenkracht met een lager plafond voor aggregaatopslag verhinderen dat de implementatie gebruikmaakt van de volledige opslagmogelijkheid.

Voorbeeld: waarom end-to-end-uitlijning belangrijk is

Overweeg een PostgreSQL-workload met een aspiratieopslagdoel van 400.000 IOPS.

Op de schijflaag ondersteunt Azure Ultra Disk maximaal 400.000 IOPS per schijf. Premium SSD v2 ondersteunt maximaal 80.000 IOPS per schijf en hogere aggregatieontwerpen vereisen mogelijk meerdere schijven of abstractie op platformniveau, afhankelijk van serviceondersteuning.

Maar alleen opslagmogelijkheden zijn niet voldoende.

Een configuratie van de V5-serie kan een opslag plafond hebben dat lager is dan het doel. Zoals eerder vermeld, bieden V5-serie SKU's ondersteuning voor maximaal 260.000 IOPS voor externe schijfdoorvoer van Premium SSD. In dit geval wordt het kiezen van de rekenlaag van de V5-serie voor dit doel de beperkende factor voordat een IOPS-doel van 400.000 wordt bereikt.

De documentatie uit de Ddsv6-serie biedt daarentegen maximaal 400.000 IOPS en 12.000 MB/s. Dit maakt V6-serie en nieuwere generaties strategisch belangrijk voor ontwerpen die rekenkracht en opslag moeten afstemmen op de hoogste klassen voor opslagprestaties.

De les is eenvoudig: maximale databaseprestaties zijn een end-to-end eigenschap, niet een eigenschap met alleen opslag.

Plan voor bedrijfscycli, niet alleen voor een stabiele toestand.

Veel systemen hebben geen enkel prestatieprofiel. Ze hebben verschillende:

Normaal weekdagverkeer. Piekuren voor bedrijven.
Verwerking per maand of kwartaal. Vakantie- of seizoensvraag.
Productlanceringsevenementen. Rapportagevensters.
Onderhoudsvensters. Azure Batch verwerkingsperioden.
Back-up- en herstelscenario's. Gebeurtenissen voor herstel na noodgevallen.

Een databaseformaat voor gemiddeld gebruik kan lastig zijn tijdens de momenten die het belangrijkst zijn. Een database die permanent is gedimensioneerd voor een piek die één keer per maand voorkomt, kan daarentegen onnodig duur zijn.

Azure flexibiliteit stelt teams in staat om genuanceerdere keuzes te maken. Voorbeeld:

  • Gebruik Premium SSD v2 om IOPS en doorvoer aan te passen naarmate de workloadbehoeften zich ontwikkelen.
  • Gebruik leesreplica's om waar nodig leesintensieve werkbelastingen te ontlasten.
  • Rekenkracht schalen voor bekende piekperioden.
  • Stem queries, indexen en connection pooling af voordat u de infrastructuur schaalt.
  • Gebruik waarneembaarheid om te bepalen of het knelpunt CPU, geheugen, IOPS, doorvoer, vergrendelingsconflicten, verbindingsdruk of queryontwerp is.

De beste implementatie is niet altijd de grootste implementatie. Het is het ontwerp dat overeenkomt met de workload en veilig kan worden ontwikkeld.

Waarneembaarheid maakt deel uit van de architectuur

Het plannen van de prestaties mag niet stoppen bij de implementatie. Postgres-workloads veranderen in de loop van de tijd. Gegevens groeien, querypatronen verschuiven, nieuwe functies worden gelanceerd, klantverkeer verandert, en operationele taken stapelen zich op.

Bewakingsgebied Signalen die moeten worden beoordeeld
Compute CPU-gebruik en geheugendruk.
Verbindingen Actieve verbindingen, niet-actieve verbindingen en gedrag van verbindingsgroepen.
Queries Queryduur, wijzigingen in queryplannen en indexgebruik.
Storage Opslagpercentage, leeslatentie, schrijflatentie, IOPS-gebruik en doorvoerstatistieken.
Maintenance Tabelbloat, index-bloat, WAL-kenmerken, back-upschema's en onderhoudsschema's.
Replication Replicavertraging, indien relevant.

In de Azure Database for PostgreSQL-documentatie wordt het bewaken van I/O-verbruik via de Azure-portal of Azure CLI metrieken benadrukt, waaronder opslaglimiet, opslagpercentage, gebruikte opslag en I/O-percentage.

Deze metrische gegevens helpen de belangrijkste operationele vraag te beantwoorden: welke laag beperkt de prestaties?

Zonder observeerbaarheid kunnen teams het verkeerde schalen. Een probleem met een queryplan kan eruitzien als een opslagprobleem. Verbindingsstormen kunnen eruitzien als CPU-druk. Een ontbrekende index kan eruitzien als onvoldoende IOPS. Een probleem met regionale clientplaatsing kan eruitzien als databaselatentie.

Met bewaking kunnen teams gerichte wijzigingen aanbrengen in plaats van dure schattingen.

Controlelijst voor praktische planning

Voordat u de configuratie van de productie-Azure Database for PostgreSQL selecteert, moet u de volgende informatie vastleggen.

Category Planningsinvoer
Werkbelastingtype OLTP, OLAP, hybride, rapportage, batch en ingestie.
Lees-/schrijfmix Percentage leesbewerkingen, schrijfbewerkingen, willekeurige I/O en sequentiële I/O.
Huidige prestaties Basislijn-IOPS, doorvoer, latentie, CPU, geheugen en verbindingen.
Topprestaties Vereisten voor de 90e percentiel en 99e percentiel werkbelasting.
Gegevensgrootte Huidige grootte, verwachte groei, groot objectgebruik en indexgroei.
Groeisnelheid Projecties voor opslag van maand tot maand en jaar na jaar.
Concurrency Actieve sessies, niet-actieve sessies en gedrag van verbindingsgroepen.
Bedrijfscycli Dagelijkse, wekelijkse, maandelijkse, seizoensgebonden en lanceringsgestuurde pieken.
Availability Hoge beschikbaarheid, replica's, herstel na noodgevallen, back-up, herstelpuntdoelstelling (RPO) en RTO (Recovery Time Objective).
Opslagkeuze Premium SSD, Premium SSD v2, ondersteunde regio's en ondersteunde functies.
Impact opslaan in cache Of premium SSD v1 hostcaching van toepassing is onder 4 TB.
Compute-generatie Of de geselecteerde SKU de vereiste IOPS en doorvoer kan aandrijven.
Schaalbaarheidsmodel Handmatig schalen, gepland schalen, prestatieaanpassing en replica's.
Observeerbaarheid Metrische gegevens, waarschuwingen, query-inzichten en beoordelingsproces voor workloads.

Gebruik de volgende principes bij het plannen van Azure Postgres-implementaties voor operationele prestaties.

  • Grootte voor de vorm van de workload, niet alleen de gegevensgrootte.
    Een database van 500 GB kan meer IOPS nodig hebben dan een database van 5 TB als deze zeer transactioneel en latentiegevoelig is. De grootte is belangrijk, maar het werkloadgedrag is belangrijker.
  • Valideer de berekening en opslag samen.
    Kies niet alleen opslag op basis van schijflimieten. Controleer of de geselecteerde reken-SKU de vereiste IOPS en doorvoer kan aandrijven.
  • Behandel de grens van 4 TB Premium SSD-caching als een ontwerpmijlpal.
    Premium SSD-implementaties onder 4 TB kunnen profiteren van hostcaching. Hostcaching wordt niet ondersteund bij 4096 GB en hoger. Als de groei deze drempelwaarde overschrijdt, moet u het toekomstige prestatiemodel vroeg plannen.
  • Overweeg Premium SSD v2 voor flexibele prestaties afstemmen.
    Premium SSD v2 biedt gedetailleerdere controle over capaciteit, IOPS en doorvoer. Het kan een geschikte oplossing zijn wanneer de prestatiebehoeften niet goed passen bij vaste schijfgroottes.
  • Gebruik bursting voor uitbarstingen, niet voor constante vraag.
    Bursting kan helpen bij pieken met korte levensduur, maar frequente of aanhoudende bursting betekent meestal dat de basislijnconfiguratie opnieuw moet worden bekeken.
  • Generatie aan ambitie koppelen.
    Voor geavanceerde prestatiedoelen kunnen nieuwere rekengeneraties, zoals v6-serie, hogere limieten voor geaggregeerde externe opslag blootstellen dan eerdere generaties voor algemeen gebruik. Als het doel een architectuur van 400.000 IOPS-klasse is, selecteert u de rekengeneratie dienovereenkomstig.
  • Meet vóór en na wijzigingen.
    Schalen is eenvoudiger in de cloud, maar meting is wat het schalen effectief maakt. Leg metrische gegevens voor basislijnen, pieken en wijzigingen vast, zodat prestatiebeslissingen op bewijs zijn gebaseerd.

Echte benchmark: opslagconfiguraties vergelijken onder belasting

De principes die in dit artikel worden beschreven, zijn niet theoretisch. Om te laten zien hoe berekening, opslag en workload in de praktijk communiceren, worden in deze sectie benchmarks samengevat pgbench waarmee opslagconfiguraties en rekenlagen worden vergeleken onder gecontroleerde, gemeten omstandigheden.

Benchmark instellen en methodologie

De benchmarks gebruiken pgbench, het standaardhulpprogramma PostgreSQL-benchmark, om een transactionele workload te simuleren in vijf verschillende opslag- en rekenconfiguraties. De test begint met 500 gelijktijdige verbindingen en neemt na een eerste periode maximaal 750 gelijktijdige verbindingen op, waarbij deze verhoogde verbindingsbelasting wordt gehandhaafd voor de rest van het testvenster. Met dit oplopende patroon wordt gesimuleerd hoeveel echte toepassingen de belasting in de loop van de tijd verhogen naarmate het verkeer groeit en meet hoe de database reageert op zowel de initiële piek als een aanhoudende hoge gelijktijdigheid.

Alle benchmarks worden uitgevoerd op Azure Database for PostgreSQL Flexibele server in dezelfde regio, binnen dezelfde beschikbaarheidszone, met behulp van dezelfde testdatabase en hetzelfde workloadprofiel. Door opslag en rekenkracht als variabelen te isoleren, zorgt u ervoor dat prestatieverschillen de werkelijke platformmogelijkheden weerspiegelen in plaats van netwerk-, toepassings- of workloadvariatie.

Configuratiedetails

Test vijf afzonderlijke configuraties, variërend van opslaglaag en rekenkracht om belangrijke planningsconcepten te illustreren.

Configuratie Reken-SKU virtuele cores Memory Maximale reken-IOPS Opslagtype Capacity IOPS Doorvoer
Configuratie 1 Standard_D16ds_v5 16 64 GB 25.600 (40.000 burst) Premium SSD (P50) 4095 GB 7,500 250 MB/s
Configuratie 2 Standard_D16ds_v5 16 64 GB 25.600 (40.000 piek) Premium SSD (P50) 4096 GB 7,500 250 MB/s
Configuratie 3 Standard_D16ds_v5 16 64 GB 25.600 (40.000 piek) Premium SSD (P80) 32 TB 20,000 900 MB/s
Configuratie 4 Standard_D16ds_v5 16 64 GB 25.600 (40.000 burst) Premium SSD v2 4095 GB 40,000 1.200 MB/s
Configuratie 5 Standard_D32ds_v5 32 128 GB 51.200 Premium SSD v2 4095 GB 60,000 1.200 MB/s

Belangrijke waarnemingen van het configuratieontwerp:

  • Configuratie 1 versus configuratie 2: Deze configuraties verschillen alleen in de opslaggrootte, 4095 GB versus 4096 GB. Met deze vergelijking wordt de grens voor hostcache voor Premium SSD v1-schijven getest.
  • Configuratie 2 versus configuratie 3: Beide configuraties maken gebruik van SSD v1, maar configuratie 3 wordt geschaald naar capaciteit van 32 TB om hogere IOPS en doorvoer te ontgrendelen.
  • Configuratie 3 versus configuratie 4: Beide configuraties maken gebruik van dezelfde rekenkracht, maar configuratie 4 demonstreert Flexibele IOPS voor Premium SSD v2 en doorvoer onafhankelijk van capaciteit.
  • Configuratie 4 versus configuratie 5: Configuratie 5 verdubbelt de reken-SKU om te laten zien hoe rekenkracht met een hogere laag meer ruimte voor opslagprestaties ontgrendelt.

Prestatieresultaten

Configuratie 1: 4.095 GB Premium SSD v1 met hostcaching

Schermopname van de grafiek met prestatieresultaten voor configuratie 1 met 4095 GB Premium SSD v1-opslag en hostcaching.

Configuratie 1 maakt gebruik van de 4095 GB Premium SSD v1-grootte, die profiteert van hostcaching op Premium SSD v1. Tijdens de workload heeft deze configuratie standgehouden:

  • Max. IOPS: 24.773, beperkt door 7.500 geconfigureerde IOPS op Premium SSD v1, waarbij caching de effectieve prestaties versterkt.
  • Maximale lees-IOPS: 21.330, die profiteert van hostcache voor leesintensieve bewerkingen.
  • Maximale schrijf-IOPS: 7.610.

Hostcache biedt leesversterking, dus effectieve IOPS overschrijdt tijdelijk de 7500 ingerichte IOPS-limiet van de schijf en bereikt rekenopslaglimieten.

Configuratie 2: 4.096 GB Premium SSD v1 zonder hostcaching

Schermopname van de grafiek met prestatieresultaten voor configuratie 2 met 4096 GB Premium SSD v1-opslag zonder hostcaching.

Configuratie 2 maakt gebruik van de 4096 GB Premium SSD v1-grootte, die de cachegrens overschrijdt en voordelen van hostcaching verliest. De impact is zichtbaar:

  • Max. IOPS: Lagere effectieve IOPS vergeleken met Config 1 vanwege het verlies van caching.
  • Maximale lees-IOPS: Aanzienlijk verminderd zonder hostcache.
  • Maximale schrijf-IOPS: 7.610, ongewijzigd.

Deze configuratie demonstreert het praktische belang van de grens van 4 TB voor caching. Overgang van 4.095 GB naar 4.096 GB wijzigt het prestatieprofiel door het verwijderen van cache-lezingen. Voor groeiende databases die deze drempelwaarde naderen, moet u vooruit plannen.

Configuratie 3: 32 TB Premium SSD v1 met hogere IOPS

Schermopname van de grafiek met prestatieresultaten voor configuratie 3 met 32 TB Premium SSD v1-opslag.

Configuratie 3 adresseert de bovenste IOPS- en doorvoerlimieten van Premium SSD v1 door op te schalen naar een capaciteit van 32 TB. Deze configuratie heeft bereikt:

  • Max. IOPS: 20.000.
  • Maximale lees-IOPS: Ongeveer 12.000.
  • Maximale schrijf-IOPS: Ongeveer 5.000.

Door de onderliggende Premium SSD v1-opslagcapaciteit te verhogen, neemt de IOPS en doorvoer toe. U kunt nog steeds de bovengrenzen van het rekenopslagbereik bereiken voor intensieve workloads.

Configuratie 4: Premium SSD v2 met 40.000 IOPS

Schermopname van de grafiek met prestatieresultaten voor configuratie 4 met Premium SSD v2 en 40.000 IOPS.

Configuratie 4 demonstreert de flexibele configuratie van Premium SSD v2, waarbij 40.000 IOPS en doorvoer van 1.200 MB/s op 4.095 GB aan capaciteit worden ingericht:

  • Max. IOPS: Een hoger effectief gebruik vanwege premium SSD v2-latentie en doorvoermogelijkheden.
  • Maximale lees-IOPS: Verbeterde prestaties vergeleken met Premium SSD v1-configuraties.
  • Maximale schrijf-IOPS: Hogere duurzame schrijfcapaciteit.

Met Premium SSD v2 kunt u hoge IOPS inrichten zonder grote opslagcapaciteit, waardoor het efficiënt is voor werkbelastingen met veel transacties.

Configuratie 5: Premium SSD v2 met 60.000 IOPS op D32ds_v5 compute

Schermopname van de grafiek met prestatieresultaten voor configuratie 5 met Premium SSD v2, 60.000 IOPS en D32ds_v5 compute.

Configuratie 5 schaalt zowel de opslagprestaties, bij 60.000 IOPS als rekenkracht, met Standard_D32ds_v5 en 32 vCores. Deze configuratie demonstreert het end-to-end-uitlijningsprincipe:

  • Max. IOPS: Aanzienlijk hoger dan alle eerdere configuraties.
  • Maximale lees-IOPS: Sterke verbetering met extra rekenhoofdruimte.
  • Maximale schrijf-IOPS: Aanhoudende hogere schrijfcapaciteit.

Door rekenkracht en opslag uit te lijnen op hogere prestatielagen, bereikt deze configuratie de beste doorvoer en laagste CPU-druk. Door het hogere opslag plafond van D32ds_v5 kan de schijf van 60.000-IOPS Premium SSD v2 volledig worden gebruikt.

Lessen uit de benchmarks

Deze vijf configuraties illustreren de belangrijkste principes uit dit artikel:

  • De grens voor caching van 4 TB is belangrijk.
    Config 1 versus Config 2 laat zien dat host-caching meetbare leesprestaties versterkt voor capaciteiten onder de 4 TB, terwijl het overschrijden van 4.096 GB dat voordeel elimineert.
  • Capaciteit is geen prestaties.
    Configuratie 3 heeft 32 TB geconfigureerd, maar levert niet de hoogste IOPS. Alleen opslagcapaciteit bepaalt geen transactiedoorvoer.
  • Premium SSD v2 biedt flexibiliteit in de afstemming van prestaties.
    Configuratie vier toonde hoge IOPS bij een bescheiden capaciteit, wat het losgekoppelde model valideert dat mogelijk is gemaakt door Premium SSD v2.
  • Rekenkracht en opslag moeten worden uitgelijnd.
    Configuratie vijf geeft aan dat het maximaliseren van de opslagprestaties voldoende rekenruimte vereist. Het hogere opslag plafond van D32ds_v5 was nodig om de 60.000-IOPS-inrichting volledig te kunnen gebruiken.

De benchmarkresultaten valideren het kernprincipe: maximale prestaties zijn een end-to-end eigenschap. Geen enkele laag, zoals opslag, rekenkracht of netwerken, bepaalt het resultaat. Succes vereist opzettelijke uitlijning in alle lagen, gemeten validatie en continue observatie naarmate workloads zich ontwikkelen.

Conclusie

Azure Postgres biedt een krachtig en flexibel platform voor het bouwen van moderne, in de cloud gehoste databaseoplossingen. De engineering in Azure Compute, opslag, netwerken, hoge beschikbaarheid, replicatie, beveiliging en waarneembaarheid maakt een aantal van de meest presterende en tolerante Postgres-architecturen mogelijk.

Maximale prestaties komen niet per ongeluk tot stand.

Voor maximale operationele prestaties is inzicht nodig in de toepassing, de klanten, de workload, het profiel van gegevensgroei, de lees-/schrijfmix en de bedrijfscycli die de vraag beïnvloeden. Het vereist ook het afstemmen van berekenings- en opslagkeuzen, zodat IOPS-, doorvoer- en latentiedoelen end-to-end worden bereikt.

Premium SSD v1 kan sterke voorspelbare prestaties bieden, met name wanneer hostcaching van toepassing is op gegevens onder de grens van 4 TB. Premium SSD v2 voegt flexibelere prestatieconfiguratie toe door de capaciteit, IOPS en doorvoer te ontkoppelen. Ultra Disk vertegenwoordigt de hoogste prestatieklasse van Azure beheerde schijven, terwijl nieuwere rekengeneraties aanzienlijk hogere geaggregeerde plafonds voor externe opslag bieden voor hoogwaardige architecturen.

De beste Azure Postgres-implementaties combineren platformmogelijkheden met opzettelijke planning, continue bewaking en duidelijk operationeel eigendom. Met de juiste vereisten en de juiste architectuur kunnen teams postgres-ervaringen van wereldklasse leveren die piekprestaties bieden.