Udostępnij za pośrednictwem


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

DOTYCZY: NoSQL MongoDB Kasandra Gremlin Stół

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 krytycznym znaczeniu, 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ą) i aprowizowaną przepływnością autoskalowania dla obciążenia.

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

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

W przypadku korzystania z aprowizowanej przepływności ustawia się 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ą ilość jednostek żądania (RU). Dowiedz się więcej o jednostkach żądań.

W poniższej tabeli przedstawiono ogólne porównanie standardowego (ręcznego) i automatycznego skalowania.

opis Standardowa (ręczna) Skalowanie automatyczne
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. Każda sekunda umożliwia użycie 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ą liczbę jednostek RU/s Tmax , których nie chcesz przekraczać. System automatycznie skaluje przepływność T tak, ż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 zaaprowizowanych jednostek RU/s. Ze wszystkich godzin w miesiącu, jeśli ustawiono 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 standardowym (ręcznym) 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 skalowania automatycznego 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ą kwotą T w standardowej (ręcznej) przepływności.
Model rozliczania Rozliczanie odbywa się na podstawie 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 warte żądań


  • W obu godzinach 1 i 2 opłaty będą naliczane 400 RU/s za obie godziny według standardowych stawek (ręcznych).
    Rozliczanie odbywa się na podstawie godziny dla największej liczby jednostek RU/s, które system został przeskalowany do 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), z powodu braku użycia


  • Opłaty będą naliczane za 3500 RU/s w godzinie 1, a 400 RU/s w godzinie 2 z aprowizowaną szybkością przepływności aprowizowanej autoskalowania. Szybkość autoskalowania na ru/s wynosi 1,5 * standardową (ręczną).
    Co się stanie, jeśli przekroczono aprowizowaną jednostkę RU/s Ru/s pozostają statyczne w aprowizowanych elementach. Wszystkie żądania, które zużywają więcej niż aprowizowane jednostki RU w ciągu sekundy, będą ograniczone szybkością, a odpowiedź zaleca czas oczekiwania przed ponowieniu próby. 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ą wartość spoza maksymalnej liczby jednostek RU/s autoskalowania w ciągu sekundy, będą ograniczone szybkością, a odpowiedź 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 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, warto wziąć pod uwagę następujące kwestie:

    Jeśli aprowizujesz standardową (ręczną) 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ą szybkością przepływności na godzinę.

    Jeśli aprowizujesz przepływność skalowania automatycznego z maksymalną wartością RU/s 4000 RU/s, zasób będzie skalowany z zakresu od 400 do 4000 RU/s. Ponieważ szybkość rozliczeń przepływności skalowania automatycznego na 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 wzrośnie, 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 liczby jednostek 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ź znormalizowaną metryę 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 liczba to 100%, tym więcej jest w pełni używanych aprowiowanych jednostek RU/s. Dowiedz się więcej o metryce.

    Następnie określ, jak znormalizowane wykorzystanie zmienia się w czasie. Znajdź największe znormalizowane użycie dla każdej godziny. Następnie oblicz średnie znormalizowane użycie przez wszystkie godziny. 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.

    Napiwek

    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 wykorzystania. W związku z tym zawsze zaleca się używanie autoskalowania z zapisami w wielu regionach, jeśli masz więcej niż jeden region, aby skorzystać z oszczędności z płacenia tylko za ru/s, do których aplikacja jest skalowana. Jeśli masz zapisy w wielu regionach i jeden region, użyj średniego wykorzystania, 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. Aby zilustrować ogólne podejście, przeanalizujemy trzy godziny historii, aby określić różnicę kosztów między użyciem ręcznego i automatycznego skalowania. 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 przez liczbę regionów.
    • Użyj publicznych stawek cenowych 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, a znormalizowane użycie jednostek RU wynosi 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, a 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 wykorzystanie opisane w poniższej tabeli. Średnie wykorzystanie w ciągu tych trzech godzin wynosi 39%. Ze względu na to, że znormalizowane użycie jednostek RU wynosi mniej niż 66%, zapisujemy przy użyciu autoskalowania.

    Należy pamiętać, że w godzinie 1, gdy istnieje 6% użycia, automatyczne skalowanie 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ż przepływność ręczna 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. Automatyczne skalowanie 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%. Przy aprowizowanej 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, a 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. Nasze średnie wykorzystanie w ciągu tych trzech godzin wynosi 88%. Ze względu na to, że znormalizowane użycie jednostek RU jest większe niż 66%, zapisujemy przy użyciu przepływności ręcznej.

    Ogólnie rzecz biorąc, jeśli średnie wykorzystanie przez wszystkie 730 godzin w ciągu jednego miesiąca jest większe niż 66%, zaoszczędzimy 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. Automatyczne skalowanie 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
    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

    Napiwek

    W przypadku standardowej (ręcznej) przepływności można użyć metryki znormalizowanych wykorzystania, aby oszacować rzeczywiste jednostki RU/s, których możesz użyć, jeśli przełączysz się do automatycznego skalowania. Pomnożyj znormalizowane wykorzystanie w danym momencie przez obecnie aprowizowaną standardową (ręczną) 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 aprowizujesz lub 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

    Automatyczne skalowanie rachunków za najwyższą wartość 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 pozycję Agregacja dla metryki Zużycie jednostek RU bez użycia na wartość Maksymalna.
    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 przez wszystkie godziny.

    Aby zobaczyć znormalizowane użycie jednostek RU według godziny, 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 autoskalowania 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 znajduje się przykład zmiennej lub nieprzewidywalnego obciążenia przy użyciu autoskalowania. Zwróć uwagę, że nie ma żadnego ruchu, system skaluje ru/s do minimum 10% maksymalnej liczby jednostek RU/s, co w tym przypadku wynosi 5000 RU/s i 50 000 RU/s, odpowiednio.

    Przykład obciążenia korzystającego z 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 zostało ustawione jako użytkownik. W przypadku korzystania z przepływności autoskalowania ta metryka odwołuje się do jednostek RU/s, do których system jest obecnie skalowany.

    Następne kroki