Freigeben über


Skalieren einer Azure Cache for Redis-Instanz

Für Azure Cache for Redis stehen verschiedene Dienstebenenangebote bereit, die Flexibilität bei der Auswahl von Cachegröße und Cachefunktionen bieten. Durch Skalierung können Sie Größe, Ebene und Anzahl der Knoten ändern, nachdem Sie eine Cache-Instanz erstellt haben, um die Anforderungen Ihrer Anwendung zu erfüllen. Dieser Artikel zeigt Ihnen, wie Sie Ihren Cache mithilfe des Azure-Portals und mit Tools wie Azure PowerShell und der Azure-Befehlszeilenschnittstelle skalieren.

Skalierungstypen

Es gibt grundsätzlich zwei Möglichkeiten, eine Azure Cache for Redis-Instanz zu skalieren:

  • Das Hochskalieren erhöht die Größe des virtuellen Computers (der VM), auf dem der Redis-Server ausgeführt wird, und fügt mehr Arbeitsspeicher, virtuelle CPUs (vCPUs) und Netzwerkbandbreite hinzu. Das Hochskalieren wird auch als vertikale Skalierung bezeichnet. Das Gegenteil von Hochskalieren ist das Herunterskalieren.

  • Das Aufskalieren teilt die Cache-Instanz in mehr Knoten gleicher Größe auf, wodurch der Arbeitsspeicher, die vCPUs und die Netzwerkbandbreite durch Parallelisierung erhöht werden. Das Aufskalieren wird auch als horizontale Skalierung oder Sharding bezeichnet. Das Gegenteil von Aufskalieren ist das Abskalieren. In der Redis-Community wird das Aufskalieren häufig als Clustering bezeichnet.

Umfang der Verfügbarkeit

Tarif Basic und Standard. Prämie Enterprise und Enterprise Flash
Hochskalieren Ja Ja Ja
Herunterskalieren Ja Ja Nein
Aufskalieren Nein Ja Ja
Abskalieren Nein Ja Nein

Zeitpunkt für die Skalierung

Sie können mithilfe der Überwachungsfunktionen von Azure Cache for Redis die Integrität und Leistung Ihres Caches überwachen. Verwenden Sie diese Informationen, um zu bestimmen, wann der Cache skaliert werden soll.

Sie können die folgenden Metriken überwachen, um zu bestimmen, ob eine Skalierung notwendig ist.

  • Redis-Serverlast
    • Eine hohe Redis-Serverauslastung bedeutet, dass der Server nicht mit den Anforderungen aller Clients Schritt halten kann. Da ein Redis-Server ein Einzelthreadprozess ist, ist es in der Regel hilfreicher aufzuskalieren statt hochzuskalieren. Das Aufskalieren durch Aktivieren von Clustering hilft beim Verteilen von Overheadfunktionen auf mehrere Redis-Prozesse. Das Aufskalieren hilft auch bei der Verteilung der TLS-Verschlüsselung/Entschlüsselung und der Verbindung/Trennung, wodurch Cache-Instanzen mithilfe von TLS beschleunigt werden.
    • Das Hochskalieren kann weiterhin hilfreich sein, um die Serverlast zu reduzieren, da Hintergrundaufgaben die Vorteile von mehr vCPUs nutzen und den Thread für den Redis-Hauptserverprozess freigeben können.
    • Die Enterprise- und Enterprise Flash-Ebenen verwenden Redis Enterprise anstelle von Open Source Redis. Einer der Vorteile dieser Ebenen besteht darin, dass der Redis-Serverprozess mehrere vCPUs nutzen kann. Mit mehreren vCPUs kann das Hochskalieren und das Aufskalieren in diesen Ebenen hilfreich sein, um die Serverlast zu reduzieren.
  • Speicherauslastung
    • Eine hohe Speicherauslastung zeigt an, dass Ihre Datengröße für die aktuelle Cachegröße zu groß ist. Erwägen Sie die Skalierung auf eine Cachegröße mit größerem Arbeitsspeicher. Hier ist entweder hochskalieren oder aufskalieren wirksam.
  • Clientverbindungen
    • Für jede Cachegröße ist die Anzahl der Clientverbindungen, die unterstützt werden können, begrenzt. Wenn Ihre Clientverbindungen dem Grenzwert für die Cachegröße nahe kommen, sollten Sie ein Hochskalieren auf eine höhere Ebene erwägen. Das Aufskalieren erhöht die Anzahl der unterstützten Clientverbindungen nicht erhöht.
    • Weitere Informationen zu Verbindungsgrenzwerten in Abhängigkeit von der Cachegröße finden Sie in den Preisen für Azure Cache for Redis.
  • Netzwerkbandbreite
    • Wenn der Redis-Server die verfügbare Bandbreite überschreitet, kann bei Clientanforderungen ein Timeout auftreten, weil der Server Daten nicht schnell genug an den Client pushen kann. Um festzustellen, wie viel Bandbreite auf der Serverseite verwendet wird, aktivieren Sie die Metriken „Cache Read“ (Cache-Lesevorgänge) und „Cache Write“ (Cache-Schreibvorgänge). Wenn Ihr Redis-Server die verfügbare Netzwerkbandbreite überschreitet, sollten Sie ein Hochskalieren oder Aufskalieren auf eine größere Cachegröße mit höherer Netzwerkbandbreite in Betracht ziehen.
    • Bei Caches der Enterprise-Ebene, welche die Enterprise-Clusterrichtlinie verwenden, erhöht das Aufskalieren die Netzwerkbandbreite nicht.
    • Weitere Informationen zur verfügbaren Netzwerkbandbreite in Abhängigkeit von der Cachegröße finden Sie unter Häufig gestellte Fragen zur Planung von Azure Cache for Redis.
  • Interne Defender-Scans
    • Während auf den VMs interne Defender-Scans ausgeführt werden, sehen Sie möglicherweise in C0- und C1-Standardcaches kurze Spitzen bei der Serverlast, die nicht durch eine Zunahme der Cacheanforderungen verursacht werden. Sie sehen eine höhere Wartezeit für Anforderungen, während interne Defender-Scans ein paar Mal pro Tag auf diesen Ebenen ausgeführt werden. Caches auf den Ebenen C0 und C1 weisen nur einen einzigen Kern für Multitasking auf und teilen die Arbeit der Bereitstellung von internen Defender-Scans und Redis-Anforderungen auf. Sie können den Effekt reduzieren, indem Sie auf ein Angebot einer höherer Ebene mit mehreren CPU-Kernen skalieren, z. B. C2.
    • Die erhöhte Cachegröße auf den höheren Ebenen trägt dazu bei, etwaige Wartezeitprobleme zu beheben. Außerdem haben Sie auf C2-Ebene Unterstützung für bis zu 2 000 Clientverbindungen.

Weitere Informationen, wie Sie ermitteln, welcher Cachetarif geeignet ist, finden Sie unter Auswählen der richtigen Ebene und Häufig gestellte Fragen zur Planung von Azure Cache for Redis.

Hinweis

Weitere Informationen zum Optimieren des Skalierungsprozesses finden Sie im Leitfaden zu bewährten Methoden für die Skalierung

Voraussetzungen/Einschränkungen der Skalierung von Azure Cache for Redis

Sie können mit den folgenden Einschränkungen zu einem anderen Tarif Hochskalieren/Herunterskalieren:

  • Sie können keine Skalierung von einem höheren Tarif auf einen niedrigeren Tarif vornehmen.
    • Sie können von einem Enterprise- oder Enterprise Flash-Cache nicht auf eine andere Ebene herunterskalieren.
    • Eine Skalierung von einem Premium-Cache auf einen niedrigeren Standard- oder Basic-Cache ist nicht möglich.
    • Ein Standard-Cache kann nicht auf einen niedrigeren Basic-Cache skaliert werden.
  • Ein Basic-Cache kann auf einen Standard-Cache skaliert werden, die Größe kann jedoch nicht gleichzeitig geändert werden. Wenn Sie eine andere Größe benötigen, können Sie anschließend einen Skalierungsvorgang auf die gewünschte Größe durchführen.
  • Ein Basic-Cache kann nicht direkt auf einen Premium-Cache skaliert werden. Skalieren Sie zunächst in einem ersten Skalierungsvorgang von Basic auf Standard und dann im nächsten Skalierungsvorgang von Standard auf Premium.
  • Von einer größeren Größe kann nicht auf C0 (250 MB) abskaliert werden. Allerdings ist ein Abskalieren auf eine beliebige andere Größe innerhalb desselben Tarifs möglich. Beispielsweise können Sie von „C5 Standard“ auf „C1 Standard“ abskalieren.
  • Sie können von einem Premium-, Standard- oder Basic-Cache nicht auf einen Enterprise- oder Enterprise Flash-Cache hochskalieren.
  • Sie können nicht zwischen Enterprise und Enterprise Flash skalieren.

Sie können mit den folgenden Einschränkungen Aufskalieren/Abskalieren:

  • Das Aufskalieren wird nur für die Ebenen Premium, Enterprise und Enterprise Flash unterstützt.
  • Das Abskalieren wird nur in der Premium-Ebene unterstützt.
  • In der Premium-Ebene muss vor dem Hochskalieren oder Aufskalieren zuerst das Clustering aktiviert werden.
  • Auf der Premium-Ebene ist der Support für das Aufskalieren auf bis zu 10 Shards allgemein verfügbar. Die Unterstützung für bis zu 30 Shards befindet sich in der Vorschau. (Bei Caches mit zwei Replikaten beträgt der Shardgrenzwert 20. Bei drei Replikaten beträgt die Shardgrenze 15.)
  • Nur die Ebenen Enterprise und Enterprise Flash können gleichzeitig Hochskalieren und Aufskalieren.

Skalieren – Basic-, Standard- und Premium-Ebenen

Hochskalieren und Herunterskalieren mit dem Azure-Portal

  1. Zum Skalieren Ihres Caches browsen Sie zum Cache im Azure-Portal und wählen im Menü „Ressource“ den Eintrag Skalieren aus.

    Screenshot zeigt „Skalieren“ im Ressourcenmenü.

  2. Wählen Sie im Arbeitsbereich einen Tarif aus und dann Auswählen.

    Screenshot zeigt die Azure Cache for Redis-Ebenen.

  3. Während der Cache auf die neue Ebene skaliert, wird eine Skalierung des Redis-Cache-Benachrichtigung angezeigt.

    Screenshot zeigt die Benachrichtigung für das Skalieren.

  4. Wenn die Skalierung abgeschlossen ist, ändert sich der Status von Wird skaliert zu Wird ausgeführt.

Hinweis

Wenn Sie einen Cache mit dem Portal hochskalieren oder herunterskalieren, werden die Einstellungen sowohl für maxmemory-reserved als auch für maxfragmentationmemory-reserved immer automatisch proportional zur Cachegröße skaliert. Wenn beispielsweise maxmemory-reserved für einen 6-GB-Cache auf 3 GB festgelegt ist und Sie eine Skalierung auf einen 12-GB-Cache vornehmen, werden die Einstellungen während der Skalierung automatisch auf 6 GB aktualisiert. Wenn Sie herunterskalieren, ist es umgekehrt.

Hochskalieren und Herunterskalieren mittels PowerShell

Sie können die Azure Cache for Redis-Instanzen mithilfe von PowerShell skalieren, indem Sie das Cmdlet Set-AzRedisCache verwenden, wenn die Eigenschaften Size oder Sku geändert werden. Das folgende Beispiel veranschaulicht, wie ein Cache mit Namen myCache zu einem 6-GB-Cache in der gleichen Ebene skaliert wird.

   Set-AzRedisCache -ResourceGroupName myGroup -Name myCache -Size 6GB

Weitere Informationen zum Skalieren mithilfe von PowerShell finden Sie unter Skalieren eines Azure Cache for Redis mit PowerShell.

Hochskalieren und Herunterskalieren mithilfe der Azure CLI

Rufen Sie den Befehl az redis update auf, um Ihre Azure Cache for Redis-Instanzen mithilfe der Azure CLI zu skalieren. Verwenden Sie die sku.capacity-Eigenschaft, um innerhalb einer Ebene zu skalieren, z. B. von einem Standard-C0- zu einem Standard C1-Cache:

az redis update --cluster-name myCache --resource-group myGroup --set "sku.capacity"="2"

Verwenden Sie die Eigenschaften „sku.name“ und „sku.family“, um auf eine andere Ebene hochzuskalieren, z. B. von einem Standard C1-Cache zu einem Premium P1-Cache:

az redis update --cluster-name myCache --resource-group myGroup --set "sku.name"="Premium" "sku.capacity"="1" "sku.family"="P"

Weitere Informationen zum Skalieren über die Azure-Befehlszeilenschnittstelle finden Sie unter Ändern der Einstellungen eines vorhandenen Azure Cache for Redis.

Hinweis

Wenn Sie einen Cache programmgesteuert nach oben oder unten skalieren (z. B. mithilfe von PowerShell oder Azure CLI), werden alle maxmemory-reserved oder maxfragmentationmemory-reserved werden als Teil der Updateanforderung ignoriert. Nur Ihre Skalierungsänderung wird berücksichtigt. Sie können diese Speichereinstellungen aktualisieren, nachdem der Skalierungsvorgang abgeschlossen ist.