Autoscaling-Entscheidungen

Das Autoscaling führt in Ihrem Namen eine automatische Skalierung einer verwalteten Instanzgruppe durch. In diesem Dokument werden einige Entscheidungen erklärt, die das Autoscaling bei der Skalierung Ihrer verwalteten Instanzgruppen trifft.

Wenn Sie Autoscaling für eine verwaltete Instanzgruppe konfigurieren, überwacht das Autoscaling die Gruppe fortlaufend und legt die recommendedSize der Gruppe auf die Instanzzahl fest, die zur Verarbeitung der Spitzenlast in den letzten 10 Minuten erforderlich ist. Diese letzten 10 Minuten werden als Stabilisierungszeitraum bezeichnet.

Die Reaktion der verwalteten Instanzgruppe auf die empfohlene Größe des Autoscalings hängt davon ab, wie Sie den mode des Autoscalings konfigurieren:

  • ON: Die verwaltete Instanzgruppe legt ihre targetSize auf die empfohlene Größe fest und die Gruppe wird automatisch skaliert, um die Zielgröße zu erreichen.
  • ONLY_UP: Die Zielgröße der verwalteten Instanzgruppe kann nur als Reaktion auf eine erhöhte empfohlene Größe gesteigert werden.
  • OFF: Die empfohlene Größe hat keine Auswirkungen auf die Zielgröße. Die empfohlene Größe wird aber dennoch berechnet.

Wenn die Autoscaling-Konfiguration gelöscht wird, wird keine empfohlene Größe berechnet.

Differenz zwischen Soll- und Ist-Auslastung

Während des Autoscaling-Prozesses stellen Sie eventuell fest, dass die tatsächliche Auslastung von kleineren Instanzgruppen stark von der Zielauslastung abweicht. Dies liegt daran, dass das Autoscaling beim Interpretieren der Auslastungdaten und bei der Entscheidung, wie viele Instanzen hinzugefügt oder entfernt werden, durch Auf- oder Abrunden immer konservativ handelt. So wird verhindert, dass das Autoscaling eine unzureichende Anzahl von Ressourcen hinzufügt oder zu viele Ressourcen entfernt.

Wenn Sie zum Beispiel ein Auslastungsziel von 0,7 festlegen und Ihre Anwendung das Auslastungsziel überschreitet, bestimmt das Autoscaling möglicherweise, dass das Hinzufügen von 1,5 VM-Instanzen die Auslastung auf etwa 0,7 verringern würde. Da es nicht möglich ist, 1,5 VM-Instanzen hinzuzufügen, rundet das Autoscaling auf und fügt 2 Instanzen hinzu. Dies könnte die durchschnittliche CPU-Auslastung auf einen Wert unter 0,7 verringern, sorgt jedoch dafür, dass Ihre Anwendung immer genügend Ressourcen hat.

Wenn das Autoscaling entsprechend bestimmt, dass das Entfernen von 1,5 VM-Instanzen Ihre Auslastung auf etwa 0,7 erhöht, wird nur 1 Instanz entfernt.

Bei größeren Gruppen mit mehreren VM-Instanzen wird die Auslastung auf eine größere Anzahl von Instanzen aufgeteilt und das Hinzufügen oder Entfernen von VM-Instanzen verursacht nur eine kleinere Differenz zwischen tatsächlicher Auslastung und Zielauslastung.

Verzögerungen beim Herunterskalieren

Zum Herunterskalieren wird beim Autoscaling die empfohlene Zielgröße der Gruppe anhand der Spitzenlast in den letzten 10 Minuten berechnet. Diese letzten 10 Minuten werden als Stabilisierungszeitraum bezeichnet.

Für das Autoscaling ist es hilfreich, die letzten 10 Minuten der Nutzung zu beobachten, um:

  • Sicherzustellen, dass die gesammelten Informationen aus der Instanzgruppe stabil sind.
  • Zu verhindern, dass das Autoscaling kontinuierlich Instanzen zu schnell hinzufügt oder entfernt.
  • Instanzen sicher zu entfernen, indem ermittelt wird, ob die kleinere Gruppengröße für die Spitzenlast der letzten 10 Minuten ausreicht.

Dieser Stabilisierungszeitraum von 10 Minuten kann beim Herunterskalieren als Verzögerung wahrgenommen werden. Tatsächlich handelt es sich jedoch um ein integriertes Feature des Autoscalings. Mit der Verzögerung wird außerdem sichergestellt, dass eine neue Instanz beim Hinzufügen zur verwalteten Instanzgruppe mindestens 10 Minuten lang ausgeführt wird, bevor sie beendet werden kann.

Wartezeiten für neue Instanzen werden bei der Entscheidung, ob eine Gruppe verkleinert wird, ignoriert.

Verbindungsausgleich verursacht Verzögerungen

Wenn die Gruppe Teil eines Back-End-Dienstes ist, für den der Verbindungsausgleich aktiviert ist, kann es nach Ablauf des Verbindungsausgleichs bis zu 60 Sekunden dauern, bis die VM-Instanz entfernt oder gelöscht wird.

Verzögerungen bei der vertikalen Skalierung

Das Autoscaling ignoriert Nutzungsdaten von Instanzen während der Initialisierungsphase, d. h. während der für sie geltenden Wartezeit. Wenn Sie einen Wert für die Wartezeit festlegen, der deutlich länger ist als die Initialisierungszeit einer Instanz, ignoriert Ihr Autoscaling möglicherweise legitime Nutzungsdaten und unterschätzt die erforderliche Gruppengröße.

Angenommen, Sie skalieren basierend auf der CPU-Auslastung und die CPU-Auslastung einer Instanz steigt nach der Initialisierung an. Die Steigerung der CPU-Auslastung könnte eine Aufstockung rechtfertigen. Ist die Wartezeit der Instanz jedoch noch nicht vorüber, wird diese Erhöhung der CPU-Auslastung ignoriert und die Gruppe wird daher nicht vertikal skaliert.

Um Verzögerungen bei der vertikalen Skalierung zu vermeiden, sollten Sie eine Wartezeit festlegen, die der für die Initialisierung Ihrer Instanzen erforderlichen Zeit möglichst nahekommt.

Instanzbeendigungen vorbereiten

Wenn das Autoscaling herunterskaliert, bestimmt es die Anzahl der VM-Instanzen, die es herunterfahren muss, und wählt in der Instanzgruppe VM-Instanzen mit geringer Auslastung zum Beenden aus. Bevor eine Instanz beendet wird, sollten Sie prüfen, ob diese Instanz bestimmte Aufgaben ausführt, z. B. bestehende Verbindungen schließen, Anwendungen oder Anwendungsserver ordnungsgemäß herunterfahren, Logs hochladen usw. Sie können Ihrer Instanz über ein Shutdown-Skript die Anweisung geben, diese Aufgaben auszuführen.

Das Shutdown-Skript läuft in dem kurzen Zeitraum zwischen erfolgter Beendigungsanfrage und tatsächlicher Beendigung der Instanz auf einer Best-Effort-Basis. In diesem Zeitraum versucht Compute Engine, Ihr Shutdown-Skript und alle in dem Skript angegebenen Aufgaben auszuführen.

Dies ist besonders nützlich, wenn Sie das Load-Balancing mit Ihrer verwalteten Instanzgruppe verwenden. Wenn die Instanz fehlerhaft ist, kann es einige Zeit dauern, bis das Load-Balancing erkennt, dass die Instanz fehlerhaft ist. Dies führt dazu, dass das Load-Balancing weiterhin neue Anfragen an die Instanz sendet. Mit einem Shutdown-Skript kann die Instanz berichten, dass sie fehlerhaft ist, während sie heruntergefahren wird, sodass das Load-Balancing aufhören kann, Daten zur Instanz zu senden. Weitere Informationen dazu finden Sie unter Fehlerhafte Instanzen handhaben in der Dokumentation zum Load-Balancing.

Weitere Informationen zu Shutdown-Skripts finden Sie unter Shutdown-Skripts.

Weitere Informationen zum Herunterfahren einer Instanz finden Sie in der Dokumentation zum Anhalten oder Löschen einer Instanz.

Autoscaling-Diagramme zur Auslastung ansehen

Wenn Sie eine verwaltete Instanzgruppe haben, die automatisch skaliert wird, bietet Compute Engine ein Autoscaling-Diagramm, das die gesamte Auslastung und die Anzahl der automatisch skalierten Instanzen zu jedem Zeitpunkt verfolgt. Sie können auf dieses Diagramm in der Google Cloud Console zugreifen.

  1. Rufen Sie in der Cloud Console die Seite Instanzgruppen auf.

    Zur Seite "Instanzgruppen"

  2. Klicken Sie auf den Namen einer automatisch skalierten verwalteten Instanzgruppe, die Sie anzeigen lassen möchten. Die Gruppe muss das Autoscaling entsprechend der CPU-Auslastung durchführen. Andere Autoscaling-Messwerte werden derzeit nicht unterstützt.
  3. Wählen Sie auf der Detailseite der verwalteten Instanzgruppen den Tab Monitoring aus, falls nicht bereits geschehen.

    Tab

  4. Achten Sie darauf, dass Automatisch skalierte Größe in der Drop-down-Liste ausgewählt ist.

Die Diagramme verfolgen die Anzahl der Instanzen über die CPU-Auslastung. Im Folgenden finden Sie Informationen zu diesen Diagrammen:

  • Die blaue Linie im oberen Diagramm zeigt die Anzahl der Instanzen in der verwalteten Instanzgruppe an.
  • Die blaue Linie im unteren Diagramm zeigt die gesamte CPU-Auslastung der verwalteten Instanzgruppe an.
  • Die grüne Linie im unteren Diagramm zeigt die verbleibende verfügbare Kapazität der verwalteten Instanzgruppe an.
    • Wenn sich die grüne Linie über der blauen Linie befindet, steht eine große Menge an Kapazität zur Verfügung und die VM-Instanzen sind wahrscheinlich unverhältnismäßig gering ausgelastet.
    • Wenn sich die grüne Linie unterhalb der blauen Linie befindet, ist sehr wenig oder gar keine Kapazität mehr vorhanden und Sie sollten der Instanzgruppe weitere Instanzen hinzufügen.
  • Wenn Ihre Kapazität geringer wird, bedeutet das wahrscheinlich, dass sich die Größe Ihrer Instanzgruppe ebenfalls verringert und die blaue Linie im oberen Diagramm daher abfällt. Wenn sich Ihre Kapazität dagegen erhöht, vergrößert sich Ihre Instanzgruppe wahrscheinlich ebenfalls.

Die folgende Grafik stellt beispielhaft eine automatisch skalierte verwaltete Instanzgruppe dar, die ihre Kapazität erreicht. Das Autoscaling fügt der Gruppe entsprechend weitere VM-Instanzen hinzu und erhöht so ihre Kapazität.

Screenshot eines Autoscaling-Diagramms

Statusmeldungen ansehen

Wenn im Autoscaling bei der Skalierung ein Problem auftritt, wird eine Warnung oder eine Fehlermeldung ausgegeben. Sie können diese Statusmeldungen auf zwei Arten prüfen.

Statusmeldungen auf der Seite "Instanzgruppen" ansehen

Statusmeldungen können Sie sich direkt auf der Seite Instanzgruppen in der Google Cloud Console ansehen.

  1. Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.

    Zur Seite "Instanzgruppen"

  2. Suchen Sie nach Instanzgruppen mit dem Vorsichtssymbol (!). Beispiel:

    Statusmeldungen auf der Seite

  3. Bewegen Sie den Mauszeiger über ein Statussymbol, um Details zur Statusmeldung zu sehen.

Statusmeldungen auf der Seite der Instanzgruppendetails ansehen

Sie können direkt zur Detailseite einer bestimmten Instanzgruppe wechseln, um relevante Statusmeldungen zu sehen.

  1. Rufen Sie in der Cloud Console die Seite Instanzgruppen auf.

    Zur Seite "Instanzgruppen"

  2. Klicken Sie auf die Instanzgruppe, für die Sie Statusmeldungen sehen möchten.
  3. Schauen Sie sich auf der Detailseite auf dem Tab Mitglieder die Statusmeldung an. Beispiel:

    Statusmeldungen auf der Seite der Instanzgruppendetails

Gängige Statusrückmeldungen

Wenn im Autoscaling bei der Skalierung ein Problem auftritt, wird eine Warnung oder eine Fehlermeldung ausgegeben. Hier sind einige der häufigsten Rückmeldungen und deren Bedeutung.

All instances in the instance group are unhealthy (not in RUNNING state). If this is an error, check the instances.
Alle Instanzen in der Instanzgruppe haben einen anderen Status als RUNNING. Wenn dies beabsichtigt ist, können Sie diese Meldung ignorieren. Falls dies nicht beabsichtigt ist, beheben Sie den Fehler in der Instanzgruppe.
The number of instances has reached the maxNumReplicas. The autoscaler cannot add more instances.
Bei der Erstellung des Autoscalings haben Sie die maximale Anzahl der Instanzen für die Instanzgruppe angegeben. Das Autoscaling versucht, die Größe der Instanzgruppe den Anforderungen anzupassen, hat jedoch die Grenze maxNumReplicas erreicht. Informationen zum Ändern des Werts von maxNumReplicas in eine größere Zahl finden Sie unter Autoscaling aktualisieren.
The monitoring metric that was specified does not exist or does not have the required labels. Check the metric.
Sie führen ein Autoscaling mit einem Stackdriver Monitoring-Messwert durch, aber der von Ihnen angegebene Messwert existiert nicht oder verfügt nicht über die erforderlichen Label. Je nachdem, ob der Messwert ein Standard- oder benutzerdefinierter Messwert ist, sind unterschiedliche Label erforderlich. Weitere Informationen finden Sie in der Dokumentation zur Skalierung basierend auf einem Monitoring-Messwert.
Quota for some resources is exceeded. Increase the quota or delete resources to free up more quota.
Sie können sich Informationen zu Ihren verfügbaren Kontingenten auf der Seite Kontingente der Google Cloud Console ansehen.
Autoscaling does not work with an HTTP/S load balancer configured for maxRate.
Das Load-Balancing der Instanzgruppe erfolgt mit der maxRate-Konfiguration, aber das Autoscaling unterstützt diesen Modus nicht. Ändern Sie die Konfiguration oder deaktivieren Sie das Autoscaling. Weitere Informationen zu maxRate finden Sie in der Dokumentation zum Load-Balancing unter Einschränkungen und Richtlinien.
The autoscaler is configured to scale based on a load balancing signal but the instance group has not received any queries from the load balancer. Check that the load balancing configuration is working.
Für die Instanzgruppe erfolgt ein Load-Balancing, aber es gibt keine eingehenden Abfragen für die Gruppe. Der Dienst befindet sich möglicherweise im Leerlauf. In diesem Fall besteht kein Grund zur Sorge. Diese Meldung kann jedoch auch durch fehlerhafte Konfiguration verursacht werden. Beispielsweise kann eine automatisch skalierte Instanzgruppe das Ziel von mehr als einem Load-Balancer sein, was nicht unterstützt wird. Eine vollständige Liste der Richtlinien finden Sie unter Einschränkungen und Richtlinien in der Dokumentation zum Load-Balancing.