Udostępnij za pośrednictwem


Tworzenie kontenerów i baz danych usługi Azure Cosmos DB z przepływnością autoskalowania

DOTYCZY: NoSQL MongoDB Kasandra Gremlin Stół

W usłudze Azure Cosmos DB można skonfigurować standardową (ręczną) lub aprowizowaną przepływność autoskalowania w bazach danych i kontenerach. Automatyczne skalowanie aprowizowanej przepływności w usłudze Azure Cosmos DB umożliwia automatyczne i natychmiastowe skalowanie przepływności (RU/s) bazy danych lub kontenera.

Aprowizowana przepływność autoskalowania jest odpowiednia dla obciążeń o znaczeniu krytycznym, które mają zmienne lub nieprzewidywalne wzorce ruchu, i wymagają umów SLA na dużą wydajność i skalę. Skalowanie automatyczne domyślnie skaluje obciążenia na podstawie najbardziej aktywnego regionu i partycji. W przypadku obciążeń, które mają różne wzorce obciążeń w różnych regionach i partycjach, skalowanie może spowodować niepotrzebne skalowanie w górę. Skalowanie dynamiczne lub automatyczne skalowanie dynamiczne to ulepszenie aprowizowania automatycznego skalowania w całym systemie, które ułatwia niezależne skalowanie takich obciążeń niezwiązanych na podstawie użycia, na poziomie poszczególnych regionów i na poziomie partycji. Dynamiczne skalowanie pozwala zaoszczędzić koszty, jeśli często występują gorące partycje i/lub mają wiele regionów.

Zalety autoskalowania

Bazy danych i kontenery usługi Azure Cosmos DB skonfigurowane z aprowizowaną przepływnością autoskalowania mają następujące korzyści:

  • Proste: autoskalowanie eliminuje złożoność zarządzania jednostkami RU/s przy użyciu niestandardowego skryptu lub ręcznego skalowania pojemności.

  • Skalowalne: bazy danych i kontenery automatycznie skalują aprowizowaną przepływność zgodnie z potrzebami. Nie ma żadnych zakłóceń w połączeniach klienckich, aplikacjach ani umowy SLA usługi Azure Cosmos DB.

  • Ekonomiczne: autoskalowanie pomaga zoptymalizować użycie jednostek RU/s i użycie kosztów przez skalowanie w dół, gdy nie jest używane. Płacisz tylko za zasoby, których potrzebują obciążenia na godzinę. Ze wszystkich godzin w miesiącu, jeśli ustawisz maksymalną wartość RU/s(Tmax) autoskalowania i użyj pełnej ilości Tmax przez 66% godzin lub mniej, możesz zapisać przy użyciu autoskalowania. Oprócz skalowania dynamicznego dodanie regionu pomocniczego w celu zapewnienia wysokiej dostępności jest bardziej ekonomiczne, ponieważ każdy region i partycje są skalowane niezależnie na podstawie rzeczywistego użycia. Aby dowiedzieć się więcej, zobacz artykuł Jak wybrać między standardową (ręczną) i aprowizowaną przepływnością autoskalowania.

  • Wysoka dostępność: bazy danych i kontenery korzystające z automatycznego skalowania używają tego samego globalnie rozproszonego, odpornego na uszkodzenia, wysoce dostępnego zaplecza usługi Azure Cosmos DB w celu zapewnienia trwałości danych i wysokiej dostępności.

Przypadki użycia autoskalowania

Przypadki użycia autoskalowania obejmują:

  • Zmienne lub nieprzewidywalne obciążenia: jeśli obciążenia mają zmienne lub nieprzewidywalne skoki użycia, autoskalowanie pomaga automatycznie skalować w górę i w dół na podstawie użycia. Przykłady obejmują witryny internetowe handlu detalicznego, które mają różne wzorce ruchu w zależności od sezonowości; Obciążenia IOT, które mają skoki w różnych porach dnia; aplikacje biznesowe, które widzą szczytowe użycie kilka razy w miesiącu lub roku i nie tylko. W przypadku automatycznego skalowania nie trzeba już ręcznie aprowizować pod kątem szczytowej lub średniej pojemności.

  • Nowe aplikacje: jeśli tworzysz nową aplikację i nie masz pewności co do potrzebnej przepływności (RU/s), autoskalowanie ułatwia rozpoczęcie pracy. Możesz zacząć od punktu wejścia autoskalowania 100–1000 RU/s, monitorować użycie i określać odpowiednie jednostki RU/s w czasie.

  • Rzadko używane aplikacje: jeśli masz aplikację, która jest używana tylko przez kilka godzin kilka razy dziennie, tydzień lub miesiąc — na przykład w witrynie internetowej/blogu o niskim woluminie. Automatyczne skalowanie dostosowuje pojemność do obsługi szczytowego użycia i skalowania w dół, gdy się skończy.

  • Obciążenia programistyczne i testowe: jeśli ty lub twój zespół korzystasz z baz danych i kontenerów usługi Azure Cosmos DB w godzinach pracy, ale nie potrzebujesz ich w nocy lub weekendach, autoskalowanie pomaga zaoszczędzić koszty, skalując w dół do minimum, gdy nie są używane.

  • Zaplanowane obciążenia produkcyjne/zapytania: jeśli masz serię zaplanowanych żądań, operacji lub zapytań, które mają być uruchamiane w okresach bezczynności, możesz to łatwo wykonać za pomocą skalowania automatycznego. Gdy musisz uruchomić obciążenie, przepływność automatycznie skaluje się do wymaganej wartości i skaluje w dół.

Tworzenie niestandardowego rozwiązania tych problemów nie tylko wymaga ogromnego czasu, ale także wprowadza złożoność konfiguracji lub kodu aplikacji. Autoskalowanie umożliwia korzystanie z powyższych scenariuszy i eliminuje potrzebę niestandardowego lub ręcznego skalowania pojemności.

Przypadki użycia skalowania dynamicznego

Przypadki użycia dynamicznego skalowania obejmują:

  • Obciążenia bazy danych, które mają wysoce ruch w regionie podstawowym i pomocniczym pasywnym regionie na potrzeby odzyskiwania po awarii.
    • Dzięki dynamicznej skalowaniu osiągnięcie wysokiej dostępności w wielu regionach jest bardziej ekonomiczne. Region pomocniczy niezależnie i automatycznie skaluje w dół podczas bezczynności. Region pomocniczy jest również automatycznie skalowany w górę, gdy staje się aktywny i podczas obsługi ruchu replikacji zapisu z regionu podstawowego.
  • Obciążenia bazy danych w wielu regionach.
    • Obciążenia te często obserwują nierównomierny rozkład żądań w różnych regionach z powodu wzrostu i spadku ruchu naturalnego przez cały dzień. Na przykład baza danych może być aktywna w godzinach pracy w globalnie rozproszonych strefach czasowych.

Jak działa aprowizowana przepływność autoskalowania

Podczas konfigurowania kontenerów i baz danych za pomocą autoskalowania należy określić maksymalną wymaganą przepływność Tmax . Usługa Azure Cosmos DB skaluje przepływność T , taką jak 0.1*Tmax <= T <= Tmax. Jeśli na przykład ustawisz maksymalną przepływność na 20 000 RU/s, przepływność będzie skalowana między 2000 a 20 000 RU/s. Ponieważ skalowanie jest automatyczne i natychmiastowe, w dowolnym momencie można zużyć do aprowizowania Tmax bez opóźnień.

Za każdą godzinę są naliczane opłaty za najwyższą przepływność T systemu skalowaną do wartości w ciągu godziny. Po włączeniu dynamicznego skalowania skalowanie jest oparte na użyciu jednostek RU/s w każdej partycji fizycznej i regionie. Ponieważ każda partycja i region są skalowane niezależnie, może to prowadzić do obniżenia kosztów obciążeń niezwiązanych, ponieważ unika się niepotrzebnych skalowania w poziomie.

Punkt wejścia dla maksymalnej przepływności Tmax autoskalowania rozpoczyna się od 1000 RU/s, który skaluje się między 100 a 1000 RU/s. Można ustawić Tmax przyrosty 1000 RU/s i zmienić wartość w dowolnym momencie.

Jeśli na przykład mamy kolekcję z 1000 RU/s i 2 partycjami, każda partycja może przejść do 500 RU/s. W przypadku jednej godziny działania użycie będzie wyglądać następująco:

Region (Region) Partycja Produktywność Wykorzystanie Uwagi
Write P1 <= 500 RU/s 100% 500 RU/s składających się z 50 RU/s używanych do operacji zapisu i 450 RU/s na potrzeby operacji odczytu.
Write P2 <= 200 RU/s 40% 200 RU/s składających się z wszystkich operacji odczytu.
Przeczytaj P1 <= 150 RU/s 30% 150 RU/s składających się z 50 RU/s używanych do zapisu replikowanego z regionu zapisu. 100 RU/s są używane do operacji odczytu w tym regionie.
Przeczytaj P2 <= 50 RU/s 10%

Bez dynamicznego skalowania wszystkie partycje są skalowane równomiernie na podstawie najgorętszej partycji. W tym przykładzie, ponieważ najgorętsza partycja miała 100% użycia, wszystkie partycje w regionach zapisu i odczytu są skalowane do 1000 RU/s, co powoduje, że łączna liczba jednostek RU/s skalowana do 2000 RU/s.

W przypadku skalowania dynamicznego, ponieważ każda partycja i przepływność regionu są skalowane niezależnie, łączna liczba jednostek RU/s skalowana w poziomie wynosi 900 RU/s, co lepiej odzwierciedla rzeczywisty wzorzec ruchu i obniża koszty.

Włączanie automatycznego skalowania w istniejących zasobach

Użyj witryny Azure Portal, interfejsu wiersza polecenia lub programu PowerShell, aby włączyć skalowanie automatyczne w istniejącej bazie danych lub kontenerze. W dowolnym momencie możesz przełączać się między aprowizowaną przepływnością autoskalowania i standardową (ręczną). Aby uzyskać więcej informacji, zapoznaj się z tą dokumentacją , aby uzyskać więcej informacji.

Limity przepływności i magazynowania dla autoskalowania

W przypadku dowolnej wartości Tmaxbaza danych lub kontener może przechowywać łącznie 0.1 * Tmax GBwartość . Po osiągnięciu tej ilości magazynu maksymalna liczba jednostek RU/s zostanie automatycznie zwiększona na podstawie nowej wartości magazynu bez wpływu na aplikację.

Jeśli na przykład zaczniesz od maksymalnej wartości RU/s wynoszącej 50 000 RU/s (skaluje się między 5000 a 50 000 RU/s), możesz przechowywać maksymalnie 5000 GB danych. Jeśli przekroczysz 5000 GB — na przykład magazyn wynosi teraz 6000 GB, nowa maksymalna liczba JEDNOSTEK RU/s stanie się 60 000 RU/s (skaluje się między 6000 a 60 000 RU/s).

Jeśli używasz przepływności na poziomie bazy danych z autoskalowaniem, możesz mieć 25 pierwszych kontenerów współużytkujących maksymalną wartość 1000 RU/s autoskalowania (skalowanie między 100– 1000 RU/s), o ile nie przekraczasz 100 GB magazynu. Aby uzyskać więcej informacji, zapoznaj się z tą dokumentacją.

Włączanie dynamicznego skalowania

Dynamiczne skalowanie jest domyślnie włączone dla wszystkich kont usługi Azure Cosmos DB utworzonych po 25 września 2024 r. Klienci, którzy chcą włączyć tę funkcję dla starszych kont, mogą to zrobić programowo za pośrednictwem programu Azure PowerShell/interfejsu WIERSZA polecenia/interfejsu API REST lub w okienku funkcji witryny Azure Portal, jak pokazano poniżej:

  1. Przejdź do konta usługi Azure Cosmos DB w witrynie Azure Portal.

  2. Przejdź do strony Funkcje .

  3. Znajdź i włącz funkcję skalowania dynamicznego (na region i skalowanie automatyczne na partycje).

    Zrzut ekranu przedstawiający funkcję skalowania dynamicznego (na region i skalowanie automatyczne na partycje) w witrynie Azure Portal.

    Ważne

    Ta funkcja jest włączona na poziomie konta, więc wszystkie kontenery autoskalowania i współużytkowane bazy danych przepływności w ramach konta będą automatycznie miały zastosowanie tej funkcji. Włączenie tej funkcji nie ma wpływu na zasoby na koncie korzystającym z przepływności ręcznej. Aby móc korzystać ze skalowania dynamicznego, należy zmienić zasoby ręczne na skalowanie automatyczne. Włączenie tej funkcji ma zerowy przestój lub wpływ na wydajność. Ta funkcja nie ma zastosowania w przypadku kont bezserwerowych.

Monitorowanie metryk

Do monitorowania skalowania automatycznego i dynamicznego można użyć następujących metryk:

Nazwa metryki Definicja Użycie metryk
Aprowizowana przepływność Przedstawia zagregowaną najwyższą liczbę jednostek RU/s skalowaną do całej godziny i reprezentuje łączną liczbę jednostek RU/s skalowaną do godziny. Możesz użyć Provisioned Throughput metryki, aby zobaczyć jednostki RU/s, za które są naliczane opłaty za każdą godzinę. W przypadku automatycznego skalowania opłaty są naliczane na podstawie najbardziej aktywnej partycji dla każdej godziny, a to samo jest stosowane do wszystkich partycji i regionów. W przypadku dynamicznego skalowania automatycznego opłaty są naliczane za zagregowane najwyższe jednostki RU/s skalowane do każdej godziny na każdym poziomie partycji i regionu.
Znormalizowane użycie jednostek RU Ta metryka reprezentuje stosunek zużytych jednostek RU/s do aprowizowania jednostek RU/s na każdym poziomie partycji i regionu. Użyj tej metryki, aby określić, czy maksymalna przepływność autoskalowania jest nieprzekraczająca lub nadmiernie aprowizowana.

Jeśli wartość metryki jest spójnie 100%, a aplikacja widzi ograniczanie szybkości (kod błędu 429), może być potrzebna większa liczba jednostek RU/s. Natomiast jeśli ta wartość metryki jest niska i nie ma ograniczenia szybkości, może istnieć miejsce na optymalizację i skalowanie jednostek RU/s w dół. Dowiedz się, jak interpretować i debugować błędy ograniczania szybkości kodu 429.

Normalized RU Consumption Metryka odzwierciedla jednostki RU/s używane w regionie pomocniczym z powodu ruchu replikacji zapisu z podstawowego, a także dowolnego ruchu odczytu w regionie pomocniczym.
Autoskalowane jednostki RU Pokazuje dynamicznie skalowaną aprowizowaną przepływność na każdym poziomie partycji i regionu tylko dla kont z obsługą automatycznego skalowania dynamicznego. Użyj tej metryki, aby zobaczyć, jak partycje w poszczególnych regionach są skalowane niezależnie na podstawie ich użycia.

Użyj metryk - Autoscaled RU usługi Azure Monitor, aby przeanalizować sposób stosowania nowego skalowania automatycznego między partycjami i regionami. Filtruj do żądanego konta bazy danych i kontenera, a następnie filtruj lub podziel według metryki Identyfikator partycji fizycznej. Ta metryka przedstawia wszystkie partycje w różnych regionach.

Porównanie — kontenery skonfigurowane przy użyciu przepływności ręcznej i automatycznej skalowania

Aby uzyskać więcej informacji, zobacz tę dokumentację dotyczącą wybierania między standardową (ręczną) i automatyczną przepływnością.

Kontenery ze standardową (ręczną) przepływnością Kontenery z przepływnością autoskalowania
Aprowizowana przepływność (RU/s) Ręcznie zainicjowano aprowizację. Automatyczne i natychmiastowe skalowanie na podstawie wzorców użycia obciążenia.
Ograniczanie szybkości żądań/operacji (429) Może się zdarzyć, jeśli użycie przekroczy aprowizowaną pojemność. Nie występuje, jeśli używasz jednostek RU/s w skonfigurowanym zakresie przepływności autoskalowania.
Planowanie pojemności Musisz zaplanować pojemność i ustawić dokładną potrzebną przepływność. System automatycznie zajmuje się planowaniem pojemności i zarządzaniem pojemnością.
Cennik Płacisz za ręcznie aprowizowaną jednostkę RU/s na godzinę przy użyciu standardowej (ręcznej ) stawki RU/s za godzinę. Płacisz za godzinę za najwyższą liczbę jednostek RU/s, które system skalował w górę do godziny.

W przypadku kont z pojedynczym regionem zapisu płacisz za jednostki RU/s używane co godzinę, korzystając z stawki ru/s skalowania automatycznego na godzinę.

W przypadku kont z wieloma regionami zapisu nie są naliczane dodatkowe opłaty za skalowanie automatyczne. Płacisz za przepływność używaną co godzinę przy użyciu tej samej stawki ru/s zapisu w wielu regionach na godzinę.

Najlepsze rozwiązanie dla typów obciążeń Przewidywalne i stabilne obciążenia Nieprzewidywalne i zmienne obciążenia

Migrowanie standardowej aprowizowanej przepływności do skalowania automatycznego

Użytkownicy, którzy chcą migrować dużą liczbę zasobów ze standardowej aprowizowanej przepływności do automatycznego skalowania, mogą użyć skryptu interfejsu wiersza polecenia platformy Azure do migrowania każdego zasobu przepływności w subskrypcji platformy Azure do automatycznego skalowania. Aby uzyskać więcej informacji, zobacz Konwertowanie na autoskalowania.

Następne kroki