Så här väljer du mellan standard (manuell) och autoskalning av etablerat dataflöde
GÄLLER FÖR: Nosql Mongodb Cassandra Gremlin Tabell
Azure Cosmos DB stöder två typer eller erbjudanden av etablerat dataflöde: standard (manuell) och autoskalning. Båda dataflödestyperna är lämpliga för verksamhetskritiska arbetsbelastningar som kräver höga prestanda och skalning och som backas upp av samma Azure Cosmos DB-serviceavtal för dataflöde, tillgänglighet, svarstid och konsekvens.
Den här artikeln beskriver hur du väljer mellan standard (manuell) och autoskalning av etablerat dataflöde för din arbetsbelastning.
Översikt över etablerade dataflödestyper
Innan du undersöker skillnaden mellan standard (manuell) och autoskalning är det viktigt att först förstå hur etablerat dataflöde fungerar i Azure Cosmos DB.
När du använder etablerat dataflöde anger du det dataflöde, mätt i enheter för programbegäran per sekund (RU/s) som krävs för din arbetsbelastning. Tjänsten etablerar den kapacitet som krävs för att stödja dataflödeskraven. Databasåtgärder mot tjänsten, till exempel läsningar, skrivningar och frågor, förbrukar en del enheter för programbegäran (RU:er). Läs mer om enheter för begäranden.
I följande tabell visas en jämförelse på hög nivå mellan standard (manuell) och autoskalning.
Beskrivning | Standard (manuell) | Automatisk skalning |
---|---|---|
Passar bäst för | Arbetsbelastningar med stadig eller förutsägbar trafik | Arbetsbelastningar med variabel eller oförutsägbar trafik. Se användningsfall för autoskalning. |
Så här fungerar det | Du etablerar en angiven mängd RU/s T som är statisk över tid, såvida du inte ändrar dem manuellt. Varje sekund kan du använda upp till T RU/s-dataflöde. Om du till exempel anger standard (manuell) 400 RU/s ligger dataflödet kvar på 400 RU/s. |
Du anger den högsta eller högsta RU/s Tmax som du inte vill att systemet ska överskrida. Systemet skalar automatiskt dataflödet T så att 0.1* Tmax <= T <= Tmax . Om du till exempel anger maximal ru/s för autoskalning på 4 000 RU/s skalas systemet mellan 400 och 4 000 RU/s. |
När du ska använda detta | Du vill hantera dataflödeskapaciteten manuellt (RU/s) och skala dig själv. Du har hög, konsekvent användning av etablerade RU/s. Om du anger etablerade RU/s T och använder hela beloppet för 66 % av timmarna eller mer under alla timmar i månaden beräknas du spara med standardetablerade RU/s (manuella).Detta baseras på en jämförelse mellan inställningen T i standard (manuell) och samma mängd Tmax i autoskalning. |
Du vill att Azure Cosmos DB ska hantera din dataflödeskapacitet (RU/s) och skala baserat på användning. Du har RU/s-användning som är variabel eller svår att förutsäga. Om du anger max RU/s Tmax för automatisk skalning och använder hela beloppet Tmax för 66 % av timmarna eller mindre, beräknas du spara med autoskalning av alla timmar i månaden.Detta baseras på en jämförelse mellan att ange autoskalning Tmax och samma mängd T i standarddataflödet (manuellt). |
Faktureringsmodell | Faktureringen görs per timme för ru/s som etablerats, oavsett hur många RU:er som förbrukades. Exempel: För både timmar 1 och 2 debiteras du 400 RU/s för båda timmarna enligt standardpriserna (manuell). |
Faktureringen görs per timme, för de högsta RU:erna som systemet skalas till i timmen. Exempel: Tmax ingen användningDu debiteras för 3 500 RU/s i timme 1 och 400 RU/s i timme 2 enligt de etablerade dataflödespriserna för automatisk skalning. Autoskalningsfrekvensen per RU/s är 1,5 * standardhastigheten (manuell). |
Vad händer om du överskrider etablerade RU/s | RU:erna förblir statiska vid det som etableras. Alla begäranden som förbrukar utöver de etablerade RU:erna på en sekund kommer att vara hastighetsbegränsade, med ett svar som rekommenderar en tid att vänta innan du försöker igen. Du kan öka eller minska RU:erna manuellt om det behövs. | Systemet skalar RU/s upp till max-RU:erna för automatisk skalning. Alla begäranden som förbrukar mer än max-RU:er för automatisk skalning på en sekund kommer att vara hastighetsbegränsade, med ett svar som rekommenderar en tid att vänta innan du försöker igen. |
Förstå dina trafikmönster
Nya program
Om du skapar ett nytt program och inte känner till ditt trafikmönster ännu kanske du vill börja vid startpunkten RU/s (eller minsta RU/s) för att undvika överetablering i början. Om du har ett litet program som inte behöver hög skala kanske du bara vill etablera den minsta startpunkten RU/s för att optimera kostnaden. För små program med låg förväntad trafik kan du även överväga det serverlösa kapacitetsläget.
Oavsett om du planerar att använda standard (manuell) eller autoskalning bör du tänka på följande:
Om du etablerar standard(manuella) RU/s vid startpunkten på 400 RU/s kan du inte använda mer än 400 RU/s, såvida du inte ändrar dataflödet manuellt. Du debiteras för 400 RU/s enligt standardpriset för etablerat dataflöde (manuellt) per timme.
Om du etablerar dataflöde för automatisk skalning med maximalt RU/s på 4 000 RU/s skalas resursen mellan 400 och 4 000 RU/s. Eftersom faktureringsfrekvensen för autoskalning per RU/s är 1,5 gånger av standardpriset (manuellt), i timmar där systemet har skalats ned till minst 400 RU/s, blir din faktura högre än om du etablerade 400 RU/s manuellt. Men med autoskalning kan du när som helst använda upp till 4 000 RU/s utan att någon användaråtgärd krävs om programtrafiken ökar. I allmänhet bör du väga fördelen med att kunna använda upp till max RU/s när som helst med autoskalningshastigheten på 1,5 x.
Använd Kapacitetskalkylatorn för Azure Cosmos DB för att beräkna dina dataflödeskrav.
Befintliga program
Om du har ett befintligt program som använder standard (manuellt) etablerat dataflöde kan du använda Azure Monitor-mått för att avgöra om ditt trafikmönster är lämpligt för autoskalning.
Leta först upp måttet för normaliserad enhetsförbrukning för begäran för databasen eller containern. Normaliserad användning är ett mått på hur mycket du för närvarande använder ditt standardbaserade (manuella) etablerade dataflöde. Ju närmare talet är 100 %, desto mer använder du din etablerade RU/s. Läs mer om måttet.
Bestäm sedan hur den normaliserade användningen varierar över tid. Hitta den högsta normaliserade användningen för varje timme. Beräkna sedan den genomsnittliga normaliserade användningen för alla timmar. Om du ser att den genomsnittliga användningen är lägre än 66 % kan du överväga att aktivera autoskalning för databasen eller containern. Om den genomsnittliga användningen å andra sidan är högre än 66 % rekommenderar vi att du fortsätter med manuellt etablerat dataflöde.
Tips
Om ditt konto är konfigurerat för att använda skrivningar i flera regioner och har fler än en region är frekvensen per 100 RU/s densamma för både manuell och automatisk skalning. Det innebär att aktivering av autoskalning inte medför någon extra kostnad oavsett användning. Därför rekommenderar vi alltid att du använder autoskalning med skrivningar i flera regioner när du har fler än en region, för att dra nytta av besparingarna från att bara betala för RU:erna som ditt program skalar till. Om du har skrivningar i flera regioner och en region använder du den genomsnittliga användningen för att avgöra om autoskalning resulterar i kostnadsbesparingar.
Exempel
Låt oss ta en titt på två olika exempelarbetsbelastningar och analysera om de är lämpliga för manuell eller automatisk skalning av dataflöde. För att illustrera den allmänna metoden analyserar vi tre timmars historik för att fastställa kostnadsskillnaden mellan manuell och autoskalning. För produktionsarbetsbelastningar rekommenderar vi att du använder 7 till 30 dagars historik (eller längre om tillgängligt) för att upprätta ett mönster för RU/s-användning.
Anteckning
Alla exempel som visas i det här dokumentet baseras på priset för ett Azure Cosmos DB-konto som distribuerats i en icke-myndighetsregion i USA. Prissättningen och beräkningen varierar beroende på vilken region du använder. Se prissättningssidan för Azure Cosmos DB för den senaste prisinformationen.
Antaganden:
- Anta att vi för närvarande har ett manuellt dataflöde på 30 000 RU/s.
- Vår region har konfigurerats med skrivningar med en enda region, med en region. Om vi hade flera regioner skulle vi multiplicera timkostnaden med antalet regioner.
- Använd offentliga priser för manuell (0,008 USD per 100 RU/s per timme) och autoskalning av dataflöde (0,012 USD per 100 RU/s per timme) på skrivkonton i en region. Mer information finns på prissidan .
Exempel 1: Variabel arbetsbelastning (autoskalning rekommenderas)
Först tittar vi på den normaliserade RU-förbrukningen. Den här arbetsbelastningen har variabel trafik, med normaliserad RU-förbrukning mellan 6 % och 100 %. Det finns tillfälliga toppar till 100 % som är svåra att förutsäga, men många timmar med låg användning.
Nu ska vi jämföra kostnaden för att etablera 30 000 RU/s manuella dataflöden jämfört med att ange max RU/s för automatisk skalning till 30 000 (skalor mellan 3 000 och 30 000 RU/s).
Nu ska vi analysera historiken. Anta att vi har den användning som beskrivs i följande tabell. Den genomsnittliga användningen under dessa tre timmar är 39 %. Eftersom den normaliserade RU-förbrukningen i genomsnitt är mindre än 66 % sparar vi med hjälp av autoskalning.
Observera att i timme 1, när det finns 6 % användning, debiterar autoskalning RU/s för 10 % av det maximala ANTALET RU/s, vilket är det minsta antalet per timme. Även om kostnaden för autoskalning kan vara högre än manuellt dataflöde under vissa timmar, så länge den genomsnittliga användningen är mindre än 66 % för alla timmar, blir autoskalning totalt sett billigare.
Tidsperiod | Användning | Fakturerad AUTOSKALNING RU/s | Alternativ 1: Manuell 30 000 RU/s | Alternativ 2: Autoskalning mellan 3 000 och 30 000 RU/s |
---|---|---|---|---|
Timme 1 | 6 % | 3000 | 30 000 * 0,008 / 100 = 2,40 USD | 3000 * 0,012 / 100 = $0,36 |
Timme 2 | 100 % | 30,000 | 30 000 * 0,008 / 100 = 2,40 USD | 30 000 * 0,012 / 100 = 3,60 USD |
Timme 3 | 11% | 3300 | 30 000 * 0,008 / 100 = 2,40 USD | 3300 * 0,012 / 100 = $0,40 |
Totalt | 7,20 USD | 4,36 USD (39 % besparingar) |
Exempel 2: Stadig arbetsbelastning (manuellt dataflöde rekommenderas)
Den här arbetsbelastningen har stadig trafik, med normaliserad RU-förbrukning mellan 72 % och 100 %. Med 30 000 RU/s etablerade innebär det att vi förbrukar mellan 21 600 och 30 000 RU/s.
Nu ska vi jämföra kostnaden för att etablera 30 000 RU/s manuella dataflöden jämfört med att ange max RU/s för automatisk skalning till 30 000 (skalor mellan 3 000 och 30 000 RU/s).
Anta att vi har användningshistoriken enligt beskrivningen i tabellen. Vår genomsnittliga användning under dessa tre timmar är 88 %. Eftersom den normaliserade RU-förbrukningen i genomsnitt är större än 66 % sparar vi med hjälp av manuellt dataflöde.
Om den genomsnittliga användningen för alla 730 timmar under en månad i allmänhet är större än 66 %, sparar vi med hjälp av manuellt dataflöde.
Tidsperiod | Användning | Fakturerad AUTOSKALNING RU/s | Alternativ 1: Manuell 30 000 RU/s | Alternativ 2: Autoskalning mellan 3 000 och 30 000 RU/s |
---|---|---|---|---|
Timme 1 | 72 % | 21,600 | 30 000 * 0,008 / 100 = 2,40 USD | 21600 * 0,012 / 100 = $2,59 |
Timme 2 | 93 % | 28,000 | 30 000 * 0,008 / 100 = 2,40 USD | 28 000 * 0,012 / 100 = 3,36 USD |
Timme 3 | 100 % | 30,000 | 30 000 * 0,008 / 100 = 2,40 USD | 30 000 * 0,012 / 100 = 3,60 USD |
Totalt | 7,20 USD | $9.55 |
Tips
Med standarddataflöde (manuellt) kan du använda det normaliserade användningsmåttet för att uppskatta de faktiska RU/s som du kan använda om du växlar till autoskalning. Multiplicera den normaliserade användningen vid en tidpunkt med den för närvarande etablerade standarden (manuella) RU/s. Om du till exempel har etablerat 5 000 RU/s och den normaliserade användningen är 90 %, är RU/s-användningen 0,9 * 5 000 = 4 500 RU/s. Om du ser att ditt trafikmönster är variabelt, men du är över eller under etablerad, kanske du vill aktivera autoskalning och sedan ändra inställningen för maximal ru/s för automatisk skalning.
Så här beräknar du genomsnittlig användning
Autoskalningsfakturor för de högsta RU/s som skalats till på en timme. När du analyserar den normaliserade RU-förbrukningen över tid är det viktigt att använda den högsta användningen per timme vid beräkning av genomsnittet.
Så här beräknar du genomsnittet för den högsta användningen över alla timmar:
- Ange Aggregation för måttet Noramlized RU Consumption (Noramlized RU Consumption) till Max.
- Välj Tidskornighet till 1 timme.
- Gå till Diagramalternativ.
- Välj alternativet stapeldiagram.
- Under Dela väljer du alternativet Ladda ned till Excel . Från det genererade kalkylbladet beräknar du den genomsnittliga användningen för alla timmar.
Mäta och övervaka din användning
Med tiden, när du har valt dataflödestyp, bör du övervaka ditt program och göra justeringar efter behov.
När du använder autoskalning använder du Azure Monitor för att se det etablerade autoskalningsvärdet för maximalt RU/s (autoskalning av maximalt dataflöde) och de RU/s som systemet för närvarande skalas till (Etablerat dataflöde). Nedan visas ett exempel på en variabel eller oförutsägbar arbetsbelastning med autoskalning. Observera att när det inte finns någon trafik skalar systemet RU:erna till minst 10 % av maximal RU/s, vilket i det här fallet är 5 000 RU/s respektive 50 000 RU/s.
Anteckning
När du använder standard (manuellt) etablerat dataflöde refererar måttet Etablerat dataflöde till det du som användare har angett. När du använder autoskalningsdataflöde refererar det här måttet till de RU/s som systemet för närvarande skalas till.
Nästa steg
- Använd RU-kalkylatorn för att beräkna dataflödet för nya arbetsbelastningar.
- Använd Azure Monitor för att övervaka dina befintliga arbetsbelastningar.
- Lär dig hur du etablerar dataflöde för automatisk skalning i en Azure Cosmos DB-databas eller container.
- Läs vanliga frågor och svar om autoskalning.
- Försöker du göra kapacitetsplanering för en migrering till Azure Cosmos DB? Du kan använda information om ditt befintliga databaskluster för kapacitetsplanering.
- Om allt du vet är antalet virtuella kärnor och servrar i ditt befintliga databaskluster läser du om att uppskatta enheter för programbegäran med hjälp av virtuella kärnor eller vCPU:er
- Om du känner till vanliga begärandefrekvenser för din aktuella databasarbetsbelastning kan du läsa om att uppskatta enheter för programbegäran med hjälp av Kapacitetsplaneraren för Azure Cosmos DB