Erkunden der bewährten Methoden für die Autoskalierung

Abgeschlossen

Wenn Sie beim Erstellen von Einstellungen für die Autoskalierung keine bewährten Methoden anwenden, erstellen Sie möglicherweise Bedingungen, die zu unerwünschten Ergebnissen führen. In dieser Lerneinheit erfahren Sie, wie Sie das Erstellen von Regeln vermeiden, die miteinander in Konflikt stehen.

Konzepte der automatischen Skalierung

  • Eine Einstellung für die automatische Skalierung skaliert Instanzen horizontal hoch, indem die Anzahl der Instanzen erhöht, und herunter, indem die Anzahl der Instanzen verringert wird. Eine Einstellung für die automatische Skalierung hat einen Höchst-, Mindest- und Standardwert von Instanzen.

  • Eine automatische Skalierungsaufgabe liest die zugeordnete Skalierungsmetrik und überprüft dabei, ob die konfigurierten Schwellenwerte zum horizontalen Hoch- oder Herunterskalieren überschritten wurden.

  • Alle Schwellenwerte werden auf Instanzebene berechnet. Beispielsweise besagt „Skaliere um eine Instanz auf, wenn die durchschnittliche CPU-Auslastung > 80 % und die Instanzenanzahl 2 ist“, dass aufskaliert werden soll, wenn die durchschnittliche CPU-Auslastung über alle Instanzen hinweg größer als 80 % ist.

  • Alle erfolgreichen und fehlerhaften Autoskalierungen werden im Aktivitätsprotokoll erfasst. Anschließend können Sie eine Warnung für das Aktivitätsprotokoll konfigurieren, damit Sie per E-Mail, SMS oder Webhook benachrichtigt werden, wenn eine Aktivität ausgeführt wird.

Empfohlene Methoden für die automatische Skalierung

Verwenden Sie die folgenden bewährten Methoden für Ihre Autoskalierungsregeln.

Stellen Sie sicher, dass sich die Höchst- und Mindestwerte unterscheiden und eine angemessene Spanne zwischen ihnen liegt.

Falls Ihre Einstellung ein Minimum von „zwei“ und ein Maximum von „zwei“ hat und dabei die Anzahl der aktuellen Instanzen „zwei“ ist, kann keine Skalierungsaktion durchgeführt werden. Behalten Sie eine passende Spanne zwischen der maximalen und der minimalen Instanzenanzahl bei. Beide Werte gelten dabei als inklusive. Die automatische Skalierung skaliert immer zwischen diesen Grenzwerten.

Wählen Sie die passende Statistik für Ihre Diagnosemetrik aus

Für die Diagnosemetriken können Sie zwischen Durchschnitt, Minimum, Maximum und Gesamt als Metrik, nach der skaliert werden soll, auswählen. Die am häufigsten verwendete Statistik ist Durchschnitt.

Wählen Sie die Schwellenwerte für alle Metriktypen sorgfältig

Wir empfehlen die sorgfältige Auswahl verschiedener Schwellenwerte für das horizontale Hoch- und Herunterskalieren, je nach Praxissituation.

Es wird empfohlen, die Einstellungen für die Autoskalierung nicht wie in den folgenden Beispielen vorzunehmen. In diesen sind die Schwellenwerte für die Bedingungen des horizontalen Hoch- und Herunterskalierens gleich oder ähnlich:

  • Anzahl der Instanzen um 600 erhöhen, wenn Threadanzahl >= 600
  • Anzahl der Instanzen um 600 verringern, wenn Threadanzahl <= 600

Sehen wir uns nun ein Beispiel an, das zu möglicherweise verwirrendem Verhalten führen kann. Gehen Sie dabei von der folgenden Abfolge aus.

  1. Nehmen Sie an, es gibt anfangs zwei Instanzen, und die durchschnittliche Anzahl der Threads pro Instanz wächst auf 625.
  2. Die automatische Skalierung skaliert horizontal hoch und fügt eine dritte Instanz hinzu.
  3. Nehmen Sie jetzt an, dass sich die durchschnittliche Threadanzahl über alle Instanzen hinweg auf 575 verringert.
  4. Vor dem Hochskalieren versucht die Autoskalierung, den Endzustand zu schätzen, wenn abskaliert wird. Beispiel: 575 × 3 (aktuelle Anzahl der Instanzen) = 1.725 / 2 (endgültige Anzahl der Instanzen, wenn abskaliert) = 862,5 Threads. Das bedeutet, dass die Autoskalierung nach dem horizontalen Herunterskalieren sofort wieder aufskalieren muss, falls die durchschnittliche Threadanzahl gleich bleibt oder sich nur leicht verringert. Wenn jedoch erneut aufskaliert wird, würde sich der gesamte Prozess wiederholen, was zu einer Endlosschleife führen würde.
  5. Um diese Situation zu vermeiden (als „Flapping“ bezeichnet), führt die Autoskalierung überhaupt keine Abskalierung durch. Stattdessen wird diese Bedingung übersprungen und beim nächsten Ausführen dieses Dienstauftrags neu bewertet. Das kann viele Leute verwirren, da die automatische Skalierung scheinbar bei einer durchschnittlichen Threadanzahl von 575 nicht funktioniert.

Die Schätzung während eines horizontalen Abskalierens soll „Pendelsituationen“ vermeiden, in denen horizontales Ab- und Aufskalieren ständig wechseln. Behalten Sie dieses Verhalten im Hinterkopf , wenn Sie für das horizontale Hoch- und Herunterskalieren die gleichen Schwellenwerte auswählen.

Wir empfehlen eine angemessene Spanne zwischen den Schwellenwerten für das horizontale Hoch- und Herunterskalieren. Ziehen Sie stattdessen beispielsweise diese bessere Regelkombination in Betracht:

  • Erhöhen der Anzahl der Instanzen um 1, wenn prozentuale CPU-Auslastung >= 80
  • Verringern der Anzahl der Instanzen um 1, wenn prozentuale CPU-Auslastung <= 60

In diesem Fall

  1. Angenommen, es gibt zu Anfang 2 Instanzen.
  2. Falls die durchschnittliche prozentuale CPU-Auslastung über alle Instanzen 80 erreicht, wird automatisch horizontal hochskaliert und eine dritte Instanz hinzugefügt.
  3. Nehmen Sie jetzt an, dass im Laufe der Zeit die prozentuale CPU-Auslastung auf 60 fällt.
  4. Die Regel für das automatische horizontale Herunterskalieren schätzt den Endzustand, falls horizontal herunterskaliert werden sollte. Beispiel: 60 × 3 (aktuelle Anzahl der Instanzen) = 180 / 2 (endgültige Anzahl der Instanzen beim Abskalieren) = 90. Stattdessen wird das horizontale Herunterskalieren übersprungen. Stattdessen wird die Abskalierung übersprungen.
  5. Bei der nächsten Prüfung durch die automatische Skalierung fällt die CPU-Auslastung weiter auf 50. Jetzt schätzt sie wieder – 50 × 3 Instanzen = 150 / 2 Instanzen = 75. Das Ergebnis liegt unter dem Schwellenwert von 80 für das Aufskalieren, daher wird erfolgreich auf 2 Instanzen abskaliert.

Skalierungsüberlegungen, wenn in einem Profil mehrere Regeln konfiguriert sind

Es gibt Fälle, in denen Sie möglicherweise mehrere Regeln innerhalb eines Profils festlegen müssen. Die folgenden Autoskalierungsregeln werden von Diensten angewandt, wenn mehrere Regeln festgelegt sind.

Beim horizontalen Hochskalieren wird die Autoskalierung durchgeführt, sobald eine Regel erfüllt wird. Beim horizontalen Herunterskalieren wird die automatische Skalierung nur ausgeführt, wenn alle Regeln erfüllt werden.

Nehmen Sie an, Sie hätten die folgenden vier Regeln für die automatische Skalierung:

  • Falls CPU-Auslastung < 30 %, um 1 abskalieren
  • Falls Arbeitsspeicherauslastung < 50 %, um 1 abskalieren
  • Horizontal um 1 hochskalieren, falls CPU-Auslastung > 75 %
  • Horizontal um 1 hochskalieren, falls Arbeitsspeicherauslastung > 75 %

Dann geschieht Folgendes:

  • Falls die CPU-Auslastung 76 % und die Arbeitsspeicherauslastung 50 % beträgt, erfolgt eine Aufskalierung.
  • Falls die CPU-Auslastung 50 % und die Arbeitsspeicherauslastung 76 % beträgt, erfolgt eine Aufskalierung.

Andererseits wird, wenn die CPU-Auslastung 25 % und die Arbeitsspeicherauslastung 51 % beträgt, nicht automatisch horizontal herunterskaliert. Eine automatische Skalierung würde auftreten, wenn die CPU-Auslastung 29 % beträgt und der Arbeitsspeicher 49 % beträgt, da beide Skalierungsregeln wahr wären („true“).

Wählen Sie als Standard immer eine sichere Anzahl an Instanzen

Die Standardinstanzenanzahl ist wichtig, da die Autoskalierung Ihren Dienst auf diese Instanzenanzahl skaliert, wenn keine Metriken zur Verfügung stehen. Wählen Sie daher eine Standardanzahl an Instanzen, die für Ihre Workloads sicher ist.

Konfigurieren der Benachrichtigungen für das automatische Skalieren

Die automatische Skalierung schreibt in das Aktivitätsprotokoll, wenn eine der folgenden Bedingungen eintritt:

  • Die automatische Skalierung gibt einen Skalierungsvorgang aus.
  • Die automatische Skalierung schließt eine Skalierungsaktion erfolgreich ab.
  • Bei einer Skalierungsaktion der automatischen Skalierung tritt ein Fehler auf.
  • Für den Autoskalierungsdienst stehen keine Metriken zur Verfügung, auf deren Grundlage eine Skalierungsentscheidung getroffen werden kann.
  • Metriken stehen wieder zur Verfügung (Wiederherstellung), um eine Skalierungsentscheidung zu treffen.

Sie können auch eine Aktivitätsprotokollwarnung zur Überwachung der Integrität der Engine für die automatische Skalierung verwenden. Neben der Verwendung von Warnungen zu Aktivitätsprotokollen können Sie auf der Registerkarte „Benachrichtigungen“ in den Einstellungen für die automatische Skalierung auch E-Mail- oder Webhook-Benachrichtigungen konfigurieren, um bei erfolgreichen Skalierungsaktionen informiert zu werden.