Skalowanie instancji Azure Managed Redis

usługa Azure Managed Redis oferuje różne jednostki SKU i warstwy, dzięki czemu można wybrać rozmiar pamięci podręcznej i wydajność, które odpowiadają Twoim potrzebom. Możesz skalować do większego rozmiaru pamięci lub przełączyć się do warstwy z większą wydajnością obliczeniową. Możesz również przejść na mniejszy lub bardziej odpowiedni poziom. W tym artykule pokazano, jak skalować pamięć podręczną przy użyciu portalu Azure i narzędzi, takich jak Azure PowerShell i Azure CLI.

Uwaga / Notatka

Ponieważ każda warstwa usługi Azure Managed Redis ma prawie te same funkcje, użyj skalowania głównie w celu zmiany właściwości pamięci i wydajności. Skalowanie geograficznie replikowanych pamięci podręcznych Azure Managed Redis jest dostępne w wersji zapoznawczej.

Typy skalowania

Usługa Azure Managed Redis obsługuje skalowanie w dwóch wymiarach:

  • Pamięć Zwiększenie ilości pamięci zwiększa rozmiar instancji Redis, dzięki czemu można przechowywać więcej danych. Po zmniejszeniu ilości pamięci upewnij się, że bieżące użycie pamięci jest mniejsze niż nowy rozmiar pamięci, którego chcesz użyć.

  • Procesory wirtualne usługi Azure Managed Redis oferują trzy warstwy (optymalizacja pod kątem pamięci, zrównoważone i optymalizacja pod kątem obliczeń), które mają coraz większą liczbę procesorów wirtualnych dla każdego poziomu pamięci. Skalowanie do warstwy z większą liczbą vCPU zwiększa wydajność instancji bez konieczności zwiększania pamięci. W przeciwieństwie do warstw Podstawowa, Standardowa i Premium usługi Azure Cache for Redis, w których używany jest tylko jeden vCPU, usługa Azure Managed Redis wykorzystuje stos Redis Enterprise. Stos Redis Enterprise może wykorzystywać wiele vCPU, co oznacza, że liczba vCPU używanych przez instancję Redis ma bezpośredni wpływ na przepustowość i opóźnienia.

Poziomy wydajności

Dostępne są cztery warstwy usługi Azure Managed Redis, z których każda ma różne cechy wydajności i poziomy cen.

Ważne

Wszystkie warstwy działające w pamięci, które korzystają z ponad 350 GB pamięci masowej, są dostępne w wersji zapoznawczej, w tym warstwy zoptymalizowane pod kątem pamięci M500 i wyższe, zrównoważone B500 i wyższe oraz zoptymalizowane pod kątem mocy obliczeniowej X500 i wyższe. Wszystkie te warstwy i wyższe są dostępne w wersji zapoznawczej.

Warstwy zoptymalizowane pod kątem pamięci flash A2000 i A4500 są dostępne w wersji zapoznawczej.

Warstwy i jednostki SKU w skrócie

Oto trzy warstwy, które przechowują dane w pamięci:

  • Zoptymalizowane pod kątem pamięci Idealne rozwiązanie dla zastosowań intensywnie korzystających z pamięci, które wymagają dużego stosunku pamięci do liczby vCPU (8:1), ale nie potrzebują najwyższej wydajności przepływności. Zapewnia ona niższy punkt cenowy dla scenariuszy, w których wymagana jest mniejsza moc obliczeniowa lub przepływność, co czyni go doskonałym wyborem dla środowisk programistycznych i testowych.

  • Zrównoważony (pamięć i obliczenia) Oferuje zrównoważony stosunek pamięci do procesorów wirtualnych (4:1), co czyni go idealnym rozwiązaniem dla obciążeń standardowych. Ta warstwa zapewnia zdrową równowagę między pamięcią i zasobami obliczeniowymi.

  • Obliczeniowo zoptymalizowane Zaprojektowane z myślą o obciążeniach intensywnie korzystających z wydajności, wymagających maksymalnej przepustowości, z niskim stosunkiem pamięci do vCPU (2:1). Jest to idealne rozwiązanie dla aplikacji, które wymagają najwyższej wydajności.

    Obraz przedstawiający tabelę przedstawiającą porównanie jednostek SKU i warstw.

Oto warstwa, która przechowuje dane zarówno w pamięci, jak i na dysku:

  • Zoptymalizowane dla pamięci flash umożliwia klastrom Redis automatyczne przenoszenie rzadziej używanych danych z pamięci RAM do pamięci NVMe. Zmniejszenie wydajności umożliwia ekonomiczne skalowanie pamięci podręcznych z dużymi zestawami danych.

    Tabela przedstawiająca warstwy zoptymalizowane pod kątem pamięci flash w tabeli przedstawiającej wykorzystanie magazynu.

Wydajność (przepustowość i opóźnienie)

Aby uzyskać testy porównawcze wydajności i więcej informacji na temat mierzenia wydajności poszczególnych jednostek SKU i warstwy, zobacz Testowanie wydajności za pomocą usługi Azure Managed Redis.

Kiedy skalować

Użyj funkcji monitorowania usługi Azure Managed Redis, aby monitorować stan i wydajność pamięci podręcznej. Użyj tych informacji, aby określić, kiedy skalować pamięć podręczną.

Monitoruj następujące metryki, aby określić, czy chcesz przeprowadzić skalowanie.

  • Procesor
    • Wysokie użycie procesora CPU oznacza, że serwer Redis nie może nadążyć za żądaniami ze wszystkich klientów. Skalowanie do większej liczby procesorów wirtualnych pomaga dystrybuować żądania pomiędzy wieloma procesami Redis. Skalowanie pomaga również rozkładać obciążenie związane z szyfrowaniem i deszyfrowaniem TLS oraz nawiązywaniem i zamykaniem połączeń, przyspieszając instancje pamięci podręcznej korzystające z protokołu TLS.
  • Użycie pamięci
    • Wysokie użycie pamięci wskazuje, że rozmiar danych jest zbyt duży dla bieżącego rozmiaru pamięci podręcznej. Rozważ skalowanie do rozmiaru pamięci podręcznej z większą ilością pamięci. Podczas zmniejszania pamięci upewnij się, że użycie pamięci bieżącej pamięci podręcznej jest mniejsze niż nowy rozmiar pamięci, którego chcesz użyć. Nie można umieścić dużego zestawu danych w mniejszym rozmiarze pamięci podręcznej.
  • Połączenia klienta
    • Każdy rozmiar pamięci podręcznej ma limit liczby połączeń klienta, które może obsługiwać. Jeśli połączenia klienta są zbliżone do limitu dla rozmiaru pamięci podręcznej, rozważ skalowanie do więcej pamięci lub wyższego poziomu wydajności.
    • Aby uzyskać więcej informacji na temat limitów połączeń według rozmiaru pamięci podręcznej, zobacz Testowanie wydajności za pomocą usługi Azure Managed Redis.
  • Przepustowość sieci.
    • Jeśli serwer Redis wykorzystuje więcej niż dostępną przepustowość, żądania klientów przekraczają limit czasu, ponieważ serwer nie może przesyłać danych do klienta wystarczająco szybko. Aby zweryfikować, ile przepustowości jest używanej po stronie serwera, sprawdź metryki „Odczyt z pamięci podręcznej” i „Zapis do pamięci podręcznej”. Jeśli serwer Redis przekracza dostępną przepustowość sieci, rozważ skalowanie do wyższej warstwy wydajności lub większego rozmiaru pamięci podręcznej.
    • Wybór zasad klastra wpływa na dostępną przepustowość sieci. Ogólnie rzecz biorąc, polityka klastra OSS ma wyższą przepustowość sieci niż polityka klastra Enterprise. Aby uzyskać więcej informacji, zobacz Zasady klastra.
    • Aby uzyskać więcej informacji na temat dostępnej przepustowości sieci według rozmiaru pamięci podręcznej, zobacz Testowanie wydajności za pomocą usługi Azure Managed Redis.

Aby uzyskać więcej informacji na temat określania warstwy cenowej pamięci podręcznej do użycia, zobacz Wybieranie odpowiedniej warstwy.

Aby uzyskać więcej informacji na temat optymalizowania procesu skalowania, zobacz najlepsze rozwiązania dotyczące skalowania.

Ograniczenia skalowania usługi Azure Managed Redis

  • Nie można skalować z warstw Zoptymalizowanych pod kątem pamięci, Zrównoważonych lub Zoptymalizowanych pod kątem obliczeń do warstwy Zoptymalizowanej pod kątem flash ani na odwrót.
  • Jeśli zmniejszasz ilość pamięci dla wystąpienia usługi Redis, bieżące użycie pamięci tego wystąpienia usługi Redis musi być mniejsze niż planowany nowy rozmiar pamięci. Aby uzyskać więcej informacji, zobacz Co się stanie z moimi danymi w przypadku skalowania do mniejszego rozmiaru pamięci?
  • Po zmniejszeniu pamięci lub liczby jednostek vCPU dla wystąpienia usługi Redis można przejść tylko do tych jednostek SKU, które mają konfigurację vCPU i fragmentowania zgodną z konfiguracją bieżącego wystąpienia.
  • W niektórych przypadkach podczas skalowania podstawowy adres IP wystąpienia usługi Redis może ulec zmianie. Rekord DNS dla instancji zmienia się i jest niezauważalny dla większości aplikacji. Jeśli jednak używasz adresu IP do skonfigurowania połączenia z wystąpieniem Redis albo do konfigurowania sieciowych grup zabezpieczeń (NSG) lub zapór, które zezwalają na ruch do wystąpienia Redis, aplikacja może mieć problemy z nawiązaniem połączenia jakiś czas po zaktualizowaniu rekordu DNS.
  • Skalowanie wystąpienia w grupie replikacji geograficznej ma pewne ograniczenia. Zobacz Czy istnieją ograniczenia skalowania w replikacji geograficznej, aby uzyskać więcej informacji.
  • Zmniejszanie skali umożliwia skalowanie tylko do określonych poziomów. Aby uzyskać więcej informacji, zobacz Dlaczego mogę skalować tylko w dół do podzbioru mniejszych jednostek SKU?.

Jak skalować

W tej sekcji opisano, jak skalować pamięć podręczną Azure Managed Redis.

Skalowanie przy użyciu portalu Azure

Uwaga / Notatka

Skalowanie replikowanych geograficznie pamięci podręcznych Azure Managed Redis jest nadal dostępne w wersji zapoznawczej.

  1. Aby skalować pamięć podręczną, przejdź do pamięci podręcznej w witrynie Azure Portal i wybierz pozycję Skaluj z menu Zasób.

  2. Aby skalować vCPU, wybierz inny typ pamięci podręcznej, a następnie wybierz Zapisz.

    Ważne

    W przypadku wybrania jednostki SKU, do której nie można przeprowadzić skalowania, opcja Zapisz jest wyłączona. Zapoznaj się z sekcją Ograniczenia skalowania usługi Azure Managed Redis, aby uzyskać szczegółowe informacje na temat dozwolonych opcji skalowania.

  3. Po zakończeniu skalowania stan zmienia się z Skalowanie na Uruchomione podczas przeglądania sekcji Przegląd w menu Zasób.

Skalowanie przy użyciu programu PowerShell

Aby skalować wystąpienia usługi Redis zarządzanej Azure przy użyciu programu PowerShell, użyj polecenia cmdlet Update-AzRedisEnterpriseCache. Zmień właściwość Sku, aby wybrać potrzebną warstwę i jednostkę SKU. W poniższym przykładzie pokazano, jak skalować pamięć podręczną o nazwie myCache do instancji zoptymalizowanej pod kątem obliczeń X20 (24 GB).

   Update-AzRedisEnterpriseCache -ResourceGroupName <your-group> -Name <your-cache-name> -Sku <sku-name>

Skalowanie przy użyciu Azure CLI

Aby skalować wystąpienia usługi Azure Managed Redis za pomocą narzędzia Azure CLI, uruchom polecenie az redisenterprise update. Zmień właściwość sku, aby wybrać potrzebną warstwę i jednostkę SKU. W poniższym przykładzie pokazano, jak skalować pamięć podręczną o nazwie myCache do instancji zoptymalizowanej pod kątem obliczeń X20 (24 GB).

az redisenterprise update --cluster-name <your-cache-name> --resource-group <your-resource-group> --sku <name-of-sku>

Najczęściej zadawane pytania dotyczące skalowania.

Poniższa lista zawiera odpowiedzi na często zadawane pytania dotyczące skalowania usługi Azure Managed Redis.

Czy mogę skalować w ramach jednej warstwy lub pomiędzy różnymi warstwami?

Zawsze można skalować do wyższej warstwy wydajności w tym samym rozmiarze pamięci lub większym rozmiarze pamięci w ramach tej samej warstwy wydajności. Aby skalować do niższej warstwy wydajności lub mniejszego rozmiaru pamięci, uruchom listskusforscaling interfejs API REST, aby uzyskać listę jednostek SKU, do których można przeprowadzić skalowanie.

az redisenterprise list-skus-for-scaling --cluster-name <your-redis-instance> --resource-group <your-resource-group>

Co się stanie z moimi danymi w przypadku skalowania do mniejszego rozmiaru pamięci?

Można skalować do mniejszego rozmiaru pamięci tylko wtedy, gdy bieżące użycie pamięci jest mniejsze niż zamierzone mniejsze rozmiary pamięci. Jeśli bieżące użycie pamięci jest wyższe niż zamierzony mniejszy rozmiar, żądanie skalowania kończy się niepowodzeniem. Bieżące użycie pamięci można zmniejszyć, usuwając niechciane pary klucz-wartość lub uruchamiając operację opróżniania.

az redisenterprise database flush --cluster-name <your-redis-instance> --resource-group <your-resource-group>

Czy po skalowaniu muszę zmienić nazwę pamięci podręcznej lub klucze dostępu?

Nie, nazwa pamięci podręcznej i klucze dostępu nie zmieniają się podczas operacji skalowania.

Jak odbywa się skalowanie?

  • Podczas skalowania instancji Redis proces wyłącza jeden z węzłów w klastrze Redis i ponownie udostępnia go w nowym rozmiarze. Następnie dane są przesyłane. Drugi węzeł następnie przeprowadza podobne przełączenie awaryjne przed ponownym udostępnieniem. Proces zamykania i ponownego udostępniania jest podobny do tego, który zachodzi podczas instalowania poprawek lub awarii jednego z węzłów pamięci podręcznej.
  • Po przeskalowaniu do wystąpienia z większą liczbą procesorów wirtualnych proces tworzy nowe shardy i dodaje je do klastra serwera Redis. Dane są następnie ponownie rozdzielone na wszystkie shardy.

Aby uzyskać więcej informacji na temat sposobu obsługi fragmentowania przez usługę Azure Managed Redis, zobacz Konfiguracja fragmentowania.

Czy utracię dane z pamięci podręcznej podczas skalowania?

  • Jeśli włączysz tryb wysokiej dostępności, wszystkie dane zostaną zachowane podczas operacji skalowania.
  • W przypadku skalowania do mniejszego poziomu pamięci należy upewnić się, że bieżące użycie pamięci jest mniejsze niż zamierzony nowy rozmiar pamięci. Jeśli bieżące użycie pamięci jest większe niż zamierzony rozmiar pamięci jednostki SKU, możesz opróżnić dane przy użyciu operacji Opróżnij lub ręcznie wybrać wartości klucza do usunięcia.
  • Jeśli wyłączysz tryb wysokiej dostępności, wszystkie dane zostaną utracone, a pamięć podręczna będzie niedostępna podczas operacji skalowania.

Czy moja pamięć podręczna jest dostępna podczas skalowania?

  • Wystąpienia usługi Azure Managed Redis z włączonym trybem wysokiej dostępności pozostają dostępne podczas skalowania. Jednak podczas skalowania tych pamięci podręcznych mogą wystąpić zakłócenia połączenia. Te blipy połączeń są zwykle krótkie, a klienci redis mogą zwykle ponownie nawiązać połączenie natychmiast.
  • Jeśli wyłączysz tryb wysokiej dostępności, wystąpienie zarządzanej usługi Redis Azure przejdzie w tryb offline podczas operacji skalowania.

Czy istnieją ograniczenia skalowania w przypadku replikacji geograficznej?

Skalowanie pamięci podręcznych replikowanych geograficznie jest dostępne w wersji zapoznawczej. Podczas konfigurowania aktywnej replikacji geograficznej nie można mieszać i dopasowywać rozmiarów pamięci podręcznej w grupie replikacji geograficznej. W związku z tym skalowanie pamięci podręcznych w grupie replikacji geograficznej wymaga wykonania kilku dodatkowych kroków. Aby uzyskać instrukcje, zobacz Skalowanie wystąpień w grupie replikacji geograficznej.

Skalowanie w dół do mniejszego rozmiaru pamięci lub mniejszej liczby fragmentów nie jest obsługiwane w przypadku pamięci podręcznych replikowanych geograficznie. Więcej informacji znajdziesz w Ile fragmentów wykorzystuje każda jednostka SKU usługi Redis zarządzanej przez platformę Azure, aby znaleźć fragmenty w klastrze.

Ile czasu trwa skalowanie?

Czas skalowania zależy od kilku czynników. Poniżej przedstawiono niektóre czynniki, które mogą mieć wpływ na czas skalowania:

  • Ilość danych: replikowanie większych ilości danych trwa dłużej.
  • Duża liczba żądań zapisu: większa liczba zapisów oznacza, że więcej danych jest replikowanych między węzłami lub fragmentami.
  • Wysokie użycie procesora CPU: wyższe użycie procesora CPU oznacza, że serwer Redis jest zajęty, a ograniczone cykle procesora SĄ dostępne do ukończenia redystrybucji danych.

Zazwyczaj skalowanie instancji bez danych trwa około 10 minut.

Jak sprawdzić, kiedy skalowanie zostało ukończone?

W witrynie Azure Portal możesz zobaczyć, jak trwa operacja skalowania. Po zakończeniu skalowania stan pamięci podręcznej zmieni się na Uruchomiono podczas wyświetlania pozycji Przegląd w menu Zasób.

Czy usługa Azure Managed Redis korzysta z klastrowania?

W przeciwieństwie do usługi Azure Cache for Redis usługa Azure Managed Redis używa klastrowania we wszystkich warstwach i jednostkach SKU. Klastrowanie umożliwia znaczne optymalizacje wydajności. Każda jednostka SKU usługi Azure Managed Redis jest skonfigurowana pod kątem zoptymalizowanej liczby fragmentów dla liczby dostępnych procesorów wirtualnych. Nie można skonfigurować liczby fragmentów.

Ile fragmentów używa każda jednostka SKU usługi Redis zarządzanej platformy Azure?

Ponieważ usługa Azure Managed Redis działa w oprogramowaniu Redis Enterprise, fragmenty mogą być używane w gęstszej konfiguracji niż w społeczności Redis. Aby dowiedzieć się więcej o określonej liczbie fragmentów używanych w każdej jednostce SKU, zapoznaj się z artykułem Konfiguracja fragmentowania.

Jak klucze są dystrybuowane w klastrze?

Zgodnie z dokumentacją usługi Redis w modelu dystrybucji kluczy: Przestrzeń klucza jest podzielona na 16 384 sloty. Każdy klucz jest haszowany i przypisany do jednego z tych slotów, które są rozdzielane między węzły klastra. Można skonfigurować, która część klucza jest haszowana, aby zapewnić, że wiele kluczy znajduje się w tym samym fragmencie, używając tagów haszujących.

  • Klucze z hasztagiem - jeśli jakaś część klucza jest ujęta w { i }, to tylko ta część klucza ma wygenerowany skrót na potrzeby określenia gniazda skrótu klucza. Na przykład następujące trzy klucze znajdują się w tym samym fragmencie: {key}1, {key}2i {key}3 ponieważ tylko key część nazwy jest skrótem. Aby uzyskać pełną listę specyfikacji tagów hasz kluczy, zobacz Tagi hasz kluczy.
  • Klucze bez tagu skrótu — cała nazwa klucza jest używana do tworzenia skrótów, co powoduje statystycznie równomierny rozkład w obrębie fragmentów pamięci podręcznej.

Aby uzyskać najlepszą wydajność i przepływność, zalecamy równomierne dystrybuowanie kluczy. Jeśli używasz kluczy z tagiem skrótu, aplikacja odpowiada za równomierne dystrybuowanie kluczy.

Aby uzyskać więcej informacji, zobacz Model dystrybucji kluczy, Fragmentowanie danych klastra Redis i Tagi skrótu kluczy.

Jaki jest największy rozmiar pamięci podręcznej, który mogę utworzyć?

Największy rozmiar pamięci podręcznej, który można mieć, to 4,5 TB i jest to instancja Flash Optimized A4500. Azure Cache for Redis — cennik

Dlaczego mogę skalować w dół tylko do niektórych mniejszych jednostek SKU?

Aby zachować zgodność z liczbą fragmentów i procesorów wirtualnych, można skalować w dół tylko do niektórych jednostek SKU. Jednostki SKU wystąpienia usługi Redis można skalować w dół, sprawdzając dostępne opcje w sekcji Skalowanie w witrynie Azure Portal. Możesz również uruchomić następujące polecenie CLI.

Jednostki SKU wystąpienia usługi Redis można skalować w dół, sprawdzając dostępne opcje w sekcji Skalowanie w witrynie Azure Portal.

az redisenterprise list-skus-for-scaling --cluster-name <your-redis-instance> --resource-group <your-resource-group>

Czy zasady klastrowania można zmienić po wybraniu systemu operacyjnego lub klastra przedsiębiorstwa?

Po ustawieniu zasad klastrowania na wartość OSSCluster lub EnterpriseCluster podczas tworzenia pamięci podręcznej nie można jej zmienić. Aby przełączyć się na inne zasady klastrowania, należy usunąć pamięć podręczną Redis Cache i utworzyć ją ponownie przy użyciu żądanej konfiguracji. Tylko pamięci podręczne z nieklastrową polityką można zaktualizować do konfiguracji klastrowanej po wdrożeniu.