Azure Cosmos DB-containers en -databases maken met doorvoer automatisch schalen
VAN TOEPASSING OP: NoSQL MongoDB Cassandra Gremlin Tafel
In Azure Cosmos DB kunt u standaard (handmatig) of automatisch ingerichte doorvoer voor uw databases en containers configureren. Met automatische schaalaanpassing van ingerichte doorvoer in Azure Cosmos DB kunt u de doorvoer (RU/s) van uw database of container automatisch en direct schalen.
Ingerichte doorvoer automatisch schalen is zeer geschikt voor bedrijfskritieke workloads met variabele of onvoorspelbare verkeerspatronen en vereisen SLA's op hoge prestaties en schaal. Automatisch schalen schaalt standaard workloads op basis van de meest actieve regio en partitie. Voor niet-uniforme workloads met verschillende workloadpatronen in regio's en partities kan deze schaalaanpassing onnodige schaalaanpassingen veroorzaken. Dynamische schaalaanpassing of dynamische automatische schaalaanpassing is een verbetering van automatische schaalaanpassing die is ingericht voor het onafhankelijk schalen van dergelijke niet-uniforme werkbelastingen op basis van gebruik, per regio en per partitieniveau. Met dynamisch schalen kunt u kosten besparen als u vaak dynamische partities ondervindt en/of meerdere regio's hebt.
Voordelen van automatisch schalen
Azure Cosmos DB-databases en -containers die zijn geconfigureerd met ingerichte doorvoer met automatische schaalaanpassing, hebben de volgende voordelen:
Eenvoudig: Automatisch schalen verwijdert de complexiteit van het beheren van RU/s met aangepaste scripts of het handmatig schalen van capaciteit.
Schaalbaar: Databases en containers schalen de ingerichte doorvoer automatisch naar behoefte. Er is geen onderbreking van clientverbindingen, toepassingen of naar Sla's van Azure Cosmos DB.
Rendabel: met automatische schaalaanpassing kunt u uw RU/s-gebruik en -kostengebruik optimaliseren door omlaag te schalen wanneer deze niet in gebruik is. U betaalt alleen voor de resources die uw workloads per uur nodig hebben. Van alle uren in een maand, als u het maximum aantal RU/s (Tmax) voor automatische schaalaanpassing instelt en de volledige hoeveelheid Tmax voor 66% van de uren of minder gebruikt, kunt u besparen met automatische schaalaanpassing. Naast dynamisch schalen is het toevoegen van een secundaire regio voor hoge beschikbaarheid rendabeler omdat elke regio en partitie onafhankelijk worden geschaald op basis van het werkelijke gebruik. Zie voor meer informatie het artikel over het kiezen tussen standaard (handmatig) en het artikel over het automatisch schalen van ingerichte doorvoer .
Maximaal beschikbaar: databases en containers met automatische schaalaanpassing gebruiken dezelfde wereldwijd gedistribueerde, fouttolerante, maximaal beschikbare Azure Cosmos DB-back-end om de duurzaamheid en hoge beschikbaarheid van gegevens te garanderen.
Use cases of autoscale
De use cases van automatische schaalaanpassing zijn onder andere:
Variabele of onvoorspelbare workloads: wanneer uw workloads variabele of onvoorspelbare pieken in gebruik hebben, helpt automatisch schalen door automatisch omhoog en omlaag te schalen op basis van gebruik. Voorbeelden zijn retailwebsites met verschillende verkeerspatronen, afhankelijk van seizoensgebondenheid; IOT-workloads met pieken op verschillende tijdstippen gedurende de dag; Line-of-Business-toepassingen die piekgebruik een paar keer per maand of jaar zien, en meer. Met automatische schaalaanpassing hoeft u niet langer handmatig in te richten voor piek- of gemiddelde capaciteit.
Nieuwe toepassingen: Als u een nieuwe toepassing ontwikkelt en niet zeker weet welke doorvoer (RU/s) u nodig hebt, kunt u met automatisch schalen eenvoudig aan de slag. U kunt beginnen met het ingangspunt voor automatische schaalaanpassing van 100 - 1000 RU/s, uw gebruik bewaken en de juiste RU/s in de loop van de tijd bepalen.
Zelden gebruikte toepassingen: Als u een toepassing hebt, die slechts enkele uren per dag, week of maand wordt gebruikt, zoals een toepassing met een laag volume, web/blogsite. Met automatische schaalaanpassing wordt de capaciteit aangepast om piekgebruik te verwerken en omlaag te schalen wanneer deze voorbij is.
Ontwikkel- en testworkloads: als u of uw team Azure Cosmos DB-databases en -containers gebruikt tijdens werkuren, maar deze niet in het weekend nodig hebt, kunt u met automatische schaalaanpassing kosten besparen door omlaag te schalen tot een minimum wanneer deze niet in gebruik zijn.
Geplande productieworkloads/query's: Als u een reeks geplande aanvragen, bewerkingen of query's hebt die u tijdens niet-actieve perioden wilt uitvoeren, kunt u dat eenvoudig doen met automatische schaalaanpassing. Wanneer u de workload moet uitvoeren, wordt de doorvoer automatisch geschaald naar de benodigde waarde en wordt deze later omlaag geschaald.
Het bouwen van een aangepaste oplossing voor deze problemen vereist niet alleen een enorme hoeveelheid tijd, maar introduceert ook complexiteit in de configuratie of code van uw toepassing. Automatisch schalen maakt de bovenstaande scenario's standaard mogelijk en verwijdert de behoefte aan aangepaste of handmatige schaalaanpassing van capaciteit.
Gebruiksvoorbeelden van dynamisch schalen
De gebruiksvoorbeelden van dynamisch schalen zijn onder andere:
- Databaseworkloads met een sterk geverkeerde primaire regio en een secundaire passieve regio voor herstel na noodgevallen.
- Met dynamisch schalen is het bereiken van hoge beschikbaarheid met meerdere regio's rendabeler. De secundaire regio wordt onafhankelijk en automatisch omlaag geschaald terwijl deze niet actief is. De secundaire regio wordt ook automatisch omhoog geschaald wanneer deze actief wordt en tijdens het verwerken van schrijfreplicatieverkeer vanuit de primaire regio.
- Databaseworkloads voor meerdere regio's.
- Deze workloads observeren vaak ongelijke distributie van aanvragen in verschillende regio's vanwege de groei van het natuurlijke verkeer en dalen gedurende de dag. Een database kan bijvoorbeeld actief zijn tijdens kantooruren in wereldwijd gedistribueerde tijdzones.
Hoe automatische schaalaanpassing van ingerichte doorvoer werkt
Bij het configureren van containers en databases met automatische schaalaanpassing geeft u de vereiste maximale doorvoer Tmax
op. Azure Cosmos DB schaalt de doorvoer T
zoals 0.1*Tmax <= T <= Tmax
. Als u bijvoorbeeld de maximale doorvoer instelt op 20.000 RU/s, wordt de doorvoer geschaald tussen 2000 en 20.000 RU/s. Omdat schalen automatisch en onmiddellijk is, kunt u op elk moment verbruiken tot de inrichting Tmax
zonder vertraging.
Elk uur wordt u gefactureerd voor de hoogste doorvoer T
die het systeem binnen het uur heeft geschaald. Wanneer dynamisch schalen is ingeschakeld, is schalen gebaseerd op het RU/s-gebruik op elke fysieke partitie en regio. Aangezien elke partitie en regio onafhankelijk van elkaar worden geschaald, kan dit leiden tot kostenbesparingen voor niet-uniforme workloads, omdat onnodige schaalaanpassingen worden vermeden.
Het ingangspunt voor de maximale doorvoer voor automatische schaalaanpassing Tmax
begint bij 1000 RU/s, die wordt geschaald tussen 100 - 1000 RU/s. U kunt instellen Tmax
in stappen van 1000 RU/s en de waarde op elk gewenst moment wijzigen.
Als we bijvoorbeeld een verzameling hebben met 1000 RU/s en 2 partities, kan elke partitie maximaal 500 RU/s gaan. Voor een uur activiteit ziet het gebruik er als volgt uit:
Regio | Partitie | Doorvoer | Gebruik | Opmerkingen |
---|---|---|---|---|
Schrijven | P1 | <= 500 RU/s | 100% | 500 RU/s die bestaan uit 50 RU/s die worden gebruikt voor schrijfbewerkingen en 450 RU/s voor leesbewerkingen. |
Schrijven | P2 | <= 200 RU/s | 40% | 200 RU/s bestaande uit alle leesbewerkingen. |
Read | P1 | <= 150 RU/s | 30% | 150 RU/s die bestaan uit 50 RU/s die worden gebruikt voor schrijfbewerkingen die zijn gerepliceerd vanuit de schrijfregio. 100 RU/s worden gebruikt voor leesbewerkingen in deze regio. |
Read | P2 | <= 50 RU/s | 10% |
Zonder dynamisch schalen worden alle partities uniform geschaald op basis van de heetste partitie. In dit voorbeeld, omdat de heetste partitie 100% gebruik had, worden alle partities in zowel de schrijf- als leesregio's geschaald naar 1000 RU/s, waardoor de totale RU/s worden geschaald naar 2000 RU/s.
Met dynamisch schalen, omdat de doorvoer van elke partitie en regio onafhankelijk wordt geschaald, is het totale aantal RU/s dat wordt geschaald 900 RU/s, wat beter overeenkomt met het werkelijke verkeerspatroon en lagere kosten.
Automatisch schalen inschakelen voor bestaande resources
Gebruik Azure Portal, CLI of PowerShell om automatisch schalen in te schakelen voor een bestaande database of container. U kunt op elk gewenst moment schakelen tussen automatische schaalaanpassing en standaard (handmatige) ingerichte doorvoer. Raadpleeg deze documentatie voor meer informatie.
Doorvoer- en opslaglimieten voor automatische schaalaanpassing
Voor elke waarde van Tmax
, kan de database of container een totaal van 0.1 * Tmax GB
. Nadat deze hoeveelheid opslagruimte is bereikt, wordt het maximum aantal RU/s automatisch verhoogd op basis van de nieuwe opslagwaarde, zonder dat dit van invloed is op uw toepassing.
Als u bijvoorbeeld begint met een maximum van 50.000 RU/s (schaalt tussen 5000 en 50.000 RU/s), kunt u maximaal 5000 GB aan gegevens opslaan. Als u meer dan 5000 GB hebt, bijvoorbeeld opslag is nu 6000 GB, wordt de nieuwe maximale RU/s 60.000 RU/s (schaalt tussen 6000 - 60.000 RU/s).
Wanneer u doorvoer op databaseniveau met automatische schaalaanpassing gebruikt, kunt u de eerste 25 containers een maximale RU/s voor automatische schaalaanpassing van 1000 delen (schaalt tussen 100 - 1000 RU/s), zolang u niet meer dan 100 GB opslagruimte hebt. Raadpleeg deze documentatie voor meer informatie.
Dynamisch schalen inschakelen
Dynamisch schalen is standaard ingeschakeld voor alle Azure Cosmos DB-accounts die zijn gemaakt na 25 september 2024. Klanten die deze functie voor hun oudere accounts willen inschakelen, kunnen dit programmatisch doen via Azure PowerShell/CLI/REST API of vanuit het deelvenster functies van Azure Portal, zoals wordt weergegeven:
Navigeer naar uw Azure Cosmos DB-account in Azure Portal.
Navigeer naar de pagina Functies .
Zoek en schakel de functie Dynamisch schalen (per regio en automatische schaalaanpassing per partitie) in.
Belangrijk
De functie is ingeschakeld op accountniveau, dus alle containers voor automatische schaalaanpassing en gedeelde doorvoerdatabases binnen het account worden automatisch toegepast op deze mogelijkheid. Het inschakelen van deze functie heeft geen invloed op resources in het account waarvoor handmatige doorvoer wordt gebruikt. Handmatige resources moeten worden gewijzigd in automatisch schalen om te kunnen profiteren van dynamische schaalaanpassing. Het inschakelen van deze functie heeft geen downtime of invloed op de prestaties. Deze functie is niet van toepassing op serverloze accounts.
Metrische gegevens bewaken
U kunt de volgende metrische gegevens gebruiken om automatische schaalaanpassing en dynamische schaalaanpassing te bewaken:
Naam meetwaarde | Definitie | Metrische gegevensgebruik |
---|---|---|
Ingerichte doorvoer | Geeft de geaggregeerde hoogste RU/s weer die gedurende het uur zijn geschaald en vertegenwoordigt het totale aantal RU/s dat voor het uur is geschaald. | U kunt de Provisioned Throughput metrische gegevens gebruiken om de RU/s te zien waarvoor u in elk uur wordt gefactureerd. Met automatische schaalaanpassing wordt u gefactureerd op basis van de meest actieve partitie voor elk uur en wordt hetzelfde toegepast op alle partities en regio's. Met dynamische automatische schaalaanpassing wordt u gefactureerd voor de geaggregeerde hoogste RU/s die in elk uur op elk partitie- en regioniveau zijn geschaald. |
Genormaliseerd RU-verbruik | Deze metrische waarde vertegenwoordigt de verhouding tussen verbruikte RU/s en ingerichte RU/s op elk partitie- en regioniveau. | Gebruik deze metrische waarde om te bepalen of de maximale doorvoer voor automatische schaalaanpassing onder of te veel is ingericht. Als de metrische waarde consistent 100% is en uw toepassing snelheidsbeperking ziet (foutcode 429), hebt u mogelijk meer RU/s nodig. Als deze metrische waarde daarentegen laag is en er geen snelheidsbeperking is, is er mogelijk ruimte om de RU/s te optimaliseren en omlaag te schalen. Meer informatie over het interpreteren en opsporen van fouten in code 429-frequentiebeperking. De Normalized RU Consumption metrische waarde weerspiegelt de RU/s die in de secundaire regio worden gebruikt vanwege schrijfreplicatieverkeer van de primaire regio, naast eventuele leesverkeer op de secundaire regio. |
Automatisch geschaalde RU | Toont de dynamisch geschaalde ingerichte doorvoer op elk partitie- en regioniveau alleen voor accounts met dynamische automatische schaalaanpassing. | Gebruik deze metrische waarde om te zien hoe partities in elke regio onafhankelijk worden geschaald op basis van hun gebruik. Gebruik metrische gegevens - Autoscaled RU van Azure Monitor om te analyseren hoe de nieuwe automatische schaalaanpassing wordt toegepast op partities en regio's. Filter op het gewenste databaseaccount en de gewenste container en filter of splits vervolgens op basis van de metrische gegevens fysieke partitionID. Deze metrische waarde toont alle partities in hun verschillende regio's. |
Vergelijking: containers die zijn geconfigureerd met handmatige versus automatische schaalaanpassing van doorvoer
Zie deze documentatie voor meer informatie over het kiezen tussen standaarddoorvoer (handmatig) en automatische schaalaanpassing.
Containers met standaarddoorvoer (handmatig) | Containers met doorvoer automatisch schalen | |
---|---|---|
Ingerichte doorvoer (RU/s) | Handmatig ingericht. | Automatisch en onmiddellijk geschaald op basis van de gebruikspatronen van workloads. |
Snelheidsbeperking van aanvragen/bewerkingen (429) | Dit kan gebeuren als het verbruik de ingerichte capaciteit overschrijdt. | Dit gebeurt niet als u RU/s verbruikt binnen het bereik voor automatische schaalaanpassing dat is geconfigureerd. |
Capaciteitsplanning | U moet capaciteitsplanning uitvoeren en de exacte doorvoer instellen die u nodig hebt. | Het systeem zorgt automatisch voor capaciteitsplanning en capaciteitsbeheer. |
Prijzen | U betaalt voor de handmatig ingerichte RU/s per uur met behulp van het standaard (handmatige) RU/s per uurtarief. | U betaalt per uur voor de hoogste RU/s die het systeem binnen het uur heeft geschaald. Voor accounts voor één schrijfregio betaalt u per uur voor de RU/s die worden gebruikt met behulp van het tarief voor automatische schaalaanpassing van RU/s per uur. Voor accounts met meerdere schrijfregio's worden geen extra kosten in rekening gebracht voor automatische schaalaanpassing. U betaalt voor de doorvoer die per uur wordt gebruikt met dezelfde schrijf-RU/s voor meerdere regio's per uur. |
Het meest geschikt voor workloadtypen | Voorspelbare en stabiele workloads | Onvoorspelbare en variabele workloads |
Standaard ingerichte doorvoer migreren naar automatische schaalaanpassing
Gebruikers die een groot aantal resources willen migreren van standaard ingerichte doorvoer naar automatische schaalaanpassing, kunnen een Azure CLI-script gebruiken om elke doorvoerresource in een Azure-abonnement te migreren naar automatische schaalaanpassing. Zie converteren naar automatische schaalaanpassing voor meer informatie.
Volgende stappen
- Bekijk de veelgestelde vragen over automatische schaalaanpassing.
- Meer informatie over het kiezen tussen handmatige en automatische schaalaanpassing van doorvoer.
- Meer informatie over het inrichten van doorvoer voor automatische schaalaanpassing voor een Azure Cosmos DB-database of -container.
- Meer informatie over partitionering in Azure Cosmos DB.
- Wilt u capaciteitsplanning uitvoeren voor een migratie naar Azure Cosmos DB? U kunt informatie over uw bestaande databasecluster gebruiken voor capaciteitsplanning.
- Als alles wat u weet het aantal vCores en servers in uw bestaande databasecluster is, leest u meer over het schatten van aanvraageenheden met behulp van vCores of vCPU's
- Als u typische aanvraagtarieven voor uw huidige databaseworkload kent, leest u meer over het schatten van aanvraageenheden met behulp van azure Cosmos DB-capaciteitsplanner