Erkunden bewährter Methoden für die automatische Skalierung

Abgeschlossen

Wenn Sie beim Erstellen von Autoskaleneinstellungen keine bewährten Methoden ausführen, können Sie Bedingungen erstellen, die zu unerwünschten Ergebnissen führen. In dieser Lektion erfahren Sie, wie Sie vermeiden, Regeln zu erstellen, die miteinander in Konflikt stehen.

Autoskalierungskonzepte

  • Eine Autoskalierungseinstellung skaliert Instanzen horizontal, was wird, indem die Instanzen erhöht und in werden, indem die Anzahl der Instanzen verringert wird. Eine Einstellung für die automatische Skalierung weist einen maximalen, minimalen und Standardwert von Instanzen auf.

  • Ein Autoskalierungsauftrag liest immer die zugehörige Metrik aus, um festzustellen, ob die konfigurierten Schwellenwerte für eine Skalierung nach oben oder unten überschritten wurden.

  • Alle Schwellenwerte werden auf Instanzebene berechnet. Beispielsweise bedeutet "Skalierung um eine Instanz, wenn die durchschnittliche CPU > 80%, wenn die Anzahl der Instanzen 2 ist" bedeutet, dass die durchschnittliche CPU für alle Instanzen größer als 80%ist.

  • Alle Erfolge und Fehler der automatischen Skalierung werden im Aktivitätsprotokoll protokolliert. Anschließend können Sie eine Aktivitätsprotokollbenachrichtigung so konfigurieren, dass Sie per E-Mail, SMS oder Webhooks benachrichtigt werden können, wenn aktivitäten vorhanden sind.

Bewährte Methoden für Autoskalierung

Verwenden Sie die folgenden bewährten Methoden, wenn Sie Ihre Regeln für die automatische Skalierung erstellen.

Stellen Sie sicher, dass die Maximal- und Mindestwerte unterschiedlich sind und dass ein angemessener Rand dazwischen vorhanden ist.

Wenn Sie über eine Einstellung mit minimum=zwei, maximum=zwei verfügen und die aktuelle Instanzanzahl zwei ist, kann keine Skalierungsaktion ausgeführt werden. Halten Sie einen angemessenen Rand zwischen der maximalen und der minimalen Anzahl von Instanzen, die beide eingeschlossen sind. Die Automatische Skalierung wird immer zwischen diesen Grenzwerten skaliert.

Wählen Sie die entsprechende Statistik für die Diagnosemetrik aus.

Für Diagnosemetriken können Sie zwischen Durchschnitt, Minimum, Maximum und Summe als Metrik wählen, um die skaliert werden soll. Die häufigste Statistik ist "Mittelwert".

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

Wir empfehlen, je nach praktischer Situation sorgfältig verschiedene Schwellenwerte für das Skalieren nach außen und innen auszuwählen.

Wir empfehlen nicht, Einstellungen für die automatische Skalierung zu verwenden, wie sie in den folgenden Beispielen mit denselben oder ähnlichen Schwellenwerten für Aus- und Eingabebedingungen zu sehen sind.

  • Erhöhe die Anzahl der Instanzen um eins, wenn die Thread-Anzahl >= 600 beträgt.
  • Verringern Sie die Instanzen um eine, wenn die Thread Anzahl <= 600 beträgt.

Sehen wir uns ein Beispiel dafür an, was zu einem Verhalten führen kann, das verwirrend erscheinen kann. Betrachten Sie die folgende Sequenz.

  1. Angenommen, es gibt zwei Instanzen, mit denen begonnen werden soll, und dann wächst die durchschnittliche Anzahl von Threads pro Instanz auf 625.
  2. Autoscale skaliert, indem eine dritte Instanz hinzugefügt wird.
  3. Gehen Sie als Nächstes davon aus, dass die durchschnittliche Threadanzahl in einer Instanz auf 575 fällt.
  4. Vor der Skalierung versucht autoscale, zu schätzen, was der endgültige Zustand sein wird, wenn er skaliert wird. Beispiel: 575 x 3 (aktuelle Instanzanzahl) = 1.725 / 2 (letzte Anzahl von Instanzen bei skalierung in) = 862,5 Threads. Dies bedeutet, dass Autoskala selbst nach einer Skalierung unmittelbar wieder hochskalieren müsste, wenn die durchschnittliche Threadanzahl gleich bleibt oder sogar nur leicht abnimmt. Wenn es jedoch erneut skaliert wird, würde der gesamte Prozess wiederholt, was zu einer endlosen Schleife führen würde.
  5. Um diese Situation (als "Flapping" bezeichnet) zu vermeiden, wird die automatische Skalierung überhaupt nicht verkleinert. Stattdessen wird die Bedingung beim nächsten Ausführen des Dienstauftrags erneut übersprungen und neu ausgewertet. Dies kann viele Menschen verwirren, da die Autoskalierung nicht zu funktionieren scheint, wenn die durchschnittliche Threadanzahl 575 beträgt.

Die Schätzung während einer Verkleinerung soll "Flapping"-Situationen vermeiden, in denen Verkleinerungs- und Vergrößerungsaktionen kontinuierlich pendeln. Behalten Sie dieses Verhalten im Hinterkopf, wenn Sie dieselben Schwellenwerte für die Hochskalierung und Herunterskalierung wählen.

Es wird empfohlen, einen angemessenen Rand zwischen der Skalierung und den Schwellenwerten auszuwählen. Betrachten Sie beispielsweise die folgende bessere Regelkombination.

  • Instanzen um 1 erhöhen, wenn CPU% >= 80
  • Verringern von Instanzen um 1 Anzahl, wenn CPU-% <= 60

In diesem Fall

  1. Gehen Sie davon aus, dass es 2 Instanzen gibt, mit denen begonnen werden soll.
  2. Wenn die durchschnittliche CPU-% über Instanzen hinweg auf 80 geht, skaliert die automatische Skalierung, um eine dritte Instanz hinzuzufügen.
  3. Gehen Sie nun davon aus, dass die CPU-% im Laufe der Zeit auf 60 fällt.
  4. Die Skalierungsregel von Autoscale schätzt den Endzustand, wenn sie nach innen skaliert. Beispiel: 60 x 3 (aktuelle Instanzanzahl) = 180 / 2 (Endanzahl der Instanzen beim Skalieren nach innen) = 90. AutoScale reduziert nicht die Skalierung, da es sofort wieder hochskalieren müsste. Stattdessen wird die Skalierung nach innen übersprungen.
  5. Bei der nächsten Überprüfung der automatischen Skalierung fällt die CPU weiterhin auf 50. Es schätzt erneut - 50 x 3 Instanz = 150 / 2 Instanzen = 75, die unter dem Skalierungsschwellenwert von 80 liegt, sodass sie erfolgreich auf 2 Instanzen skaliert wird.

Überlegungen zur Skalierung, wenn mehrere Regeln in einem Profil konfiguriert sind

Es gibt Fälle, in denen Sie möglicherweise mehrere Regeln in einem Profil festlegen müssen. Der folgende Satz von Regeln für die automatische Skalierung wird von Diensten verwendet, wenn mehrere Regeln festgelegt werden.

Bei -Skalierungwird das automatische Skalieren ausgeführt, wenn eine Regel erfüllt ist. Bei der Maßstabschaltung von erfordert das automatische Skalieren, dass alle Regeln erfüllt werden.

Gehen Sie zur Veranschaulichung davon aus, dass Sie über die folgenden vier Regeln für die automatische Skalierung verfügen:

  • Wenn cpu < 30%, skalieren Sie um 1
  • Wenn Speicher < 50%, skalieren Sie um 1
  • Wenn cpu > 75%, skalieren Sie um 1
  • Falls der Speicher > 75%, erhöhen Sie die Skalierung um 1.

Dann tritt Folgendes auf:

  • Wenn die CPU bei 76% liegt und der Arbeitsspeicher bei 50%, skalieren wir nach außen.
  • Wenn die CPU 50% ist und der Arbeitsspeicher 76% ist, skalieren wir nach außen.

Wenn die CPU hingegen 25% ist und der Arbeitsspeicher 51% beträgt, skaliert die automatische Skalierung nicht herunter. Wenn die CPU 29% ist und der Arbeitsspeicher 49% ist, würde eine automatische Skalierung auftreten, da beide Skalierungsregeln wahr wären.

Immer eine Sichere Standardinstanzanzahl auswählen

Die Standardinstanzanzahl ist wichtig, da der Dienst automatisch auf diese Anzahl skaliert, wenn Metriken nicht verfügbar sind. Wählen Sie daher eine Standardinstanzanzahl aus, die für Ihre Workloads sicher ist.

Konfigurieren von Benachrichtigungen für die automatische Skalierung

Automatische Skalierung von Beiträgen im Aktivitätsprotokoll, wenn eine der folgenden Bedingungen auftritt:

  • AutoScale führt eine Skalierungsoperation durch.
  • Der AutoScale-Dienst schließt erfolgreich eine Skalierungsaktion ab.
  • Der Autoscale-Dienst kann keine Skalierungsaktion ausführen.
  • Metriken sind für den Autoscale-Dienst nicht verfügbar, um eine Skalierungsentscheidung zu treffen.
  • Metriken sind wieder verfügbar (Wiederherstellung), um eine Skalierungsentscheidung zu treffen.

Sie können auch eine Aktivitätsprotokollbenachrichtigung verwenden, um den Status des AutoScale-Moduls zu überwachen. Zusätzlich zur Verwendung von Aktivitätsprotokollbenachrichtigungen können Sie auch E-Mail- oder Webhook-Benachrichtigungen konfigurieren, um für erfolgreiche Skalierungsaktionen über die Registerkarte "Benachrichtigungen" in der AutoScale-Einstellung benachrichtigt zu werden.