Jak wybrać między aprowizowaną przepływnością standardową (ręczną) i aprowizowaną automatycznie

DOTYCZY: Nosql Mongodb Cassandra Gremlin Tabeli

Usługa Azure Cosmos DB obsługuje dwa typy lub oferty aprowizowanej przepływności: standardowe (ręczne) i autoskalowanie. Oba typy przepływności są odpowiednie dla obciążeń o znaczeniu krytycznym, które wymagają wysokiej wydajności i skali, i są wspierane przez te same umowy SLA usługi Azure Cosmos DB dotyczące przepływności, dostępności, opóźnienia i spójności.

W tym artykule opisano sposób wybierania między standardową (ręczną) a aprowizowaną przepływnością autoskalowania dla obciążenia.

Omówienie aprowiowanych typów przepływności

Przed zapoznaniem się z różnicą między standardowym (ręcznym) i automatycznym skalowaniem ważne jest, aby najpierw zrozumieć, jak działa aprowizowana przepływność w usłudze Azure Cosmos DB.

W przypadku korzystania z aprowizowanej przepływności należy ustawić przepływność mierzoną w jednostkach żądań na sekundę (RU/s) wymaganych dla obciążenia. Usługa aprowizuje pojemność wymaganą do obsługi wymagań dotyczących przepływności. Operacje bazy danych względem usługi, takie jak odczyty, zapisy i zapytania, zużywają pewną liczbę jednostek żądania (RU). Dowiedz się więcej o jednostkach żądań.

W poniższej tabeli przedstawiono ogólne porównanie standardowych (ręcznych) i autoskalowanie.

Opis Standardowa (ręczna) Automatyczne skalowanie
Najlepiej nadaje się do Obciążenia ze stałym lub przewidywalnym ruchem Obciążenia ze zmiennym lub nieprzewidywalnym ruchem. Zobacz przypadki użycia autoskalowania.
Jak to działa Aprowizujesz zestaw jednostek RU/s T statycznych w czasie, chyba że ręcznie je zmienisz. W każdej sekundzie można użyć przepływności do T jednostek RU/s.

Jeśli na przykład ustawisz standardową (ręczną) 400 RU/s, przepływność pozostanie na poziomie 400 RU/s.
Ustawiono najwyższą lub maksymalną wartość RU/s Tmax , której system nie ma przekraczać. System automatycznie skaluje przepływność T w taki sposób, że 0.1* Tmax <= T <= Tmax.

Jeśli na przykład ustawisz maksymalną wartość ru/s autoskalowania wynoszącą 4000 RU/s, system będzie skalowany w zakresie od 400 do 4000 RU/s.
Zastosowanie Chcesz ręcznie zarządzać pojemnością przepływności (RU/s) i skalować samodzielnie.

Masz wysokie, spójne wykorzystanie aprowiowanych jednostek RU/s. Ze wszystkich godzin w miesiącu, jeśli ustawisz aprowizowaną jednostkę RU/s T i użyjesz pełnej kwoty przez 66% godzin lub więcej, szacuje się, że zaoszczędzisz przy użyciu standardowych (ręcznych) aprowizowania jednostek RU/s.

Jest to oparte na porównaniu między ustawieniem T w warstwie Standardowa (ręcznie) i taką samą ilością Tmax autoskalowaniem.
Chcesz, aby usługa Azure Cosmos DB zarządzała pojemnością przepływności (RU/s) i skalowaniem na podstawie użycia.

Masz użycie jednostek RU/s, które jest zmienne lub trudne do przewidzenia. Jeśli dla wszystkich godzin w miesiącu ustawisz maksymalną wartość RU/s Tmax autoskalowania i użyjesz pełnej kwoty Tmax przez 66% godzin lub mniej, szacuje się, że zapiszesz przy użyciu autoskalowania.

Jest to oparte na porównaniu między ustawieniem autoskalowania Tmax i taką samą przepływnością T standardową (ręczną).
Model rozliczania Rozliczenia są naliczane co godzinę dla aprowizowanej jednostki RU/s, niezależnie od liczby jednostek RU, które zostały zużyte.

Przykład:
  • Aprowizuj 400 RU/s
  • Godzina 1: brak żądań
  • Godzina 2: 400 RU/s wartości żądań


  • W obu godzinach 1 i 2 opłaty będą naliczane 400 RU/s za obie godziny według standardowych (ręcznych) stawek.
    Rozliczanie odbywa się co godzinę dla największej liczby jednostek RU/s, do których system został przeskalowany w ciągu godziny.

    Przykład:
  • Aprowizuj maksymalną wartość RU/s autoskalowania z 4000 RU/s (skaluje się między 400 a 4000 RU/s)
  • Godzina 1: system skalowany w górę do najwyższej wartości 3500 RU/s
  • Godzina 2: system skalowany w dół do minimum 400 RU/s (zawsze 10% Tmax), ze względu na brak użycia


  • Opłaty będą naliczane za 3500 RU/s w godzinach 1 i 400 RU/s w godzinie 2 z aprowizowaną szybkością przepływności autoskalowania. Szybkość autoskalowania na RU/s wynosi 1,5 * standardową (ręczną) stawkę.
    Co się stanie w przypadku przekroczenia aprowizowanej jednostki RU/s Jednostki RU/s pozostają statyczne w tym, co jest aprowidowane. Wszystkie żądania, które zużywają więcej niż aprowizowane jednostki RU w ciągu sekundy, będą ograniczone szybkością z odpowiedzią, która zaleca czas oczekiwania przed ponowną próbą. W razie potrzeby można ręcznie zwiększyć lub zmniejszyć liczbę jednostek RU/s. System będzie skalować ru/s w górę do maksymalnej liczby jednostek RU/s autoskalowania. Wszystkie żądania, które zużywają więcej niż maksymalna wartość RU/s autoskalowania w ciągu sekundy, będą ograniczone szybkością, a odpowiedź, która zaleca czas oczekiwania przed ponowieniu próby.

    Informacje o wzorcach ruchu

    Nowe aplikacje

    Jeśli tworzysz nową aplikację i nie znasz jeszcze wzorca ruchu, możesz zacząć od punktu wejścia RU/s (lub minimalnej jednostki RU/s), aby uniknąć nadmiernej aprowizacji na początku. Lub jeśli masz małą aplikację, która nie wymaga dużej skali, możesz chcieć aprowizować tylko minimalny punkt wejścia RU/s, aby zoptymalizować koszt. W przypadku małych aplikacji z niskim oczekiwanym ruchem można również rozważyć tryb pojemności bezserwerowej .

    Niezależnie od tego, czy planujesz używać standardowego (ręcznego) czy automatycznego skalowania, należy wziąć pod uwagę następujące kwestie:

    Jeśli aprowizujesz standardowe (ręczne) jednostki RU/s w punkcie wejścia 400 RU/s, nie będzie można używać powyżej 400 RU/s, chyba że ręcznie zmienisz przepływność. Opłaty będą naliczane za 400 RU/s zgodnie ze standardową (ręczną) aprowizowaną przepływnością na godzinę.

    Jeśli aprowizujesz przepływność autoskalowania z maksymalną wartością RU/s 4000 RU/s, zasób będzie skalowany w zakresie od 400 do 4000 RU/s. Ponieważ stawka rozliczeń przepływności skalowania automatycznego na jednostkę RU/s wynosi 1,5 x standardowej stawki (ręcznej), w godzinach, w których system skalował w dół do minimum 400 RU/s, rachunek będzie wyższy niż w przypadku ręcznej aprowizacji 400 RU/s. Jednak w przypadku automatycznego skalowania w dowolnym momencie, jeśli ruch aplikacji gwałtownie się zwiększa, możesz użyć do 4000 RU/s bez wymaganej akcji użytkownika. Ogólnie rzecz biorąc, należy rozważyć korzyści wynikające z możliwości korzystania z maksymalnej wartości RU/s w dowolnym momencie z szybkością 1,5 x autoskalowania.

    Użyj kalkulatora pojemności usługi Azure Cosmos DB, aby oszacować wymagania dotyczące przepływności.

    Istniejące aplikacje

    Jeśli masz istniejącą aplikację korzystającą ze standardowej (ręcznej) aprowizowanej przepływności, możesz użyć metryk usługi Azure Monitor , aby określić, czy wzorzec ruchu jest odpowiedni do automatycznego skalowania.

    Najpierw znajdź metryki znormalizowanego użycia jednostek żądania bazy danych lub kontenera. Znormalizowane wykorzystanie to miara tego, ile obecnie używasz standardowej (ręcznej) aprowizowanej przepływności. Im bliżej jest do 100%, tym więcej jest w pełni używanych aprowizowanych jednostek RU/s. Dowiedz się więcej o metryce.

    Następnie określ, jak znormalizowane wykorzystanie zmienia się w czasie. Znajdź najwyższe znormalizowane użycie dla każdej godziny. Następnie oblicz średnie znormalizowane wykorzystanie we wszystkich godzinach. Jeśli średnie użycie wynosi mniej niż 66%, rozważ włączenie automatycznego skalowania w bazie danych lub kontenerze. Jeśli natomiast średnie użycie wynosi ponad 66%, zalecane jest pozostanie przy standardowej (ręcznej) aprowizacji przepływności.

    Porada

    Jeśli konto jest skonfigurowane do używania zapisów w wielu regionach i ma więcej niż jeden region, szybkość na 100 RU/s jest taka sama zarówno w przypadku ręcznego, jak i automatycznego skalowania. Oznacza to, że włączenie autoskalowania nie wiąże się z dodatkowymi kosztami niezależnie od użycia. W związku z tym zawsze zaleca się używanie autoskalowania z zapisami w wielu regionach, gdy masz więcej niż jeden region, aby skorzystać z oszczędności z płacenia tylko za jednostki RU/s, do których aplikacja jest skalowana. Jeśli masz zapisy w wielu regionach i jeden region, użyj średniego użycia, aby określić, czy autoskalowanie spowoduje oszczędności kosztów.

    Przykłady

    Przyjrzyjmy się dwóm różnym przykładowym obciążeniom i przeanalizujmy, czy są one odpowiednie do przepływności ręcznej lub automatycznej skalowania. Aby zilustrować ogólne podejście, przeanalizujemy trzy godziny historii, aby określić różnicę kosztów między ręcznym a automatycznym skalowaniem. W przypadku obciążeń produkcyjnych zaleca się użycie historii od 7 do 30 dni (lub dłużej, jeśli jest dostępna), aby ustanowić wzorzec użycia jednostek RU/s.

    Uwaga

    Wszystkie przykłady przedstawione w tym dokumentie są oparte na cenie konta usługi Azure Cosmos DB wdrożonego w regionie spoza instytucji rządowych w Stanach Zjednoczonych. Ceny i obliczenia różnią się w zależności od używanego regionu, zobacz stronę cennika usługi Azure Cosmos DB, aby uzyskać najnowsze informacje o cenach.

    Założenia:

    • Załóżmy, że obecnie mamy ręczną przepływność 30 000 RU/s.
    • Nasz region jest skonfigurowany z zapisami w jednym regionie z jednym regionem. Gdybyśmy mieli wiele regionów, pomnożylibyśmy koszt godzinowy według liczby regionów.
    • Użyj stawek cen publicznych dla ręcznego (0,008 USD za 100 RU/s na godzinę) i przepływności autoskalowania (0,012 USD za 100 RU/s na godzinę) na kontach zapisu w jednym regionie. Aby uzyskać szczegółowe informacje, zobacz stronę cennika .

    Najpierw przyjrzymy się znormalizowane użycie jednostek RU. To obciążenie ma zmienny ruch z znormalizowanymi użyciem jednostek RU z zakresu od 6% do 100%. Czasami występują wzrosty do 100%, które są trudne do przewidzenia, ale wiele godzin z niskim wykorzystaniem.

    Obciążenie ze zmiennym ruchem — znormalizowane użycie jednostek RU z zakresu od 6% do 100% przez wszystkie godziny

    Porównajmy koszt aprowizacji 30 000 RU/s przepływności ręcznej w porównaniu z ustawieniem maksymalnej wartości RU/s autoskalowania na 30 000 (skaluje się między 3000 a 30 000 RU/s).

    Teraz przeanalizujmy historię. Załóżmy, że mamy użycie opisane w poniższej tabeli. Średnie wykorzystanie w ciągu tych trzech godzin wynosi 39%. Ponieważ znormalizowane użycie jednostek RU wynosi mniej niż 66%, zapisujemy przy użyciu autoskalowania.

    Należy pamiętać, że w godzinie 1, gdy jest 6% użycia, skalowanie automatyczne będzie rozliczać ru/s za 10% maksymalnej liczby jednostek RU/s, czyli minimum na godzinę. Chociaż koszt skalowania automatycznego może być wyższy niż ręczna przepływność w określonych godzinach, o ile średnie wykorzystanie jest mniejsze niż 66% we wszystkich godzinach, autoskalowanie będzie tańsze ogólnie.

    Okres Wykorzystanie Rozliczane automatyczne skalowanie RU/s Opcja 1: Ręczne 30 000 RU/s Opcja 2: Autoskaluj z zakresu od 3000 do 30 000 RU/s
    Godzina 1 6% 3000 30 000 * 0,008 / 100 = 2,40 USD 3000 * 0,012 / 100 = 0,36 USD
    Godzina 2 100% 30,000 30 000 * 0,008 / 100 = 2,40 USD 30 000 * 0,012 / 100 = 3,60 USD
    Godzina 3 11% 3300 30 000 * 0,008 / 100 = 2,40 USD 3300 * 0,012 / 100 = 0,40 USD
    Łącznie 7,20 USD 4,36 USD (39% oszczędności)

    To obciążenie ma stały ruch z znormalizowanym użyciem jednostek RU w zakresie od 72% do 100%. W przypadku aprowizowania 30 000 RU/s oznacza to, że zużywamy od 21 600 do 30 000 RU/s.

    Obciążenie ze stałym ruchem — znormalizowane użycie jednostek RU z zakresu od 72% do 100% przez wszystkie godziny

    Porównajmy koszt aprowizacji 30 000 RU/s przepływności ręcznej w porównaniu z ustawieniem maksymalnej wartości RU/s autoskalowania na 30 000 (skaluje się między 3000 a 30 000 RU/s).

    Załóżmy, że mamy historię wykorzystania zgodnie z opisem w tabeli. Średnie wykorzystanie w ciągu tych trzech godzin wynosi 88%. Ponieważ znormalizowane użycie jednostek RU wynosi ponad 66%, zapisujemy przy użyciu przepływności ręcznej.

    Ogólnie rzecz biorąc, jeśli średnie wykorzystanie we wszystkich 730 godzinach w ciągu jednego miesiąca jest większe niż 66%, zapiszemy się przy użyciu przepływności ręcznej.

    Okres Wykorzystanie Rozliczane automatyczne skalowanie RU/s Opcja 1: Ręczne 30 000 RU/s Opcja 2: Autoskaluj z zakresu od 3000 do 30 000 RU/s
    Godzina 1 72% 21,600 30 000 * 0,008 / 100 = 2,40 USD 21600 * 0,012 / 100 = 2,59 USD
    Godzina 2 93% 28,000 30 000 * 0,008 / 100 = 2,40 USD 28 000 * 0,012 / 100 = 3,36 USD
    Godzina 3 100% 30,000 30 000 * 0,008 / 100 = 2,40 USD 30 000 * 0,012 / 100 = 3,60 USD
    Łącznie 7,20 USD 9,55 USD

    Porada

    W przypadku przepływności standardowej (ręcznej) można użyć metryki znormalizowanych użycia, aby oszacować rzeczywiste jednostki RU/s, których można użyć, jeśli przełączysz się na autoskalowanie. Pomnożyj znormalizowane wykorzystanie w danym momencie przez obecnie aprowizowaną standardową (ręczną) jednostkę RU/s. Jeśli na przykład aprowizowano 5000 RU/s, a znormalizowane użycie wynosi 90%, użycie jednostek RU/s wynosi 0,9 * 5000 = 4500 RU/s. Jeśli widzisz, że wzorzec ruchu jest zmienny, ale w ramach aprowizacji, możesz włączyć skalowanie automatyczne, a następnie odpowiednio zmienić ustawienie maksymalnej wartości RU/s autoskalowania.

    Jak obliczyć średnie wykorzystanie

    Opłaty za skalowanie automatyczne dla najwyższych jednostek RU/s skalowane do w ciągu godziny. Podczas analizowania znormalizowanego użycia jednostek RU w czasie ważne jest użycie najwyższego wykorzystania na godzinę podczas obliczania średniej.

    Aby obliczyć średnią najwyższego wykorzystania przez wszystkie godziny:

    1. Ustaw wartość Agregacja na metryce Zużycie jednostek RU noramlized na wartość Max.
    2. Wybierz stopień szczegółowości czasu do 1 godziny.
    3. Przejdź do pozycji Opcje wykresu.
    4. Wybierz opcję wykresu słupkowego.
    5. W obszarze Udostępnij wybierz opcję Pobierz do programu Excel . Na podstawie wygenerowanego arkusza kalkulacyjnego oblicz średnie wykorzystanie we wszystkich godzinach.

    Aby zobaczyć znormalizowane użycie jednostek RU o godzinę, 1) Wybierz stopień szczegółowości czasu do 1 godziny; 2) Edytowanie ustawień wykresu; 3) Wybierz opcję wykresu słupkowego; 4) W obszarze Udostępnij wybierz opcję Pobierz do programu Excel, aby obliczyć średnią przez wszystkie godziny.

    Mierzenie i monitorowanie użycia

    W miarę upływu czasu po wybraniu typu przepływności należy monitorować aplikację i wprowadzać korekty zgodnie z potrzebami.

    W przypadku korzystania z automatycznego skalowania użyj usługi Azure Monitor, aby wyświetlić aprowizowaną maksymalną liczbę JEDNOSTEK RU/s (maksymalna przepływność autoskalowania) i ru/s, do których system jest obecnie skalowany (aprowizowana przepływność). Poniżej przedstawiono przykład zmiennej lub nieprzewidywalnego obciążenia przy użyciu skalowania automatycznego. Uwaga, jeśli nie ma żadnego ruchu, system skaluje ru/s do minimum 10% maksymalnej liczby RU/s, co w tym przypadku wynosi 5000 RU/s i 50 000 RU/s, odpowiednio.

    Przykład obciążenia przy użyciu autoskalowania z maksymalną 50 000 RU/s i przepływnością z zakresu od 5000 do 50 000 RU/s

    Uwaga

    Jeśli używasz standardowej (ręcznej) aprowizowanej przepływności, metryka Aprowizowana przepływność odnosi się do tego, co ustawiono jako użytkownik. W przypadku korzystania z przepływności autoskalowania ta metryka odnosi się do jednostek RU/s, do których system jest obecnie skalowany.

    Następne kroki