Automatisches Skalieren der Einheiten einer Azure SignalR Service-Instanz

Wichtig

Die automatische Skalierung ist nur auf der Dienstebene Premium von Azure SignalR Service verfügbar.

Auf der Dienstebene Premium von Azure SignalR Service wird ein Feature zur Autoskalierung unterstützt, das eine Implementierung der Azure Monitor-Autoskalierung ist. Mithilfe der Autoskalierung können Sie die Einheitenanzahl für Ihre SignalR Service-Instanz automatisch skalieren, um auf die tatsächliche Last des Diensts zu reagieren. Die Autoskalierung kann Ihnen dabei helfen, Leistung und Kosten für Ihre Anwendung zu optimieren.

Azure SignalR fügt auch eigene Dienstmetriken hinzu. Die meisten Benutzeroberflächen werden jedoch gemeinsam mit anderen Azure-Dienste genutzt, die die automatische Skalierung unterstützen und ist mit diesen identisch. Wenn Sie noch nicht mit dem Thema Azure Monitor-Metriken vertraut sind, lesen Sie Erläuterungen zur Azure Monitor-Metrikaggregation und -anzeige, bevor Sie sich in SignalR Service-Metriken einarbeiten.

Grundlegendes zur Autoskalierung in SignalR Service

Mithilfe der Autoskalierung können Sie Bedingungen festlegen, mit denen die Einheiten, die SignalR Service zugewiesen sind, während der Dienstausführung dynamisch geändert werden. Die Bedingungen für die Autoskalierung basieren auf Metriken, z. B. der Serverlast. Die Autoskalierung kann auch so konfiguriert werden, dass sie nach einem Zeitplan ausgeführt wird, z. B. jeden Tag zwischen bestimmten Uhrzeiten.

Mithilfe der Autoskalierung können Sie z. B. die folgenden Skalierungsszenarien implementieren:

  • Erhöhen der Einheiten, wenn die Auslastung des Verbindungskontingents über 70 % liegt
  • Verringern der Einheiten, wenn die Serverlast unter 20 % liegt
  • Erstellen Sie einen Zeitplan, um während Spitzenzeiten zusätzliche Einheiten hinzuzufügen und während ruhigeren Phasen die Einheiten zu reduzieren.

Mehrere Faktoren können die Leistung von SignalR Service beeinflussen. Es gibt keine einzelne Metrik, die alle Aspekte der Systemleistung widerspiegelt. Wenn Sie beispielsweise eine große Anzahl von Nachrichten senden, müssen Sie möglicherweise aufskalieren, auch wenn das Verbindungskontingent relativ niedrig ist. Eine Kombination aus Auslastung des Verbindungskontingents und Serverlast gibt einen Hinweis auf die Gesamtlast des Systems. Es gelten die folgenden Richtlinien:

  • Skalieren Sie auf, wenn die Verbindungsanzahl über 80–90 % liegt. Wenn Sie schon vor dem Ausschöpfen der Verbindungsanzahl aufskalieren, stellen Sie sicher, dass Sie über ausreichend Puffer verfügen, um neue Verbindungen anzunehmen, bevor die Aufskalierung wirksam wird.
  • Skalieren Sie auf, wenn die Serverlast über 80–90 % liegt. Durch die Skalierung stellen Sie sicher, dass der Dienst über genügend Kapazitäten verfügt, um die Leistung während des Aufskalierungsvorgangs aufrechtzuerhalten.

Die Autoskalierung wird in der Regel 3–5 Minuten nach dem Auslösen wirksam. Es ist wichtig, die Einheiten nicht zu oft zu ändern. Eine gute Faustregel besteht darin, nach einem Autoskalierungsvorgang 30 Minuten zu warten, bevor Sie einen weiteren Autoskalierungsvorgang ausführen. In einigen Fällen müssen Sie möglicherweise experimentieren, um das optimale Intervall für die Autoskalierung zu finden.

Benutzerdefinierte Autoskalierungseinstellungen

Öffnen Sie die Seite mit den Autoskalierungseinstellungen:

  1. Öffnen Sie das Azure-Portal.

  2. Öffnen Sie die Seite für den SignalR-Dienst.

  3. Wählen Sie im Menü auf der linken Seite unter Einstellungen die Option Aufskalieren aus.

  4. Wählen Sie die Registerkarte Konfigurieren aus. Wenn Sie über eine SignalR-Instanz auf der Dienstebene Premium verfügen, werden für Wählen Sie aus, wie Ihre Ressource skaliert werden soll zwei Optionen angezeigt:

    • Manuelle Skalierung ermöglicht Ihnen, die Anzahl der Einheiten manuell zu ändern.
    • Benutzerdefinierte Autoskalierung ermöglicht Ihnen, Bedingungen für die Autoskalierung basierend auf Metriken und/oder einem Zeitplan zu erstellen.
  5. Wählen Sie Benutzerdefinierte Autoskalierung aus. Auf dieser Seite verwalten Sie die Bedingungen für die Autoskalierung Ihres Azure SignalR-Diensts.

Standardskalierungsbedingung

Wenn Sie benutzerdefinierte Einstellungen für die Autoskalierung zum ersten Mal öffnen, wird die Standardbedingung Standard angezeigt, die bereits für Sie erstellt wurde. Diese Skalierungsbedingung wird ausgeführt, wenn keine der anderen Skalierungsbedingungen die festgelegten Kriterien erfüllt. Sie können die Bedingung Standard nicht löschen, aber Sie können sie umbenennen, die Regeln ändern und die Aktion anpassen, die bei der Autoskalierung ausgeführt wird.

Bei Verwendung der Standardbedingung für die Autoskalierung können Sie keinen festen Tag oder Datumsbereich festlegen. Die Standardbedingung unterstützt nur die Skalierung auf einen Einheitenbereich. Zum Skalieren nach einem Zeitplan müssen Sie eine neue Skalierungsbedingung hinzufügen.

Die Autoskalierung wird erst wirksam, wenn Sie die Standardbedingung zum ersten Mal speichern, nachdem Sie Benutzerdefinierte Autoskalierung ausgewählt haben.

Hinzufügen oder Ändern einer Skalierungsbedingung

Es gibt zwei Optionen für das Skalieren Ihrer Azure SignalR-Ressource:

  • Basierend auf einer Metrik skalieren: Die Skalierung erfolgt innerhalb von Einheitengrenzwerten basierend auf einer dynamischen Metrik. Es muss mindestens eine Skalierungsregel definiert werden, um die Kriterien festzulegen, die zum Auswerten der Metrik verwendet werden.
  • Auf bestimmte Einheiten skalieren: Die Skalierung erfolgt auf eine bestimmte Anzahl von Einheiten basierend auf einem Datumsbereich oder einem wiederholten Zeitplan.

Skalierung basierend auf einer Metrik

Im Folgenden sind die Schritte gezeigt, mit denen Sie eine Bedingung hinzufügen, mit der die Anzahl von Einheiten erhöht wird (aufskalieren), wenn die Auslastung des Verbindungskontingents mehr als 70 % beträgt, bzw. mit der die Anzahl von Einheiten reduziert wird (abskalieren), wenn die Auslastung des Verbindungskontingents bei weniger als 20 % liegt. Die Erhöhung oder Verringerung erfolgt zwischen verfügbaren Einheiten.

  1. Wählen Sie auf der Seite Aufskalieren für Auswählen, wie Ihre Ressource skaliert werden soll die Option Benutzerdefinierte Autoskalierung aus.

  2. Wählen Sie für Skalierungsmodus die Option Basierend auf einer Metrik skalieren aus.

  3. Wählen Sie + Regel hinzufügen aus. Screenshot of custom rule based on a metric.

  4. Führen Sie auf der Seite Skalierungsregel die folgenden Schritte aus:

    1. Wählen Sie in der Dropdownliste Metrikname eine Metrik aus. In diesem Beispiel wird Connection Quota Utilization (Auslastung des Verbindungskontingents) verwendet.
    2. Wählen Sie einen Operator und Schwellenwerte aus. In diesem Beispiel werden für Metrikschwellenwert zum Auslösen von Skalierungsaktion die Operatoren Größer als und 70 verwendet.
    3. Wählen Sie im Abschnitt Aktion einen Vorgang aus. In diesem Beispiel wird Erhöhen verwendet.
    4. Wählen Sie anschließend HinzufügenScreenshot of default autoscale rule screen. aus.
  5. Wählen Sie erneut + Regel hinzufügen aus, und führen Sie auf der Seite Skalierungsregel die folgenden Schritte aus:

    1. Wählen Sie in der Dropdownliste Metrikname eine Metrik aus. In diesem Beispiel wird Connection Quota Utilization (Auslastung des Verbindungskontingents) verwendet.
    2. Wählen Sie einen Operator und Schwellenwerte aus. In diesem Beispiel werden für Metrikschwellenwert zum Auslösen von Skalierungsaktion die Operatoren Weniger als und 20 verwendet.
    3. Wählen Sie im Abschnitt Aktion einen Vorgang aus. In diesem Beispiel wird Verringern verwendet.
    4. Wählen Sie anschließend HinzufügenScreenshot Connection Quota Utilization scale rule. aus.
  6. Legen Sie für Minimum, Maximum und Standard die jeweilige Anzahl von Einheiten fest.

  7. Wählen Sie auf der Symbolleiste Speichern aus, um die Einstellung für die Autoskalierung zu speichern.

Skalieren auf bestimmte Einheiten

Führen Sie die folgenden Schritte aus, um die Regel so zu konfigurieren, dass auf eine bestimmte Anzahl von Einheiten skaliert wird.

  1. Wählen Sie auf der Seite Aufskalieren für Auswählen, wie Ihre Ressource skaliert werden soll die Option Benutzerdefinierte Autoskalierung aus.
  2. Wählen Sie für Skalierungsmodus die Option Scale to a specific units (Auf bestimmte Anzahl von Einheiten skalieren) aus.
  3. Wählen Sie unter Einheiten die Anzahl der Standardeinheiten aus. Screenshot of scale rule criteria.

Hinzufügen weiterer Bedingungen

Im vorherigen Abschnitt haben Sie erfahren, wie Sie eine Standardbedingung für die Autoskalierungseinstellung hinzufügen. In diesem Abschnitt wird gezeigt, wie Sie weitere Bedingungen zur Einstellung für die Autoskalierung hinzufügen.

  1. Wählen Sie auf der Seite Aufskalieren für Auswählen, wie Ihre Ressource skaliert werden soll die Option Benutzerdefinierte Autoskalierung aus.
  2. Wählen Sie im Block Standard die Option Skalierungsbedingung hinzufügen aus. Screenshot of custom scale rule screen.
  3. Überprüfen Sie, ob die Option Basierend auf einer Metrik skalieren ausgewählt ist.
  4. Wählen Sie + Regel hinzufügen zum Hinzufügen einer Regel aus, um Einheiten zu erhöhen, wenn der Wert für Connection Quota Utilization (Auslastung des Verbindungskontingents) 70 Prozent überschreitet. Führen Sie die im Abschnitt Standardbedingung beschriebenen Schritte aus.
  5. Legen Sie für Minimum, Maximum und Standard die jeweilige Anzahl von Einheiten fest.
  6. Im Gegensatz zur Standardbedingung kann bei benutzerdefinierten Bedingungen zudem ein Zeitplan festgelegt werden. Dabei können Sie entweder ein Start- und ein Enddatum für die Bedingung oder bestimmte Wochentage (Montag, Dienstag usw.) angeben.
    1. Wenn Sie Start-/Enddatum angeben auswählen, treffen Sie für die zu verwendende Bedingung eine Auswahl für Zeitzone, Startdatum und -uhrzeit sowie Enddatum und -uhrzeit (wie in der folgenden Abbildung gezeigt).
    2. Bei Auswahl von An bestimmten Tagen wiederholen wählen Sie die Wochentage, die Zeitzone, die Startzeit und die Endzeit für die Bedingung aus.

Nächste Schritte

Weitere Informationen zum Verwalten der Autoskalierung über die Azure-Befehlszeilenschnittstelle finden Sie unter az monitor autoscale.