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:
  • Etablera 400 RU/s
  • Timme 1: inga begäranden
  • Timme 2: 400 RU/s värde av begäranden


  • 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:
  • Etablera maximalt RU/s för automatisk skalning på 4 000 RU/s (skalar mellan 400 och 4 000 RU/s)
  • Timme 1: systemet skalas upp till det högsta värdet på 3 500 RU/s
  • Timme 2: systemet skalas ned till minst 400 RU/s (alltid 10 % av ), på grund av Tmaxingen användning


  • Du 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 .

    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.

    Arbetsbelastning med variabel trafik – normaliserad RU-förbrukning mellan 6 % och 100 % för alla timmar

    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)

    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.

    Arbetsbelastning med stadig trafik – normaliserad RU-förbrukning mellan 72 % och 100 % för alla timmar

    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:

    1. Ange Aggregation för måttet Noramlized RU Consumption (Noramlized RU Consumption) till Max.
    2. Välj Tidskornighet till 1 timme.
    3. Gå till Diagramalternativ.
    4. Välj alternativet stapeldiagram.
    5. 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.

    Om du vill se normaliserad RU-förbrukning per timme, 1) Välj tidskornighet till 1 timme. 2) Redigera diagraminställningar; 3) Välj alternativ för stapeldiagram; 4) Under Dela väljer du alternativet Ladda ned till Excel för att beräkna medelvärdet 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.

    Exempel på arbetsbelastning med autoskalning, med maximalt RU/s för autoskalning på 50 000 RU/s och dataflöde mellan 5 000 och 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