Autoscaling-Entscheidungen

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 treffen könnte.

Differenz zwischen Soll- und Ist-Auslastung

Während des Autoskalierungsprozesses 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 Festlegen, wie viele Instanzen hinzugefügt oder entfernt werden, durch Auf- oder Abrunden immer konservativ handelt. Dies 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 virtuellen Maschinen die Auslastung auf etwa 0,7 verringern würde. Da es nicht möglich ist, 1,5 virtuelle Maschinen hinzuzufügen, rundet das Autoscaling auf und fügt zwei virtuelle Maschinen hinzu. Dies könnte die durchschnittliche CPU-Auslastung auf einen Wert von unter 0,7 verringern, sorgt jedoch dafür, dass Ihre Anwendung genügend Ressourcen hat, um sie zu unterstützen.

Wenn das Autoscaling entsprechen bestimmt, dass das Entfernen von 1,5 virtuellen Maschinen Ihre Auslastung auf etwa 0,7 erhöht, wird nur eine virtuelle Maschine entfernt.

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

Verzögerungen beim Herunterskalieren

Zum Herunterskalieren wird beim Autoscaling die empfohlene Zielgröße der Gruppe basierend auf 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 als Unterstützung 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 eine integrierte Funktion 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.

Abkühlphasen für neue Instanzen werden bei der Entscheidung, ob eine Gruppe herunterskaliert wird, ignoriert.

Verbindungsausgleich verursacht Verzögerungen

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

Instanzbeendigungen vorbereiten

Das Autoscaling bestimmt beim Verkleinern die Anzahl der virtuellen Maschinen, die heruntergefahren werden müssen, und wählt VM-Instanzen mit geringer Auslastung aus der Instanzgruppe aus, um sie zu beenden. Bevor eine Instanz beendet wird, sollten Sie überprüfen, ob diese Instanzen bestimmte Aufgaben ausführen, wie alle bestehenden Verbindungen schließen, alle Anwendungen oder Anwendungsserver herunterfahren, Protokolle hochladen und so weiter. 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 den Lastenausgleich bei Ihrer verwalteten Instanzgruppe verwenden. Wenn die Instanz fehlerhaft ist, kann es einige Zeit dauern, bis der Lastenausgleich erkennt, dass die Instanz fehlerhaft ist. Dies führt dazu, dass der Lastenausgleich 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 der Lastausgleich aufhören kann, Daten zur Instanz zu senden. Weitere Informationen dazu finden Sie unter Fehlerhafte Instanzen handhaben in der Dokumentation zum Lastenausgleich.

Weitere Informationen zu Shutdown-Skripts finden Sie unter Shutdown-Skripts ausführen.

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 finden dieses Diagramm in der Google Cloud Platform Console.

  1. Rufen Sie in der GCP 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 vornehmen. 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.

    Screenshot des Tabs "Monitoring"

  4. Wählen Sie im Drop-down-Menü Automatisch skalierte Größe aus.

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 die Kapazität geringer wird, bedeutet das wahrscheinlich, dass sich die Größe der Instanzgruppe ebenfalls verringert und die blaue Linie im oberen Diagramm daher abfällt. Wenn sich die Kapazität dagegen erhöht, vergrößert sich die 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

Sie können Statusmeldungen direkt auf der Seite "Instanzgruppen" in der Google Cloud Platform Console sehen.

  1. Gehen Sie in der Google Cloud Platform Console zur Seite "Instanzgruppen".

    Zur Seite "Instanzgruppen"

  2. Suchen Sie nach Instanzgruppen, die mit dem Vorsicht-Symbol ! gekennzeichnet sind. Beispiel:

    Screenshot von Statusmeldugen auf der Seite der Instanzgruppen

  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. Gehen Sie in der Google Cloud Platform Console zur Seite "Instanzgruppen".

    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:

    Screenshot von 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 von RUNNING abweichenden Status. 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 Autoscaling haben Sie die maximale Anzahl der Instanzen angegeben, die die Instanzgruppe haben kann. Das Autoscaling versucht derzeit die Größe der Instanzgruppe den Anforderungen entsprechen anzupassen, hat jedoch die maxNumReplicas erreicht. Weitere Informationen zum Aktualisieren von maxNumReplicas auf 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 eine automatische Skalierung unter Verwendung von Stackdriver-Messwerten 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 Stackdriver Monitoring-Messwerten.
Quota for some resources is exceeded. Increase the quota or delete resources to free up more quota.
Informationen zu den verfügbaren Kontingenten erhalten Sie auf der Seite "Kontingente" der Google Cloud Platform Console.
Autoscaling does not work with an HTTP/S load balancer configured for maxRate.
Das Load-Balancing der Instanzgruppe erfolgt mit der Konfiguration von maxRate, 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 gerade 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 für Instanzgruppen in der Dokumentation zum Load-Balancing.
Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

Compute Engine-Dokumentation