Så här väljer du mellan standarddataflöde (manuell) och autoskalning

GÄLLER FÖR: NoSQL MongoDB Kassandra Gremlin Bord

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 standarddataflöde (manuell) och automatiskt 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 dataflödet, mätt i enheter för begäranden per sekund (RU/s) som krävs för din arbetsbelastning. Tjänsten etablerar den kapacitet som behö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 viss mängd enheter för begäranden (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.
Hur det fungerar Du etablerar en uppsättning RU/s T som är statiska ö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 maximalt 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 själv.

Du har hög, konsekvent användning av etablerade RU/s. Om du anger etablerade RU/s och använder hela beloppet för 66 % av timmarna eller mer om du anger etablerade RU/s T och använder hela beloppet för 66 % av timmarna eller mer, 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 maximalt antal 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.

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/s som systemet skalas till i timmen.

    Exempel:
  • Etablera maximalt RU/s för autoskalning 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 den etablerade dataflödesfrekvensen för automatisk skalning. Autoskalningsfrekvensen per RU/s är 1,5 * standardhastigheten (manuell).
    Vad händer om du överskrider etablerade RU/s RU/s 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/s manuellt om det behövs. Systemet skalar RU/s upp till max-RU/s för autoskalning. Alla begäranden som förbrukar mer än max ru/s för autoskalning 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. Eller 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 över 400 RU/s, såvida du inte ändrar dataflödet manuellt. Du debiteras för 400 RU/s enligt standardnivån (manuellt) etablerat dataflöde per timme.

    Om du etablerar autoskalningsdataflöde med maximalt RU/s på 4 000 RU/s skalas resursen mellan 400 och 4 000 RU/s. Eftersom faktureringsfrekvensen för autoskalningsdataflöde per RU/s är 1,5 x av standardpriset (manuell) 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 om din programtrafik ökar med högst 4 000 RU/s utan att någon användaråtgärd krävs. I allmänhet bör du väga fördelen med att kunna förbruka upp till maximalt antal RU/s när som helst med autoskalningshastigheten på 1,5 x.

    Använd Kapacitetskalkylatorn för Azure Cosmos DB för att uppskatta dina dataflödeskrav.

    Befintliga program

    Om du har ett befintligt program som använder standarddataflöde (manuellt) 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.

    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 under 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.

    Dricks

    Om ditt konto är konfigurerat för att använda skrivningar i flera regioner och har fler än en region är priset per 100 RU/s detsamma för både manuell och autoskalning. 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/s 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 autoskalning 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 det är tillgängligt) för att upprätta ett mönster för RU/s-användning.

    Kommentar

    Alla exempel som visas i det här dokumentet baseras på priset för ett Azure Cosmos DB-konto som distribueras 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 är konfigurerad med skrivningar med en 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 autoskalningsdataflö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 från 6 % till 100 %. Det finns enstaka 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öde jämfört med att ange max RU/s för autoskalning till 30 000 (skalar 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 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 % under alla timmar, blir autoskalning billigare totalt sett.

    Tidsperiod Utnyttjande 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 USD
    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 USD
    Totalt 7,20 USD 4,36 USD (39 % besparingar)

    Den här arbetsbelastningen har stadig trafik med normaliserad RU-förbrukning från 72 % till 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öde jämfört med att ange max RU/s för autoskalning till 30 000 (skalar 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 är större än 66 %, sparar vi i allmänhet med hjälp av manuellt dataflöde.

    Tidsperiod Utnyttjande 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 USD
    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 USD

    Dricks

    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 byter 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 max RU/s för autoskalning.

    Beräkna genomsnittlig användning

    Autoskalningsfakturor för den högsta RU/s som skalas 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 under alla timmar:

    1. Ange Aggregation på måttet Normaliserad RU-förbrukning 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 under 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 (Max dataflöde för autoskalning) och ru/s som systemet för närvarande skalas till (Etablerat dataflöde).

    I följande exempel visas en variabel eller oförutsägbar arbetsbelastning med autoskalning. Observera att när det inte finns någon trafik skalar systemet RU/s till minst 10 % av maximalt ANTAL RU/s, vilket i det här fallet är 5 000 RU/s respektive 50 000 RU/s.

    Skärmbild av exempelarbetsbelastning med autoskalning, med max RU/s för automatisk skalning på 50 000 RU/s och dataflöde mellan 5 000 och 50 000 RU/s.

    Migrera standardetablerat dataflöde till autoskalning

    Användare som vill migrera ett stort antal resurser från standardetablerat dataflöde till autoskalning kan använda ett Azure CLI-skript som migrerar varje dataflödesresurs i en Azure-prenumeration till autoskalning. Mer information finns i Konvertera till autoskalning.

    Nästa steg