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

Differenz zwischen Zielauslastung und tatsächlicher 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 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 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 2 VMs 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 virtuellen Maschinen Ihre Auslastung auf etwa 0,7 erhöht, wird nur 1 VM 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 Differenz zwischen tatsächlicher Auslastung und Zielauslastung.

Verzögerungen beim Herunterskalieren

Zum Herunterskalieren berücksichtigt das Autoscaling die letzten 10 Minuten der VM-Instanznutzung, um zu entscheiden, wie skaliert wird. Die Berücksichtigung von mindestens 10 Minuten der letzen Nutzung hilft dabei:

  • sicherzustellen, dass die gesammelten Informationen aus der Instanzgruppe stabil sind.
  • zu verhindern, dass das Autoscaling kontinuierlich Instanzen zu schnell hinzufügt oder entfernt.
  • das Autoscaling ermitteln zu lassen, ob es sicher ist, Instanzen zu entfernen. Das Autoscaling entfernt erst dann Instanzen, wenn es ermittelt hat, dass die kleinere Gruppengröße ausreicht, um die Last der letzten 10 Minuten zu unterstützen.

Diese Verzögerung von 10 Minuten könnte als eine Verzögerung bei der Verkleinerung erscheinen, ist aber eigentlich eine integrierte Funktion vom Autoscaling. Die Verzögerung stellt auch sicher, dass eine zur verwalteten Instanzgruppe neu hinzugefügte VM-Instanz mindestens 10 Minuten lang läuft, bevor sie beendet werden kann.

Cooldown-Zeiten 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 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 Herunterskalieren die Anzahl der virtuellen Maschinen, die heruntergefahren werden müssen, und wählt VM-Instanzen mit geringer Auslastung aus der Instanzgruppe, um sie zu beenden. Am besten sollten Sie dafür sorgen, dass Instanzen, die beendet werden, vorher bestimmte Aufgaben ausführen, wie alle bestehenden Verbindungen schließen, alle Anwendungen oder Anwendungsserver herunterfahren, Logs 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 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 Erhöhen von maxNumReplicas 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 mit Stackdriver-Messwerten durch, aber der von Ihnen angegebene Messwert existiert nicht oder verfügt nicht über die erforderlichen Labels. 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 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 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