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: 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: Tmax ), z powodu braku użyciaOpł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.
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.
Przykład 1: Zmienne obciążenie (zalecane autoskalowanie)
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.
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 czasu | 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) |
Przykład 2: Stałe obciążenie (zalecana przepływność ręczna)
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.
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 czasu | 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:
- Ustaw pozycję Agregacja w metryce Znormalizowane użycie jednostek RU na wartość Maksymalna.
- Wybierz stopień szczegółowości czasu do 1 godziny.
- Przejdź do pozycji Opcje wykresu.
- Wybierz opcję wykresu słupkowego.
- W obszarze Udostępnij wybierz opcję Pobierz do programu Excel . Na podstawie wygenerowanego arkusza kalkulacyjnego oblicz średnie wykorzystanie 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ść).
W poniższym przykładzie pokazano zmienną lub nieprzewidywalne obciążenie przy użyciu skalowania automatycznego. Zwróć uwagę, że nie ma żadnego ruchu, system skaluje ru/s do minimum 10% maksymalnej wartości RU/s, co w tym przypadku wynosi 5000 RU/s i 50 000 RU/s, odpowiednio.
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 skalowania automatycznego, mogą użyć skryptu interfejsu wiersza polecenia platformy Azure, który przeprowadzi migrację każdego zasobu przepływności w subskrypcji platformy Azure do automatycznego skalowania. Aby uzyskać więcej informacji, zobacz Konwertowanie na skalowanie automatyczne.
Następne kroki
- Użyj kalkulatora jednostek RU, aby oszacować przepływność dla nowych obciążeń.
- Monitorowanie istniejących obciążeń przy użyciu usługi Azure Monitor .
- Dowiedz się, jak aprowizować przepływność skalowania automatycznego w bazie danych lub kontenerze usługi Azure Cosmos DB.
- Przejrzyj często zadawane pytania dotyczące automatycznego skalowania.
- Próbujesz zaplanować pojemność migracji do usługi Azure Cosmos DB? Informacje o istniejącym klastrze bazy danych można użyć do planowania pojemności.
- Jeśli wiesz, ile rdzeni wirtualnych i serwerów znajduje się w istniejącym klastrze bazy danych, przeczytaj o szacowaniu jednostek żądań przy użyciu rdzeni wirtualnych lub procesorów wirtualnych
- Jeśli znasz typowe stawki żądań dla bieżącego obciążenia bazy danych, przeczytaj o szacowaniu jednostek żądań przy użyciu planisty pojemności usługi Azure Cosmos DB