A KÖVETKEZŐKRE VONATKOZIK: NoSQL MongoDB Cassandra Gremlin Asztal
Az Azure Cosmos DB automatikus skálázással kiosztott átviteli sebességet használ az adatbázis vagy tároló kérelemegységeinek másodpercenkénti automatikus kezeléséhez és skálázásához a használat alapján. Ez a cikk választ ad az Azure Cosmos DB automatikus skálázásával kapcsolatos gyakori kérdésekre.
Mi a különbség az automatikus skálázás és a dinamikus automatikus skálázás között az Azure Cosmos DB-ben?
Az automatikus skálázás vagy az automatikus skálázás kiosztott átviteli sebessége a legaktívabb régió és partíció alapján skálázza a számítási feladatokat. Ezzel szemben a dinamikus automatikus skálázás lehetővé teszi, hogy a számítási feladatok régiói és partíciói a használat alapján egymástól függetlenül skálázhatók. Javasoljuk, hogy dinamikus automatikus skálázást biztosítsunk minden olyan ügyfélnek, aki automatikus skálázást tervez használni.
Hogyan engedélyezhetem a dinamikus automatikus skálázást egy fiókon programozott módon?
A tulajdonság enablePerRegionPerPartitionAutoscale
igaz értékre állításához használhat egy Resource Manager-sablont API-verzióval 2023-11-15-preview
vagy újabb előzetes verzióval. Ezt a tulajdonságot A JSON nézetben a 2023-11-15-ös előzetes verzió vagy egy újabb előzetes verzió használatával tekintheti meg.
Használhatja az Azure CLI-t vagy a PowerShellt is.
// Add Azure Cosmos DB extension 2.0.6-preview for PowerShell
Install-Module -Name Az.CosmosDB -RequiredVersion 2.0.6-preview -AllowPrerelease -AllowClobber -Force
// update the account using this command to enable or disable the property
Update-AzCosmosDBAccount -EnablePerRegionPerPartitionAutoscale $true -ResourceGroupName "<resource-group-name>" -Name "<cosmos-account-name>"
// Run this command to see the enablement or disablement status:
Get-AzCosmosDBAccount -ResourceGroupName "<resource-group-name>" -Name "<cosmos-account-name>"
Mi történik a korábbi autopilot-rétegmodellben létrehozott adatbázisokkal vagy tárolókkal?
A korábbi rétegmodellben létrehozott erőforrások automatikusan támogatottak az új automatikus skálázású egyéni maximális ru/s modellben. A szint felső határa az új maximális RU/s lesz, amely ugyanazt a skálázási tartományt eredményezi.
Ha például korábban kiválasztotta a 400 RU/s és 4000 RU/s közötti skálázási szintet, az adatbázis vagy tároló most 4000 RU/s maximális RU/s értéket jelenít meg, amely 400 RU/s és 4000 RU/s közötti skálázást mutat. Ezután a maximális RU/s értéket a számítási feladat alapján egyéni értékre módosíthatja.
Mi a belépési pont ru/s az automatikus skálázáshoz?
2022 áprilisától kezdve az automatikus skálázás legfeljebb 1000 RU/s (100 RU/s és 1000 RU/s közötti skálázással) állítható be. 200 RU/s skálázási tartományt 2000 RU/s-ra vagy 300 RU/s-ra is beállíthat 3000 RU/s értékre. Korábban a belépési pont 400 RU/s és 4000 RU/s között volt.
Ezt a konfigurációt olyan számítási feladatok esetében javasoljuk, amelyek alacsony átviteli sebességre vonatkozó követelményekkel rendelkeznek, de amelyek továbbra is a maximális RU/s-ra skálázhatók.
Milyen gyorsan méretezhető fel az automatikus skálázás a forgalom növekedése alapján?
Automatikus skálázás esetén a rendszer felfelé vagy T
lefelé skálázza az átviteli sebességet (RU/s) T
a 0,1 × Tmax
tartományon belül a Tmax
bejövő forgalom alapján. Mivel a skálázás automatikus és azonnali, a kiépített Tmax
skálázást bármikor késleltetve használhatja fel.
Hogyan állapíthatom meg, hogy a rendszer jelenleg milyen RU/s értékre van skálázva?
Az Azure Monitor-metrikák használatával figyelheti a kiosztott automatikus skálázás maximális RU/s-ját és a rendszer jelenlegi átviteli sebességét (RU/s) is.
Mi az automatikus skálázás díjszabása?
Minden órában a rendszer azon legmagasabb átviteli sebességéért T
kell fizetnie, amely az adott órán belülre van skálázva. Ha az erőforrásnak nem volt kérése az órában, vagy nem skálázták a 0,1 × Tmax
- ×, akkor a számlázás minimum 0,1 × Tmax
. További részletekért tekintse meg az Azure Cosmos DB díjszabási oldalát.
Hogyan jelenik meg az automatikus skálázás a számlán?
Egy írási régiós fiókokban az automatikus skálázási ráta 100 RU/s-onként 1,5-szerese a standard (manuális) kiosztott átviteli sebességnek. A számla a meglévő standard kiosztott átviteli sebességmérőt jeleníti meg. Ennek a mérőnek a mennyisége 1,5-szörös. Ha például a rendszer egy órán belül skálázott legmagasabb RU/s értéke 6000 RU/s volt, akkor 60 × 1,5 = 90 egységért kell fizetnie az adott órára vonatkozóan.
A több írási régióval rendelkező fiókokban az automatikus skálázási sebesség 100 RU/s-ra vetítve megegyezik a standard (manuális) kiosztott több írási régió átviteli sebességével. A számla a meglévő több írási régiók mérőeszközét jeleníti meg. Mivel az árak azonosak, automatikus skálázás esetén ugyanazt a mennyiséget fogja látni, mint a normál átviteli sebesség esetében.
Az automatikus skálázás lefoglalt kapacitással is működik?
Igen. Az egyszer írható régiókkal rendelkező fiókok fenntartott kapacitása esetén az automatikus skálázási erőforrások foglalási kedvezménye a mérőhasználatra az adott régió arányának másfélszerese arányban lesz alkalmazva. Ha például fenntartott kapacitást szeretne használni 10 000 automatikus skálázási RU/s fedezésére, akkor érdemes 15 000 RU/s fenntartott kapacitást vásárolnia.
A fenntartott több írási régió kapacitása ugyanúgy működik az automatikus skálázáshoz és a standard (manuális) kiosztott átviteli sebességhez. További információ: Fenntartott Azure Cosmos DB-kapacitás.
Működik az automatikus skálázás az Ingyenes Azure Cosmos DB-szinttel?
Igen. Az ingyenes szinten használhatja az automatikus skálázás átviteli sebességét egy adatbázisban vagy egy tárolóban. További információ az ingyenes szint számlázásáról az automatikus skálázással.
Minden API támogatja az automatikus skálázást?
Igen. Az automatikus skálázás minden API-hoz támogatott: NoSQL, Gremlin, Table, Cassandra és MongoDB.
A többrégiós írási fiókok támogatják az automatikus skálázást?
Igen. A maximális RU/s minden régióban elérhető, amelyet hozzáad az Azure Cosmos DB-fiókhoz.
Hogyan engedélyezhetem az automatikus skálázást új adatbázisokban vagy tárolókban?
Megtudhatja , hogyan engedélyezheti az automatikus skálázást.
Engedélyezhetem az automatikus skálázást egy meglévő adatbázisban vagy tárolóban?
Igen. Az automatikus skálázás és a standard (manuális) kiosztott átviteli sebesség között is válthat. Jelenleg az összes API-hoz használhatja az Azure Portalt, az Azure CLI-t vagy a PowerShellt ezekhez a műveletekhez. A manuális kiosztott átviteli sebesség és az automatikus skálázás közötti migráláshoz nem használhatja az Azure Cosmos DB ügyféloldali SDK-jait vagy egy Azure Resource Manager-sablont. Az ügyféloldali SDK-k vagy egy Azure Resource Manager-sablon használatával azonban létrehozhat új automatikus skálázási erőforrásokat, és módosíthatja a maximális ru/s értékeket egy meglévő automatikus skálázási erőforráson.
Hogyan működik az automatikusan skálázott és a standard módon (manuálisan) kiosztott átviteli sebesség közötti migrálás?
Elméletileg az átviteli sebesség típusának módosítása kétfázisú folyamat. Először küldjön egy kérést az átviteli sebesség beállításainak módosítására az automatikus skálázás vagy a manuális kiosztott átviteli sebesség használatára. Mindkét esetben a rendszer automatikusan meghatározza és beállítja a kezdeti RU/s értéket az aktuális átviteli sebesség beállításai és a tárolás alapján. Ebben a lépésben a rendszer nem fogad el felhasználó által megadott RU/s értéket. Ezután a frissítés befejezése után módosíthatja az RU/s-t a számítási feladatokhoz való igazodás érdekében.
Migrálás a standard (manuális) kiosztott átviteli sebességről az automatikus skálázásra
Tárolók esetében a következő képlet használatával becsülheti meg a kezdeti automatikus skálázás maximális RU/s értékét:
MAX(1,000, current manual provisioned RU/s, maximum RU/s ever provisioned / 10, storage in GB × 10)
a legközelebbi 1000 RU/s-ra kerekítve.
A tényleges kezdeti automatikus skálázás maximális RU/s-értéke a fiók konfigurációjától függően változhat.
1. példa: Van egy tárolója, amely 10 000 RU/s manuális kiosztott átviteli sebességgel és 25 GB tárhellyel rendelkezik. Ha engedélyezi az automatikus skálázást, a kezdeti automatikus skálázás maximális RU/s értéke 10 000 RU/s, amely 1000 RU/s és 10 000 RU/s közötti skálázható.
2. példa: Van egy tárolója, amely 50 000 RU/s manuális kiosztott átviteli sebességgel és 25 000 GB tárhellyel rendelkezik. Ha engedélyezi az automatikus skálázást, a kezdeti automatikus skálázás maximális RU/s értéke 250 000 RU/s, amely 25 000 RU/s és 250 000 RU/s közötti skálázható.
Migrálás az automatikus skálázásról a standard (manuális) kiosztott átviteli sebességre
A kezdeti manuális kiosztott átviteli sebesség megegyezik az aktuális automatikus skálázás maximális RU/s-jával.
Példa: Van egy automatikus skálázási adatbázisa vagy tárolója, amelynek maximális RU/s értéke 20 000 RU/s (2000 RU/s és 20 000 RU/s közötti skálázás). A manuális kiosztott átviteli sebesség használatára való frissítéskor a kezdeti átviteli sebesség 20 000 RU/s.
Ha nagy mennyiségű átviteli sebességű erőforrást kell migrálnia, fontolja meg az Azure CLI-szkript használatát – Konvertálás automatikus skálázásra.
Használhatom az Azure CLI-t, a PowerShellt vagy az Azure Resource Managert az automatikus skálázást használó adatbázisok vagy tárolók kezeléséhez?
Igen. Ha egy meglévő adatbázison vagy tárolón programozott módon szeretné engedélyezni az automatikus skálázást, használhatja az Azure CLI-t vagy a PowerShellt.
Ha automatikus skálázást használó új adatbázist vagy tárolót szeretne létrehozni, használhatja az Azure CLI-t, a PowerShellt vagy az Azure Resource Manager-sablont.
A megosztott átviteli sebességgel rendelkező adatbázisok esetében támogatott az automatikus skálázás?
Igen. Ha engedélyezni szeretné az automatikus skálázást egy megosztott átviteli sebességű adatbázishoz, az adatbázis létrehozásakor válassza az automatikus skálázást és az Átviteli sebesség kiosztása lehetőséget.
Az automatikus skálázás engedélyezésekor hány tároló engedélyezett megosztott átviteli sebességű adatbázisonként?
Az Azure Cosmos DB legfeljebb 25 tárolót kényszerít ki egy megosztott átviteli sebességű adatbázisban. A maximális érték az automatikus skálázási vagy a szabványos (manuális) átviteli sebességgel rendelkező adatbázisokra vonatkozik.
Hogyan befolyásolja az automatikus skálázás az adatbázis konzisztenciájának szintjét?
Az automatikus skálázásnak nincs hatása az adatbázis konzisztenciájának szintjére.
További információ: Konzisztenciaszintek.
Milyen tárterületkorlát van társítva az egyes maximális RU/s beállításokkal?
Az egyes maximális RU/s-k tárolási korlátja gb-ban az adatbázis vagy tároló maximális ru/s értéke 10-sel osztva. Ha például a maximális RU/s 20 000 RU/s, az erőforrás 2000 GB tárterületet támogat.
Az elérhető maximális ru/s és tárolási lehetőségekért lásd : Átviteli sebesség automatikus skálázási korlátainak kiépítése.
Mi történik, ha túllépem a maximális átviteli sebességemhez tartozó tárterületkorlátot?
Ha túllépi az adatbázis vagy tároló maximális átviteli sebességéhez társított tárolási korlátot, az Azure Cosmos DB automatikusan növeli a maximális átviteli sebességet a következő legmagasabb RU/s értékre, amely képes támogatni ezt a tárolási szintet.
Egy példaforgatókönyvben legfeljebb 50 000 RU/s (5000 RU/s és 50 000 RU/s közötti skálázás) esetén legfeljebb 5000 GB adatot tárolhat. Ha a tárterület mérete 5001 GB-ra nő, a tárterület most 6000 GB, az új maximális RU/s pedig 60 000 RU/s (6000 RU/s és 60 000 RU/s közötti skálázás).
Módosíthatjam egy adatbázis vagy tároló maximális ru/s-ját?
Igen. További információ: Az automatikus skálázási átviteli sebesség kiépítése.
A maximális RU/s módosításakor a kért értéktől függően az aszinkron művelet 4–6 órát is igénybe vehet. További információ.
Hogyan növelni a maximális RU/s-t?
Amikor kérést küld a maximális RU/s növelésére a kiválasztott maximális RU/s-értéktől Tmax
függően, a szolgáltatás több erőforrást biztosít a magasabb maximális RU/s támogatásához. Amíg ez történik, a meglévő számítási feladatokra és műveletekre nincs hatással. A rendszer továbbra is skálázza az adatbázist vagy a tárolót az előző 0.1 × Tmax
között, és Tmax
amíg az új 0,1-× Tmax_new
Tmax_new
skálázási tartomány készen nem áll.
Hogyan alacsonyabb a maximális RU/s?
Ha csökkenti a maximális RU/s értéket, a beállítható MAX(1,000, highest maximum RU/s ever provisioned / 10, current storage in GB × 10)
minimális érték a legközelebbi 1000 RU/s értékre lesz kerekítve.
1. példa: Van egy automatikus skálázási tárolója, amelynek maximális RU/s értéke 20 000 RU/s (2000 RU/s és 20 000 RU/s közötti skálázás) és 1500 GB tárterület. A legalacsonyabb, minimális érték, amelyet maximális RU/s értékre MAX(1,000, 20,000 / 10, 1,500 × 10)
állíthat be, = 15 000 RU/s (1500 RU/s és 15 000 RU/s közötti skálázás).
2. példa: Van egy automatikus skálázási tárolója, amelynek maximális RU/s értéke 100 000 RU/s és 100 GB tárhely. Most a maximális RU/s skálázása 150 000 RU/s-ig (15 000 RU/s és 150 000 RU/s közötti skálázás). A legalacsonyabb, minimális érték, amelyet most a maximális RU/s értékre MAX(1,000, 150,000 / 10, 100 × 10)
állíthat be, = 15 000 RU/s (1500 RU/s és 15 000 RU/s közötti skálázás).
Megosztott átviteli sebességű adatbázisok esetén a maximális RU/s csökkentésekor a beállítható MAX(1,000, highest maximum RU/s ever provisioned / 10, current storage in GB × 10, 1,000 + (MAX(Container count - 25, 0) × 1,000))
minimális érték a legközelebbi 1000 RU/s értékre lesz kerekítve.
Ezek a képletek és példák a beállítható minimális automatikus skálázási maximális RU/s-ra vonatkoznak. A 0.1- Tmax
Tmax
× a rendszer automatikusan skálázható tartománya. A maximális RU/s értéktől függetlenül a rendszer mindig 0,1 × Tmax
és Tmax
.
Hogyan működik a TTL és az automatikus skálázás?
Az Élettartam (TTL) műveletek nem befolyásolják az ru/s automatikus skálázási skálázását. A TTL miatt felhasznált kérelemegységek nem részei az automatikus skálázási tároló számlázott RU/s-jának.
Például egy 400 RU/s és 4000 RU/s között skálázható automatikus skálázási tároló esetében:
- 1. óra: T=0: A tároló nem rendelkezik használattal (nincs TTL- vagy számítási feladatkérés). A számlázható RU/s értéke 400 RU/s.
- 1. óra: T=1: A TTL engedélyezve van.
- 1. óra: T=2: A tároló elkezdi lekérni a kéréseket. A kérelmek 1000 RU/s-t használnak fel 1 másodperc alatt. A rendszer 200 RU/s értékű TTL-t használ. A számlázható RU/s még mindig 1000 RU/s. A TTL törlésének időpontjától függetlenül ezek nem befolyásolják az automatikus skálázási logikát.
Hogyan történik a maximális RU/s-leképezés a fizikai partíciókra?
Amikor először kiválasztja a maximális RU/s-t, az Azure Cosmos DB a maximális RU/s-t 10 000 RU/s-tal osztja el a szükséges fizikai partíciók számának lekéréséhez. Minden fizikai partíció legfeljebb 10 000 RU/s és 50 GB tárterületet támogat. A tárterület méretének növekedésével az Azure Cosmos DB automatikusan felosztja a partíciókat, hogy több fizikai partíciót adjon hozzá a tárterület növekedésének kezeléséhez. Ha a tárterület túllépi a társított korlátot, az Azure Cosmos DB növeli a maximális RU/s értéket.
Az adatbázis vagy tároló maximális RU/s-értéke egyenlően oszlik el az összes fizikai partíció között. Az egyetlen fizikai partíció által skálázható teljes átviteli sebesség az adatbázis vagy tároló maximális RU/s-értéke a fizikai partíciók számával osztva.
Mi történik, ha a bejövő kérések túllépik az adatbázis vagy tároló maximális RU/s-ját?
Ha a teljes felhasznált RU/s meghaladja az adatbázis vagy tároló maximális RU/s-ját, a rendszer szabályozza a maximális RU/s-t meghaladó kérelmeket, és 429-et ad vissza. A 100%-nál több normalizált kihasználtságot eredményező kérelmek szabályozása folyamatban van. A normalizált kihasználtság az ru/s kihasználtság maximális értéke az összes fizikai partíción.
A maximális átviteli sebesség például 20 000 RU/s, és két fizikai partícióval rendelkezik, P_1 és P_2. Minden partíció 10 000 RU/s-ra skálázható. Ha P_1 6000 kérelemegységet használt, és P_2 8000 kérelemegységet használt, akkor a normalizált kihasználtság MAX(6,000 RU / 10,000 RU, 8,000 RU / 10,000 RU)
= 0,8.
Feljegyzés
Az Azure Cosmos DB ügyféloldali SDK-jai és adatimportáló eszközei (Az Azure Data Factory, a tömeges végrehajtói kódtár) automatikusan újrapróbálkoznak a 429-es kód visszaadása után, így az alkalmi 429-es kódhibák nem okoznak problémát. A 429-es kódbeli hibák tartósan magas száma azt jelezheti, hogy növelnie kell a maximális RU/s-t, vagy át kell tekintenie a particionálási stratégiát egy gyakori elérésű partíció belefoglalásához.
Szabályozási vagy sebességkorlátozási hibák léphetnek fel az automatikus skálázás engedélyezésekor?
Igen. A 429-es kódhibák két forgatókönyvben is láthatók.
Először is, ha a teljes felhasznált RU/s meghaladja az adatbázis vagy tároló maximális RU/s-ját, a szolgáltatás ennek megfelelően szabályozza a kéréseket.
Másodszor, ha a logikai partíciókulcs-érték más partíciókulcsértékekhez képest aránytalanul nagyobb számú kéréssel rendelkezik, mint például egy gyakori partícióban, a mögöttes fizikai partíció meghaladhatja a ru/s költségvetését. A gyakori hozzáférésű partíciók elkerülésének ajánlott eljárása egy megfelelő partíciókulcs kiválasztása, amellyel a tárterület és az átviteli sebesség egyenlően osztható ki.
Ha például a 20 000 RU/s maximális átviteli sebesség beállítást választja, és 200 GB tárterületet biztosít, ha négy fizikai partícióval rendelkezik, minden fizikai partíció automatikusan 5000 RU/s-ra skálázható. Ha egy gyakori elérésű partíció egy adott logikai partíciókulcson található, a 429-ös kódhibák akkor jelennek meg, ha a mögöttes fizikai partíció meghaladja az 5000 RU/s-ot vagy a 100%-os normalizált kihasználtságot.
Ha automatikus skálázást használ, a 429-s kódhibák nem feltétlenül jeleznek problémát az adatbázissal vagy a tárolóval kapcsolatban. Általában éles számítási feladatok esetében, ha a kérések 1 és 5 százaléka között 429-nek megfelelő hibakód van, és a végpontok közötti késés elfogadható, a hibák megfelelő jele annak, hogy a kérelemegységek teljes mértékben kihasználva vannak. Semmit nem kell tenni.
Megtudhatja, hogyan értelmezhetők és hibakeresési hibák a 429-s sebességkorlátozó kódban.
A normalizált ru/s felhasználás 100 százalék lehet, ha az automatikus skálázás nem skálázható a maximális RU/s értékre?
Igen. További információ: Normalizált ru/s monitorozása.
Következő lépések
- Megtudhatja, hogyan engedélyezheti az automatikus skálázást egy Azure Cosmos DB-adatbázison vagy -tárolón.
- Ismerje meg a kiosztott átviteli sebesség előnyeit az automatikus skálázás használatával.
- További információ a logikai és fizikai partíciókról.