Auf dieser Seite wird beschrieben, wie der verwaltete Autoscaler funktioniert. Außerdem werden Kosten und Einschränkungen bei der Verwendung des verwalteten Autoscalers für Spanner beschrieben. Außerdem finden Sie hier Informationen zur Konfiguration des verwalteten Autoscalings.
So funktioniert der verwaltete Autoscaler
Wenn Sie den verwalteten Autoscaler aktivieren, passt Spanner die Größe Ihrer Instanz automatisch an. Sie können den verwalteten Autoscaler in Ihrer Spanner-Instanz oder ‑Instanzpartition (in der Vorabversion) aktivieren. Die Funktion für verwaltetes Autoscaling reagiert auf Änderungen der Arbeitslast oder des Speicherbedarfs Ihrer Instanz, wenn die Last steigt oder sinkt. Beim verwalteten Autoscaling wird entweder hochskaliert, indem der Instanz Rechenkapazität hinzugefügt wird, oder herunterskaliert, indem der Instanz Rechenkapazität entzogen wird.
Wenn Sie das verwaltete Autoscaling konfigurieren, können Sie entweder Verarbeitungseinheiten für kleine Instanzen oder Knoten für große Instanzen verwenden. In diesem Dokument verwenden wir den Begriff Rechenkapazität für Knoten oder Verarbeitungseinheiten.
Der verwaltete Autoscaler von Spanner bestimmt die erforderliche Rechenkapazität anhand der folgenden Faktoren:
- CPU-Auslastungsziel mit hoher Priorität
- Ziel für gesamte CPU-Auslastung
- Speicherauslastungsziel
- Mindestgrenze
- Maximales Limit
Jede Skalierungsdimension generiert eine empfohlene Instanzgröße. Spanner verwendet automatisch die höchste. Wenn Ihre Instanz beispielsweise 10 Knoten benötigt, um das Ziel der Speicherauslastung zu erreichen, aber 12 Knoten, um das Ziel für die CPU-Auslastung zu erreichen, skaliert Spanner die Instanz auf 12 Knoten.
Wenn sich die Menge der Rechenkapazität ändert, optimiert Spanner den Speicher kontinuierlich. Dabei werden Daten auf alle Server verteilt, um sicherzustellen, dass der Traffic gleichmäßig verteilt wird und kein einzelner Server überlastet ist. Weitere Informationen finden Sie unter Einschränkungen.
Wenn der verwaltete Autoscaler eine Instanz bis zum maximalen Limit hochskaliert, die Arbeitslast aber immer noch eine höhere CPU-Auslastung als das Ziel verursacht, können Arbeitslastanfragen eine höhere Latenz aufweisen oder fehlschlagen. Wenn eine Instanz bis zum maximalen Ziel für die Rechenkapazität skaliert wird, die Arbeitslast jedoch mehr Speicherplatz als das maximale Speicherlimit benötigt, können Schreibanfragen fehlschlagen. Ob das maximale Ziel erreicht ist, können Sie in der Google Cloud Console auf der Seite Systemstatistiken in den Systemereignislogs für das verwaltete Autoscaling nachsehen. Weitere Informationen finden Sie unter Speicherlimits.
Wenn Spanner eine Instanz herunterskaliert, wird die Rechenkapazität langsamer entfernt als beim Hochskalieren, um Auswirkungen auf die Latenz zu vermeiden.
Sie können Lesereplikate in Ihren Instanzen asymmetrisch automatisch skalieren. Sie können Instanzpartitionen nicht asymmetrisch automatisch skalieren. Weitere Informationen finden Sie unter Asymmetrisches schreibgeschütztes Autoscaling.
Preise
Ihre gesamten Spanner-Kosten können je nach Konfiguration Ihrer Spanner-Instanz oder ‑Instanzpartition vor dem Aktivieren des verwalteten Autoscalers und den von Ihnen festgelegten Limits für den verwalteten Autoscaler niedriger oder höher sein.
Wenn Sie Ihre Spanner-Instanz beispielsweise manuell so konfiguriert haben, dass sie jederzeit genügend Rechenkapazität für Spitzenarbeitslasten hat, sind Ihre Kosten mit dem verwalteten Autoscaler möglicherweise niedriger, da er die Rechenkapazität reduziert, wenn die Instanz im Leerlauf ist.
Wenn Sie Ihre Spanner-Instanz bisher manuell so konfiguriert haben, dass sie genügend Rechenkapazität für durchschnittliche Arbeitslasten hat, und die Gesamtleistung bei zunehmendem Arbeitslast-Traffic nachlässt, sind Ihre Kosten mit dem verwalteten Autoscaler möglicherweise höher, da der verwaltete Autoscaler die Rechenkapazität erhöhen kann, wenn die Instanz ausgelastet ist. So erhalten Ihre Nutzer jedoch eine konsistentere Leistung.
Sie können die maximalen Kosten Ihrer Spanner-Instanz begrenzen, indem Sie das Limit für die maximale Anzahl von Knoten oder Verarbeitungseinheiten auf den gewünschten Betrag festlegen.
Wenn Sie ein Ziel für die gesamte CPU-Auslastung für Ihre Spanner-Instanz festlegen, kann es im Vergleich zur Festlegung eines Ziels für die CPU-Auslastung mit hoher Priorität zu einer Erhöhung der verwendeten Rechenkapazität und damit zu einer Erhöhung der Kosten kommen. Für den Endnutzer ist die Nutzung jedoch deutlich angenehmer und die Leistung wird verbessert, wenn diese Option festgelegt ist.
Beschränkungen
Die folgenden Einschränkungen gelten, wenn Sie die Funktion für verwaltetes Autoscaling für eine Instanz oder Instanzpartition aktivieren oder ändern:
- Sie können eine Instanz nicht verschieben, wenn der verwaltete Autoscaler aktiviert ist. Sie müssen zuerst den verwalteten Autoscaler deaktivieren und dann die Instanz verschieben. Nachdem Sie die Instanz verschoben haben, können Sie den verwalteten Autoscaler wieder aktivieren.
- Sie müssen das untere Limit für die Autoscaling-Instanz auf mindestens 1.000 Verarbeitungseinheiten oder mindestens 1 Knoten festlegen.
- Wenn Sie Autoscaling für eine vorhandene Instanz aktivieren, kann die Kapazität der vorhandenen Instanz niedriger sein als der Mindestgrenzwert, den Sie für das verwaltete Autoscaling konfigurieren. Die Instanz wird jedoch automatisch auf den konfigurierten Mindestwert hochskaliert, wenn Sie sie starten. Wenn Ihre Instanz beispielsweise einen Knoten hat, Sie aber den Mindestwert auf zwei Knoten festlegen, wird die Instanz beim Start automatisch auf zwei Knoten hochskaliert.
- Sie können Instanzpartitionen nicht asymmetrisch automatisch skalieren.
- Wenn die Anzahl der Placement-Zeilen in Ihrer Partition mehr als 100 Millionen beträgt, sollten Sie Autoscaling nicht aktivieren. Dies ist eine Einschränkung für die Geopartitionierung.
Parameter für verwaltetes Autoscaling
Wenn Sie eine Instanz oder Instanzpartition erstellen oder bearbeiten und den verwalteten Autoscaler aktivieren, definieren Sie die Werte in der folgenden Tabelle.
| Parameter | Beschreibung |
|---|---|
| CPU-Auslastungsziel mit hoher Priorität | Ein Prozentsatz der CPU-Kapazität der Instanz, der für Aufgaben mit hoher Priorität verwendet werden soll. Dieser Wert muss zwischen 10% und 90 % liegen. Wenn die CPU-Auslastung mit hoher Priorität einer Instanz das von Ihnen festgelegte Ziel überschreitet, fügt Spanner der Instanz sofort Rechenkapazität hinzu. Wenn die CPU-Auslastung wesentlich niedriger als das Ziel ist, entfernt Spanner Rechenkapazität. Weitere Informationen finden Sie unter CPU-Auslastungsziel mit hoher Priorität festlegen. |
| Ziel für gesamte CPU-Auslastung | Ein Prozentsatz der gesamten CPU-Kapazität der Instanz, der für Aufgaben mit hoher, mittlerer und niedriger Priorität verwendet werden soll. Dieser Wert muss zwischen 10% und 90 % liegen. Wenn die gesamte CPU-Auslastung einer Instanz das von Ihnen festgelegte Ziel überschreitet, fügt Spanner der Instanz sofort Rechenkapazität hinzu. Wenn die gesamte CPU-Auslastung wesentlich niedriger als das Ziel ist, entfernt Spanner Rechenkapazität. Weitere Informationen finden Sie unter Ziel für die gesamte CPU-Auslastung festlegen. |
| Speicherauslastungsziel | Der Prozentsatz des Speichers auf einem Knoten, den Sie verwenden können, bevor Spanner skaliert wird. Mit diesem Ziel sorgen Sie dafür, dass immer genügend Rechenkapazität vorhanden ist, um Schwankungen der Menge an Daten, die Sie speichern, zu bewältigen. Dieser Wert muss zwischen 10 und 99 % liegen. Eine Anleitung finden Sie unter Ziel der Speicherauslastung bestimmen. |
| Mindestgrenze | Die niedrigste Menge an Rechenkapazität, auf die Spanner die Instanz herunterskaliert. Der Mindestwert darf nicht niedriger als 10% des Werts sein, den Sie für das maximale Limit festgelegt haben. Wenn das maximale Limit beispielsweise 40 Knoten beträgt, muss das minimale Limit mindestens 4 Knoten betragen. Die Anforderung von 10 % ist eine feste Beschränkung. Weitere Informationen finden Sie unter Mindestlimit festlegen. |
| Maximales Limit | Die höchste Menge an Rechenkapazität, auf die Spanner die Instanz hochskaliert. Für Knoten muss dieser Wert größer als 1 Knoten (oder 1.000 Verarbeitungseinheiten) und gleich oder größer als die Mindestanzahl von Knoten oder Verarbeitungseinheiten sein. Der Wert darf nicht höher als das 10-Fache der Anzahl sein, die Sie für die Mindestmenge an Rechenkapazität auswählen. Diese 10-fache Anforderung ist eine feste Beschränkung. Weitere Informationen finden Sie unter Höchstgrenze ermitteln. |
Verwaltetes Autoscaling konfigurieren
In diesem Abschnitt wird beschrieben, wie Sie die Zahlen für Ihre verwalteten Autoscaler-Parameter auswählen. Nachdem Sie die anfänglichen Werte festgelegt haben, überwachen Sie Ihre Instanz und passen Sie bei Bedarf die Werte an.
CPU-Auslastungsziel mit hoher Priorität bestimmen
Das optimale Ziel für Ihre Instanz oder Instanzpartition hängt von den Latenz- und Durchsatzanforderungen Ihrer Arbeitslast ab. Unsere Empfehlungen zur maximalen CPU-Auslastung für regionale, Dual-Region- und Multi-Region-Instanzkonfigurationen finden Sie unter Benachrichtigungen für eine hohe CPU-Auslastung.
Wenn die CPU-Auslastung nahe 100%oder darüber liegt, kann dies zu Leistungseinbußen führen. Wenn Ihre Arbeitslast latenz- oder leistungsabhängig ist, sollten Sie das gesamte CPU-Ziel auf einen niedrigeren Wert anpassen. Beachten Sie, dass dadurch höhere Kosten entstehen können.
Im Allgemeinen sollten Sie, wenn Sie eine inakzeptabel hohe Latenz beobachten, das CPU-Auslastungsziel verringern.
Sie können auch Ziele für die gesamte CPU-Auslastung und die CPU-Auslastung mit hoher Priorität konfigurieren. Weitere Informationen finden Sie unter Beide CPU-Auslastungsziele festlegen.
Ziel für die gesamte CPU-Auslastung festlegen
Wenn Sie das Ziel für die gesamte CPU-Auslastung festlegen, wird die Kapazität in Spanner automatisch skaliert, um eine ausreichende Kapazität für Aufgaben mit hoher, mittlerer und niedriger Priorität zu gewährleisten.
Wenn Ihre Arbeitslasten latenzempfindlich sind oder Sie möchten, dass Systemaufgaben schneller abgeschlossen werden, müssen Sie das Gesamtziel für die CPU festlegen, damit die Instanz über genügend Kapazität verfügt. Wenn das CPU-Gesamtziel festgelegt ist, zahlen Sie möglicherweise mehr, aber Ihre Anwendungen bieten Ihren Kunden eine bessere Nutzererfahrung.
Wenn das Ziel für die gesamte CPU-Auslastung festgelegt ist und Sie weiterhin eine inakzeptabel hohe Latenz beobachten, sollten Sie das Ziel für die gesamte CPU-Auslastung verringern.
Zur Optimierung des Durchsatzes von Schreibvorgängen und der Indexerstellung empfehlen wir ein CPU-Gesamtziel von 70% für regionale Instanzen und 50% für multiregionale Instanzen. Das funktioniert auch gut bei einem Failover, wenn kein Ziel mit hoher Priorität ausgewählt ist. Diese Ziele können jedoch höhere Kosten verursachen. Wenn Kosten ein wichtiger Faktor sind, empfehlen wir ein CPU-Gesamtziel von 85%. So können Spitzen aufgefangen werden, ohne dass es zu Latenz aufgrund von Ressourcensättigung (100% Auslastung) kommt.
Standardmäßig priorisiert Spanner den nutzerorientierten Traffic, indem ressourcenintensive Hintergrundvorgänge (z. B. das Erstellen von Indexen) gedrosselt werden. Sie können diese Hintergrundvorgänge beschleunigen, indem Sie ein niedrigeres Ziel für die gesamte CPU-Auslastung konfigurieren (z. B. <=60%). Dadurch wird dem Autoscaler signalisiert, dass er zusätzliche Rechenressourcen bereitstellen soll, wodurch der Durchsatz von Systemaufgaben erhöht wird. Dies kann jedoch zu höheren Kosten führen. Wenn Sie den Durchsatz für die Indexerstellung vorübergehend erhöhen möchten, können Sie niedrigere CPU-Gesamtzielwerte festlegen, bis die Indexerstellung abgeschlossen ist.
Sie können auch Ziele für die gesamte CPU-Auslastung und die CPU-Auslastung mit hoher Priorität konfigurieren. Weitere Informationen finden Sie unter Beide CPU-Auslastungsziele festlegen.
Beide CPU-Auslastungsziele bestimmen
Wenn Sie Ziele für die gesamte CPU-Auslastung und die CPU-Auslastung mit hoher Priorität konfigurieren, wertet der Autoscaler beide Messwerte gleichzeitig aus. Anschließend wird die höhere der beiden empfohlenen Anzahlen von Knoten oder Verarbeitungseinheiten ausgewählt. So wird sichergestellt, dass die Instanz so skaliert wird, dass die anspruchsvollere Anforderung erfüllt wird. Die Leistung für kritische Arbeitslasten wird beibehalten, während Hintergrundaufgaben ausgeführt werden.
Wenn sowohl die CPU-Auslastungsziele für hohe Priorität als auch die gesamte CPU-Auslastung festgelegt sind, ist die CPU-Auslastung für Aufgaben mit hoher Priorität Teil dieser Gesamtauslastung, zusammen mit Aufgaben mit niedriger und mittlerer Priorität. Der Wert des Ziels für die CPU-Auslastung mit hoher Priorität muss kleiner sein als das Ziel für die gesamte CPU-Auslastung, wenn beide Optionen ausgewählt sind.
Im Allgemeinen sollten Sie, wenn Sie eine inakzeptabel hohe Latenz beobachten, das CPU-Auslastungsziel verringern.
Im Allgemeinen empfehlen wir die folgenden CPU-Auslastungsziele für ein zuverlässiges Failover:
| Instanztyp | Ziel für gesamte CPU-Auslastung | CPU-Auslastungsziel mit hoher Priorität |
|---|---|---|
| Regionale Instanz | 70 % | 65 % |
| Multiregionale Instanz | 50 % | 45 % |
Je nach Arbeitslast empfehlen wir auch die folgenden spezifischeren CPU-Auslastungsziele:
| Arbeitslasttyp | Empfohlene CPU-Ziele | Kompromiss |
|---|---|---|
| Arbeitslast mit hohem Durchsatz und vielen Schreibvorgängen | Ziel für gesamte CPU-Auslastung: 70% | Höherer Durchsatz auf Kosten der Latenz |
| Latenzempfindliche Arbeitslast mit vielen Lesevorgängen | Ziel für die gesamte CPU-Auslastung: 80% Ziel für die CPU-Auslastung mit hoher Priorität: 65% (regional) oder 45% (multiregional) |
Vorhersagbare Tail-Latenz zu höheren Kosten |
| Arbeitslasten mit Schwerpunkt auf Kosteneffizienz priorisieren | Ziel für die gesamte CPU-Auslastung: 85% Ziel für die CPU-Auslastung mit hoher Priorität: 65% (regional) oder 45% (multiregional) |
Angemessene Kosten und Leistung bei möglicherweise verzögerter Indexerstellung |
Ziel der Speicherauslastung bestimmen
Beim Autoscaling wird das Ziel für die Speicherauslastung als Prozentsatz pro Knoten angegeben. Bei Instanzen oder Instanzpartitionen mit mindestens einem Knoten (1.000 Verarbeitungseinheiten) ist die Speichergröße auf 10 TiB pro Knoten begrenzt.
Maximale Anzahl von Knoten bestimmen
Der Wert, den Sie für die maximale Menge an Rechenkapazität auswählen, entspricht der Menge an Rechenkapazität, die die Instanz oder Instanzpartition für die Verarbeitung des größten Traffics benötigt, auch wenn Sie nicht erwarten, dass dieses Volumen oft erreicht wird. Spanner skaliert nie auf mehr Rechenkapazität als nötig hoch. Sie können sich diese Zahl auch als die höchste Menge an Rechenkapazität vorstellen, für die Sie zu zahlen bereit sind. Weitere Informationen zu den zulässigen Werten finden Sie unter Autoscaler-Parameter.
Das maximale Limit muss sowohl das von Ihnen festgelegte CPU-Auslastungsziel als auch das von Ihnen festgelegte Ziel für die Speicherauslastung für das Autoscaling zulassen.
Wenn Sie eine Instanz von der manuellen Zuordnung zur verwalteten automatischen Skalierung ändern, ermitteln Sie die höchste Rechenkapazität, die die Instanz in den letzten ein bis zwei Monaten hatte. Das maximale Limit für den verwalteten Autoscaler sollte mindestens so hoch sein.
Wenn Sie das verwaltete Autoscaling für eine neue Instanz aktivieren, sehen Sie sich die Messwerte anderer Instanzen an und verwenden Sie sie als Richtlinie, wenn Sie das maximale Limit festlegen.
Wenn Sie eine neue Arbeitslast haben und nicht sicher sind, wie sie wachsen wird, können Sie die Menge an Rechenkapazität schätzen, die Sie zum Erreichen des integrierten Speicherauslastungsziels benötigen, und die Zahl später anpassen.
Sie müssen auch wissen, wie viel Kontingent auf Ihrem Knoten verbleibt, da der verwaltete Autoscaler Ihre Instanz nicht so konfigurieren kann, dass sie mehr Rechenkapazität als Ihr Kontingent hat. Weitere Informationen finden Sie unter Knotenlimits.
Sobald die Instanz einsatzbereit und Autoscaling aktiviert ist, überwachen Sie die Instanz und stellen Sie sicher, dass der Wert für das maximale Limit mindestens so hoch wie das empfohlene Limit für das CPU-Ziel und das empfohlene Limit für das Speicherziel ist.
Mindestlimit festlegen
Sie legen ein Mindestlimit für das verwaltete Autoscaling fest, damit Ihre Spanner-Instanz oder ‑Instanzpartition auf die kleinste, kostengünstigste Größe herunterskaliert werden kann. Cloud Spanner verhindert automatisch, dass die Knotenanzahl unter den Mindestwert fällt, der für die CPU- und Speicherauslastungsziele erforderlich ist.
Der kleinste Mindestwert, den der verwaltete Autoscaler zulässt, ist 1 Knoten oder 1.000 Verarbeitungseinheiten. Wenn Sie das Autoscaling für eine vorhandene Instanz aktivieren, die weniger Kapazität als der für das verwaltete Autoscaling konfigurierte Mindestwert hat, wird die Instanz beim Start automatisch auf diesen Mindestwert hochskaliert.
Nachdem Sie die Instanz mit verwaltetem Autoscaling gestartet haben, sollten Sie einen ersten Test durchführen, um sicherzustellen, dass sie mit der festgelegten Mindestgröße funktioniert. Sie sollten regelmäßig testen, ob alles wie erwartet funktioniert.
Weitere Informationen zu den zulässigen Werten finden Sie unter Parameter für verwalteten Autoscaler.
In vielen Fällen ist es sinnvoll, den Mindestwert auf mehr als 1 zu setzen. Wählen Sie in den folgenden Situationen eine höhere Anzahl oder erhöhen Sie das Mindestlimit:
- Sie haben ein anstehendes Ereignis mit Spitzenlast, bei dem Sie erwarten, dass Ihr Traffic vorübergehend zunimmt und Sie dafür sorgen möchten, dass genügend Rechenkapazität vorhanden ist.
- Ihre Anwendung sendet Daten mit deutlichen Traffic-Spitzen. Wenn Sie neue Rechenkapazität hinzufügen, wird die Last in Spanner automatisch neu verteilt, um die neuen Knoten oder Verarbeitungseinheiten zu nutzen. Da dieser Prozess einige Minuten dauern kann, sollten Sie einen konservativen Ansatz in Form eines höheren Mindestwerts wählen. So kann Ihre Instanz die Spitzen problemlos bewältigen.
- Sie erhöhen die maximale Rechenkapazität. Der Mindestwert muss immer mindestens 10 % des maximalen Rechenkapazitätsziels betragen. Wenn Sie beispielsweise die maximale Anzahl von Knoten auf
30festlegen, müssen Sie die minimale Anzahl von Knoten auf mindestens3festlegen.
Wenn Sie den Wert für die minimale Rechenkapazität einer Instanz erhöhen, versucht Spanner sofort, die Instanz auf das neue Minimum zu skalieren. Es gelten die Standardeinschränkungen. Wenn Sie das Kontingent überschritten haben, schlägt Ihre Anfrage zum Ändern der verwalteten Autoscaler-Konfiguration fehl und die Konfiguration wird nicht aktualisiert.
Nachdem Sie das verwaltete Autoscaling zum ersten Mal konfiguriert haben und in regelmäßigen Abständen danach, sollten Sie Ihre Instanz testen, um sicherzustellen, dass sie mit der Mindestgröße funktioniert.
Google Cloud CLI-Parameter-Flags und ‑Einschränkungen
Wenn Sie die Google Cloud CLI zum Konfigurieren des verwalteten Autoscalers verwenden, müssen Sie einige erforderliche Flags festlegen. Es gibt optionale Flags, mit denen Sie angeben können, ob Sie Knoten oder Verarbeitungseinheiten verwenden möchten. Weitere Informationen zum Erstellen einer neuen Instanz oder Instanzpartition mit dem verwalteten Autoscaler oder zum Aktivieren des verwalteten Autoscalers für eine vorhandene Instanz oder Instanzpartition finden Sie in den folgenden Anleitungen:
- Instanz erstellen
- Verwaltetes Autoscaling für eine Instanz aktivieren oder ändern
- Instanzpartition erstellen
- Verwaltetes Autoscaling für eine Instanzpartition aktivieren oder ändern
Die folgenden Flags sind erforderlich, wenn Sie den verwalteten Autoscaler für Ihre Instanz aktivieren:
autoscaling-high-priority-cpu-percentautoscaling-total-cpu-percentautoscaling-storage-percent
Wenn Sie den CPU-Prozentsatz festlegen, können Sie eine oder beide Optionen auswählen.
Wenn Sie Knoten verwenden, müssen Sie auch die beiden folgenden Flags verwenden, wenn Sie den verwalteten Autoscaler aktivieren:
autoscaling-min-nodesautoscaling-max-nodes
Wenn Sie Verarbeitungseinheiten verwenden möchten, müssen Sie beim Aktivieren des verwalteten Autoscalers auch die beiden folgenden Flags verwenden:
autoscaling-min-processing-unitsautoscaling-max-processing-units
Die folgenden Einschränkungen gelten, wenn Sie den verwalteten Autoscaler einer vorhandenen Instanz mit der Google Cloud CLI hinzufügen:
- Sie können das Flag
--nodesnicht mit den Flags--autoscaling-min-nodesoder--autoscaling-max-nodesverwenden, da mit--nodeseine bestimmte Anzahl von Knoten und kein Skalierungsbereich festgelegt wird. Ebenso können Sie das Flag--processing-unitsnicht mit den Flagsautoscaling-min-processing-unitsoderautoscaling-max-processing-unitsverwenden, da mit--processing-unitseine bestimmte Anzahl von Verarbeitungseinheiten und kein Skalierungsbereich festgelegt wird. - Sie können die Flags für Knoten und Verarbeitungseinheiten nicht kombinieren. Sie können beispielsweise
--autoscaling-max-nodesnicht mitautoscaling-min-processing-unitsverwenden.
Einstellungen optimieren
Achten Sie auf die Nutzung der Rechenkapazität und passen Sie bei Bedarf die Einstellungen an, insbesondere nach der ersten Aktivierung des verwalteten Autoscalers. Wir empfehlen, die Seite System-Insights in der Google Cloud Console zu verwenden.
Asymmetrisches schreibgeschütztes Autoscaling
Nachdem Sie den verwalteten Autoscaler aktiviert haben, können Sie auch Ihre schreibgeschützten Replikate unabhängig von anderen Replikaten aktivieren und automatisch skalieren. Mit dem asymmetrischen schreibgeschützten Autoscaling können Sie die Grenzwerte für die Rechenkapazität und die Ziele für die CPU-Auslastung Ihrer schreibgeschützten Regionen basierend auf ihrer Nutzung steuern. Dadurch werden lokale Lesezugriffsmuster optimiert und die Kosteneffizienz verbessert. Die folgenden Autoscaling-Konfigurationsparameter können für jede schreibgeschützte Replikatregion konfiguriert werden:
- Mindestlimit für Rechenkapazität
- Limit für maximale Rechenkapazität
- CPU-Auslastungsziel mit hoher Priorität
- Ziel für gesamte CPU-Auslastung
- Gesamte CPU deaktivieren
- CPU mit hoher Priorität deaktivieren
Sie können asymmetrisches Autoscaling aktivieren und diese Parameter konfigurieren, indem Sie eine neue Instanz erstellen oder eine vorhandene Instanz aktualisieren.
Für jedes Replikat gelten die folgenden Regeln, wenn Sie asymmetrisches Autoscaling für eine vorhandene Instanz aktivieren:
- Wenn die aktuelle Rechenkapazität des Replikats zwischen dem für die Region festgelegten Autoscaling-Mindest- und ‑Höchstwert liegt, ändert sich die Rechenkapazität des Replikats nicht.
- Wenn die aktuelle Rechenkapazität des Replikats unter dem für die Region festgelegten Autoscaling-Mindestwert liegt, wird die Rechenkapazität an den Autoscaling-Mindestwert angepasst.
- Wenn die aktuelle Rechenkapazität des Replikats über dem für die Region festgelegten Autoscaling-Maximum liegt, wird die Rechenkapazität an das Autoscaling-Maximum angepasst.
- Wenn beide CPU-Ziele auf der Basisebene festgelegt sind und Sie das CPU-Ziel auf der Replikaebene deaktivieren möchten, müssen Sie explizit
disable_total_cpu_autoscalingoderdisable_high_priority_cpu_autoscalingverwenden.
Außerdem empfehlen wir, beim asymmetrischen Autoscaler für alle Replikate dieselben Ziele festzulegen, um ein einheitliches Autoscaling-Verhalten bei Failover-Ereignissen zu gewährleisten. Weitere Informationen finden Sie unter Failover-Bedenken.
Bedenken hinsichtlich Failover
Damit bei einem Ausfall eine hohe Verfügbarkeit und Leistung aufrechterhalten werden kann, muss Ihre Instanz über genügend Rechenleistung verfügen, um den Traffic zu verarbeiten, wenn eine Zone (bei regionalen Instanzen) oder eine gesamte Region (bei biregionalen und multiregionalen Instanzen) nicht mehr verfügbar ist.
Bei Verwendung des asymmetrischen Autoscalers ist es wichtig, für alle Replikate dieselben Auslastungsziele festzulegen. Uneinheitliche Konfigurationen können bei einem Failover zu Kapazitätsengpässen führen.
Stellen Sie sich folgendes Szenario vor:
- Replikat A ist mit Zielen für die CPU mit hoher Priorität und die gesamte CPU konfiguriert.
- Replikat B ist nur mit einem Ziel für CPUs mit hoher Priorität konfiguriert.
Wenn bei einem Failover der Traffic von Replikat A zu Replikat B verschoben wird, wird Replikat B nur anhand von Anfragen mit hoher Priorität skaliert. Folglich lösen Aufgaben mit mittlerer und niedriger Priorität (z. B. Hintergrundsystemprozesse oder Analyseabfragen) nicht das erforderliche Autoscaling auf Replikat B aus, was möglicherweise zu einer Unterversorgung von Aufgaben oder einer erhöhten Latenz für nicht kritische Arbeitslasten führt.
Um Probleme zu vermeiden, empfehlen wir Folgendes:
- Definieren Sie immer identische Autoscaling-Ziele für alle Replikate, um ein einheitliches Autoscaling-Verhalten zu gewährleisten. Angenommen, Sie konfigurieren ein schreibgeschütztes Replikat mit einem CPU-Ziel mit hoher Priorität und einem CPU-Gesamtziel. Wenn für das Lese-/Schreibreplikat nur das CPU-Ziel mit hoher Priorität festgelegt ist, wird bei einem Failover kein Autoscaling für Traffic mit mittlerer und niedriger Priorität ausgelöst.
- Achten Sie darauf, dass Ihre Zielauslastung Kapazität für Trafficspitzen hat, die auftreten, wenn ein Replikat plötzlich die Last eines ausgefallenen Peers übernehmen muss.
- Prüfen Sie regelmäßig Ihre Cloud Monitoring-Messwerte, um sicherzustellen, dass die sekundären Replikate die Kapazität haben, die für die Verarbeitung des kombinierten Traffics Ihrer primären Bereitstellung erforderlich ist.
Zugriffssteuerung
Zum Konfigurieren des verwalteten Autoscalers müssen Sie ein Hauptkonto mit einer Rolle mit Berechtigungen zum Erstellen und Aktualisieren für die Instanz oder Instanzpartition haben, die Sie konfigurieren.
Monitoring
Spanner bietet mehrere Messwerte, mit denen Sie nachvollziehen können, wie gut das verwaltete Autoscaling funktioniert, wenn es entsprechend den Arbeitslastanforderungen hoch- und herunterskaliert. Anhand der Messwerte können Sie auch beurteilen, ob Ihre Einstellungen optimal sind, um die Arbeitslast- und Kostenanforderungen Ihres Geschäfts zu erfüllen. Wenn Sie beispielsweise feststellen, dass die Knotenanzahl für eine Instanz oder Instanzpartition häufig nahe an der maximalen Anzahl von Knoten ist, sollten Sie die maximale Anzahl vielleicht erhöhen. Weitere Informationen zum Monitoring Ihrer Spanner-Ressourcen finden Sie unter Instanzen mit Cloud Monitoring überwachen.
Die folgenden Messwerte werden in der Google Cloud Console auf der Seite Systemstatistiken in Grafiken angezeigt. Sie können diese Messwerte auch mit Cloud Monitoring anzeigen lassen.
spanner.googleapis.com/instance/autoscaling/min_node_countspanner.googleapis.com/instance/autoscaling/max_node_countspanner.googleapis.com/instance/autoscaling/min_processing_unitsspanner.googleapis.com/instance/autoscaling/max_processing_unitsspanner.googleapis.com/instance/autoscaling/high_priority_cpu_target_utilizationspanner.googleapis.com/instance/autoscaling/total_cpu_target_utilizationspanner.googleapis.com/instance/autoscaling/storage_target_utilization
Logging
Spanner erstellt bei jedem Skalieren einer Instanz oder Instanzpartition ein Audit-Log für Systemereignisse. Jedes Ereignisprotokoll enthält Beschreibungstext und Metadaten zum Autoscaling-Ereignis.
Logs auf der Seite „Systemstatistiken“ ansehen
Sie können die Systemereignislogs des verwalteten Autoscalers in derGoogle Cloud Console auf der Seite Systemstatistiken aufrufen.
Öffnen Sie Spanner in der Google Cloud Console:
Wählen Sie die Instanz oder Instanzpartition aus, für die Autoscaling aktiviert ist.
Klicken Sie im Navigationsmenü auf Systemstatistiken.
Rufen Sie auf der Seite „Systemübersichten“ den Messwert Compute-Kapazität auf.
Klicken Sie auf Logs ansehen, um das Logfeld zu öffnen.
Im Bereich Rechenkapazitätslogs werden die Logs der letzten Stunde angezeigt.
Wenn asymmetrisches schreibgeschütztes Autoscaling für Ihre Instanz aktiviert ist, enthält die Logzusammenfassung eine Beschreibung und den Speicherort der Änderungen der Rechenkapazität jedes Replikats. Beispiel:
Increased from 1 to 2 nodes in us-central1 to maintain high priority CPU utilization at 80%. Wenn Sie kein asymmetrisches Autoscaling verwenden, sind in der Log-Zusammenfassung keine Standortinformationen enthalten. Beispiel:Increased from 9 to 10 nodes to maintain high priority CPU utilization at 65%. Sie können auch sehen, wann die Anzahl der Knoten erhöht wird, um das Ziel für die gesamte CPU-Auslastung beizubehalten.
Logs mit dem Log-Explorer ansehen
Sie können Logs auch mit dem Log-Explorer aufrufen:
Öffnen Sie in der Google Cloud Console den Log-Explorer:
Wählen Sie das entsprechende Google Cloud Projekt aus.
Geben Sie im Feld Query Folgendes ein:
protoPayload.methodName="AutoscaleInstance"Sie können die folgende Abfrage hinzufügen, um die Logs weiter zu filtern:
resource.type="spanner_instance" resource.labels.instance_id=INSTANCE_ID resource.labels.project_id=PROJECT_ID logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event" protoPayload.methodName="AutoscaleInstance"
So rufen Sie Logs für Abfragen auf, die in einer nicht standardmäßigen Instanzpartition ausgeführt werden:
resource.type="spanner_instance" resource.labels.instance_id=INSTANCE_ID resource.labels.project_id=PROJECT_ID logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event" protoPayload.methodName="AutoscaleInstancePartition"
Klicken Sie auf Abfrage ausführen.
Im Bereich Abfrageergebnisse werden die Logs der letzten Stunde angezeigt.
Weitere Informationen zum Anzeigen von Logs finden Sie unter Cloud Logging. Sie können logbasierte Benachrichtigungen auf der Seite Log-Explorer in der Google Cloud oder mit der Cloud Monitoring API einrichten.
Nächste Schritte
- Instanz mit aktiviertem verwalteten Autoscaler erstellen
- Instanz für die Verwendung von Autoscaling ändern oder Autoscaling-Einstellungen ändern
- Instanz von Autoscaling auf manuelle Skalierung umstellen
- Instanzpartition mit aktiviertem verwalteten Autoscaler erstellen
- Instanzpartition für die Verwendung von Autoscaling ändern oder Autoscaling-Einstellungen ändern