Sie können eine AlloyDB-Instanz skalieren, um die Kapazität und Leistung Ihres Clusters an die sich ändernden Anforderungen der Arbeitslast anzupassen. Die Skalierung hilft, Kosten zu verwalten und Trafficspitzen zu bewältigen.
Sie können AlloyDB-Instanzen auf verschiedene Arten skalieren, wie in der folgenden Zusammenfassung dargestellt.
| Skalierungstyp | Methode | Automatisierung | Primäre Instanzen | Lesepoolinstanzen |
|---|---|---|---|---|
| Vertikal | Maschinentyp ändern | Manuell | Unterstützt | Unterstützt |
| Horizontal | Knotenanzahl ändern | Manuell und automatisch | Nicht unterstützt | Unterstützt |
Hinweis
- Das Projekt von Google Cloud , das Sie verwenden, muss für den Zugriff auf AlloyDB aktiviert sein.
- Sie benötigen eine der folgenden IAM-Rollen im Projekt von Google Cloud , das Sie verwenden:
roles/alloydb.admin(die vordefinierte IAM-Rolle „AlloyDB Admin“)roles/owner(einfache IAM-Rolle „Inhaber“)roles/editor(einfache IAM-Rolle „Bearbeiter“)
Wenn Sie keine dieser Rollen haben, wenden Sie sich an den Organisationsadministrator, um Zugriff anzufordern.
Manuelle Skalierung
In diesem Abschnitt werden manuelle Methoden zum Skalieren Ihrer AlloyDB-Instanzen beschrieben. Sie können beispielsweise eine Instanz vertikal skalieren, indem Sie ihren Maschinentyp ändern, und eine Lesepoolinstanz horizontal skalieren, indem Sie die Anzahl der Knoten ändern.
Maschinentyp einer Instanz skalieren
Sie können sowohl primäre Instanzen als auch Lesepoolinstanzen vertikal skalieren, indem Sie den Maschinentyp der Instanz ändern, wodurch sich die Anzahl der vCPUs und der RAM ändert.
Console
Rufen Sie in der Google Cloud Console die Seite Cluster auf.
Klicken Sie in der Spalte Ressourcenname auf einen Cluster.
Gehen Sie auf der Seite Übersicht zum Abschnitt Instanzen in Ihrem Cluster und klicken Sie auf Primäre bearbeiten oder Lesepool bearbeiten.
Die Aktion ist wieder verfügbar, wenn sich der Status in Bereit ändert.Wählen Sie eine der folgenden Maschinenreihen aus:
- C4A (Google Axion-basierte Maschinenreihe)
- N2 (x86-basierte Maschinenreihe) Dies ist die Standardmaschinenreihe.
- C4 (x86-basierte Maschinenreihe)
- Z3 (Intel Xeon-basierte Maschinenreihe)
Wählen Sie einen Maschinentyp aus.
- C4A unterstützt 1, 2, 4, 8, 16, 32, 48, 64 und 72 vCPUs.
- N2 unterstützt 2, 4, 8, 16, 32, 64, 96 und 128 vCPUs.
- C4 unterstützt 4, 8, 16, 24, 32, 48, 96, 144, 192 und 288 vCPUs.
- Z3 unterstützt 8, 14, 16, 22, 32, 44 und 88 vCPUs.
Weitere Informationen zur Verwendung der C4A Axion-basierten Maschinenreihe, einschließlich des Maschinentyps mit 1 vCPU, finden Sie unter Überlegungen zur Verwendung der C4A Axion-basierten Maschinenreihe.
Klicken Sie auf Instanz aktualisieren oder Lesepool aktualisieren.
gcloud
Wenn Sie die gcloud CLI verwenden möchten, können Sie die Google Cloud CLI installieren und initialisieren oder Sie können Cloud Shell verwenden.
Verwenden Sie den gcloud alloydb instances update
Befehl, um den Maschinentyp der primären Instanz zu ändern.
gcloud alloydb instances update INSTANCE_ID \
--cpu-count=CPU_COUNT \
--machine-type=MACHINE_TYPE \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_IDErsetzen Sie Folgendes:
INSTANCE_ID: Die ID der Instanz, die Sie aktualisieren.CPU_COUNT: Die Anzahl der N2-vCPUs, die Sie für die Instanz verwenden möchten. N2 ist die Standardeinstellung. Gültige Werte sind:2: 2 vCPUs, 16 GB RAM4: 4 vCPUs, 32 GB RAM8: 8 vCPUs, 64 GB RAM16: 16 vCPUs, 128 GB RAM32: 32 vCPUs, 256 GB RAM64: 64 vCPUs, 512 GB RAM96: 96 vCPUs, 768 GB RAM128: 128 vCPUs, 864 GB RAM
MACHINE_TYPE: Optional. Wählen Sie aus einer Liste der unterstützten Maschinentypen wien2-highmem-4,c4-highmem-4-lssdoderc4a-highmem-4-lssdaus. Weitere Informationen finden Sie unter AlloyDB-Maschinentyp auswählen.Wenn Sie
MACHINE_TYPEundCPU_COUNTzusammen verwenden, müssen die Werte inCPU_COUNTundMACHINE_TYPEübereinstimmen. Andernfalls wird ein Fehler ausgegeben.REGION_ID: Die Region, in der sich die Instanz befindet.CLUSTER_ID: Die ID des Clusters, in dem sich die Instanz befindet.PROJECT_ID: Die ID des Projekts, in dem sich der Cluster befindet.
Wenn der Befehl eine Fehlermeldung zurückgibt, die den Ausdruck invalid cluster state MAINTENANCE enthält, wird der Cluster routinemäßig gewartet. Dadurch wird die Neukonfiguration der Instanz vorübergehend verhindert.
Führen Sie den Befehl noch einmal aus, nachdem der Cluster wieder den Status READY erreicht hat.
Informationen zum Prüfen des Clusterstatus finden Sie unter Cluster
details ansehen.
Maschinentyp-Updates beschleunigen
Verwenden Sie die FORCE_APPLY
Option mit dem gcloud beta alloydb instances update Befehl, um den Maschinentyp schneller zu aktualisieren.
gcloud beta alloydb instances update INSTANCE_ID \
--cpu-count=CPU_COUNT \
--machine-type=MACHINE_TYPE \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--update-mode=FORCE_APPLYDie Instanz hat eine Ausfallzeit von etwa einer Minute.
Der Maschinentyp einer Instanz ändert sich nach 10 bis 15 Minuten.
Knotenanzahl einer Lesepoolinstanz skalieren
Mit AlloyDB können Sie die Anzahl der Knoten in einer Lesepoolinstanz ohne Ausfallzeiten auf Instanzebene skalieren. Wenn Sie die Anzahl der Knoten erhöhen, sind Clientverbindungen nicht betroffen.
Wenn Sie die Anzahl der Knoten verringern, können sich alle Clients, die mit einem Knoten verbunden sind, der heruntergefahren wird, über den Instanzendpunkt wieder mit den anderen Knoten verbinden.
Console
Rufen Sie in der Google Cloud Console die Seite Cluster auf.
Klicken Sie in der Spalte Ressourcenname auf einen Cluster.
Gehen Sie auf der Seite Übersicht zum Abschnitt Instanzen in Ihrem Cluster und klicken Sie auf Lesepool bearbeiten.
Geben Sie im Feld Knotenanzahl eine Knotenanzahl ein.
Klicken Sie auf Lesepool aktualisieren.
gcloud
Wenn Sie die gcloud CLI verwenden möchten, können Sie die Google Cloud CLI installieren und initialisieren oder Sie können Cloud Shell verwenden.
Verwenden Sie den gcloud alloydb instances update-Befehl, um die
Anzahl der Knoten in einer Lesepoolinstanz zu ändern.
gcloud alloydb instances update INSTANCE_ID \
--read-pool-node-count=NODE_COUNT \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \INSTANCE_ID: Die ID der Lesepoolinstanz.NODE_COUNT: Die Anzahl der Knoten in der Lesepoolinstanz. Geben Sie eine Zahl zwischen1und20ein. Beachten Sie, dass in einem Cluster nicht mehr als 20 Knoten auf alle Lesepoolinstanzen verteilt sein können.REGION_ID: Die Region, in der sich die Instanz befindet.CLUSTER_ID: Die ID des Clusters, in dem sich die Instanz befindet.PROJECT_ID: Die ID des Projekts, in dem sich der Cluster befindet.
Wenn der Befehl eine Fehlermeldung zurückgibt, die den Ausdruck invalid cluster state MAINTENANCE enthält, wird der Cluster routinemäßig gewartet. Dadurch wird die Neukonfiguration der Instanz vorübergehend verhindert.
Führen Sie den Befehl noch einmal aus, nachdem der Cluster wieder den Status READY erreicht hat. Informationen zum Prüfen des Clusterstatus finden Sie unter Clusterdetails ansehen.
Lesepoolinstanz automatisch skalieren
Mit dem Autoscaling für AlloyDB-Lesepools können Sie die Anzahl der Leseknoten automatisch und adaptiv an die Ressourcennutzung in Echtzeit anpassen. So können Sie Nutzungsänderungen bewältigen und Kosten senken.
Sie können das Autoscaling mit den folgenden Richtlinien konfigurieren:
- CPU-Auslastung: Die Anzahl der Knoten wird basierend auf einer Ziel-CPU-Auslastung skaliert.
- Zeitplanbasiert: Die Anzahl der Knoten wird während eines bestimmten Zeitfensters auf eine Mindestanzahl skaliert.
Sie können diese Richtlinien zusammen verwenden. Wenn mehrere Richtlinien aktiv sind, wählt das Autoscaling die Richtlinie aus, die die höchste Anzahl von Knoten empfiehlt.
Beschränkungen
Für das Autoscaling für Lesepools gelten die folgenden Einschränkungen:
- Lastverteilung für Verbindungen mit langer Lebensdauer: Um eine gleichmäßige Verteilung des Traffics zu erreichen und die durch das Autoscaling hinzugefügte Kapazität vollständig zu nutzen, empfehlen wir, neue Clientverbindungen zu erstellen. Das Autoscaling beendet keine vorhandenen Verbindungen mit langer Lebensdauer, wenn neue Knoten hinzugefügt werden. Daher wird der Traffic aus diesen Verbindungen nicht an die neu hinzugefügten Knoten weitergeleitet.
- Cache-Warming für neue Knoten: Wenn das Autoscaling neue Knoten hinzufügt, kann es einige Minuten dauern, bis die Caches aufgewärmt sind und die maximale Abfrageleistung erreicht wird.
Automatische Skalierung für eine neue Lesepoolinstanz aktivieren
Sie können die automatische Skalierung aktivieren und konfigurieren, wenn Sie eine Lesepoolinstanz mit einer CPU-basierten Richtlinie, einer zeitplanbasierten Richtlinie oder beiden erstellen.
Lesepoolinstanz mit einer CPU-basierten Richtlinie erstellen
Führen Sie den folgenden Befehl aus, um eine Lesepoolinstanz mit einer automatischen Skalierungsrichtlinie basierend auf einer Ziel-CPU-Auslastung zu erstellen:
gcloud alloydb instances create INSTANCE_ID \
--instance-type=READ_POOL \
--read-pool-node-count=NODE_COUNT \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--enable-autoscaler \
--autoscaler-max-node-count=MAX_NODE_COUNT \
--autoscaler-target-cpu-usage=TARGET_CPU_USAGEErsetzen Sie Folgendes:
INSTANCE_ID: Die ID der Lesepoolinstanz.READ_POOL: Gibt den Instanztyp an.NODE_COUNT: Die Anzahl der Knoten in der Lesepoolinstanz. Geben Sie eine Zahl zwischen1und20ein. Beachten Sie, dass in einem Cluster nicht mehr als 20 Knoten auf alle Lesepoolinstanzen verteilt sein können.REGION_ID:die Region, in der sich die Instanz befindet.CLUSTER_ID: Die ID des Clusters, in dem sich die Instanz befindet.PROJECT_ID: Die ID des Projekts, in dem sich der Cluster befindet.MAX_NODE_COUNT: Die maximale Anzahl von Knoten, die das Autoscaling in der Lesepoolinstanz erstellen kann. Die Gesamtzahl der Knoten in allen Lesepoolinstanzen in einem einzelnen Cluster darf 20 nicht überschreiten.TARGET_CPU_USAGE: Die Ziel-CPU-Auslastung für Ihre Lesepoolinstanz, ausgedrückt als Dezimalwert zwischen 0,0 und 1,0. Beispiel: 0, 7 für 70%.
Lesepoolinstanz mit einer zeitplanbasierten Richtlinie erstellen
Führen Sie den folgenden Befehl aus, um eine Lesepoolinstanz mit einer zeitplanbasierten automatischen Skalierungsrichtlinie zu erstellen, die eine Mindestanzahl von Knoten für ein bestimmtes Zeitfenster definiert:
gcloud alloydb instances create INSTANCE_ID \
--instance-type=READ_POOL \
--read-pool-node-count=NODE_COUNT \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--enable-autoscaler \
--autoscaler-max-node-count=MAX_NODE_COUNT \
--autoscaler-set-schedule=SCHEDULE_NAME \
--autoscaler-schedule-cron-exp=CRON_EXPRESSION \
--autoscaler-schedule-duration-seconds=DURATION_SECONDS \
--autoscaler-schedule-time-zone=TIME_ZONE \
--autoscaler-schedule-min-node-count=MIN_NODE_COUNT \
--autoscaler-schedule-description="DESCRIPTION"Ersetzen Sie Folgendes:
MAX_NODE_COUNT: Die maximale Anzahl von Knoten, die das Autoscaling in der Lesepoolinstanz erstellen kann. Die Gesamtzahl der Knoten in allen Lesepoolinstanzen in einem einzelnen Cluster darf 20 nicht überschreiten.SCHEDULE_NAME: Ein eindeutiger Name für den Skalierungsplan.CRON_EXPRESSION: Der Zeitplan im Cron-Format, der die Startzeit des Skalierungsereignisses angibt.DURATION_SECONDS: Die Dauer in Sekunden, für die der Zeitplan nach dem Start aktiv bleibt. Nach diesem Zeitraum wird die Instanz auf die Anzahl der Knoten herunterskaliert, die durch andere Richtlinien oder die ursprüngliche Konfiguration bestimmt wird.TIME_ZONE: Eine optionale Zeitzone für den Zeitplan. Beispiel:America/Los_Angeles.MIN_NODE_COUNT: Die Mindestanzahl von Knoten, auf die das Autoscaling die Lesepoolinstanz skaliert, während der Zeitplan aktiv ist.DESCRIPTION: Eine optionale Textbeschreibung für den Zeitplan.
Lesepoolinstanz mit CPU- und zeitplanbasierten Richtlinien erstellen
Führen Sie den folgenden Befehl aus, um eine Lesepoolinstanz mit CPU-basierten und zeitplanbasierten automatischen Skalierungsrichtlinien zu erstellen:
gcloud alloydb instances create INSTANCE_ID \
--instance-type=READ_POOL \
--read-pool-node-count=NODE_COUNT \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--enable-autoscaler \
--autoscaler-max-node-count=MAX_NODE_COUNT \
--autoscaler-target-cpu-usage=TARGET_CPU_USAGE \
--autoscaler-set-schedule=SCHEDULE_NAME \
--autoscaler-schedule-cron-exp=CRON_EXPRESSION \
--autoscaler-schedule-duration-seconds=DURATION_SECONDS \
--autoscaler-schedule-time-zone=TIME_ZONE \
--autoscaler-schedule-min-node-count=MIN_NODE_COUNT \
--autoscaler-schedule-description="DESCRIPTION"Ersetzen Sie TARGET_CPU_USAGE durch die Ziel-CPU-Auslastung für Ihre Lesepoolinstanz, ausgedrückt als Dezimalwert zwischen 0,0 und 1,0.
Eine Beschreibung der in diesem Befehl verwendeten Platzhalter finden Sie unter Lesepoolinstanz mit einer CPU-basierten Richtlinie erstellen und Lesepoolinstanz mit einer zeitplanbasierten Richtlinie erstellen.
Autoscaling für eine vorhandene Lesepoolinstanz aktivieren oder aktualisieren
Sie können die Einstellungen für die automatische Skalierung für eine vorhandene Lesepoolinstanz aktivieren, deaktivieren oder ändern.
Verwenden Sie den Befehl gcloud alloydb instances update, um das Autoscaling zum ersten Mal für eine vorhandene Instanz zu aktivieren oder eine vorhandene Richtlinie zu aktualisieren. Führen Sie beispielsweise Folgendes aus, um die Ziel-CPU-Auslastung zu aktualisieren:
gcloud alloydb instances update INSTANCE_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--autoscaler-target-cpu-usage=NEW_TARGET_CPU_USAGEErsetzen Sie NEW_TARGET_CPU_USAGE durch die neue Ziel-CPU-Auslastung, die Sie für Ihre Lesepoolinstanz festlegen möchten, ausgedrückt als Dezimalwert zwischen 0,0 und 1,0.
Führen Sie den Aktualisierungsbefehl mit einem neuen Zeitplannamen aus, um einer vorhandenen Konfiguration einen zweiten Zeitplan hinzuzufügen. Wenn der Zeitplanname bereits vorhanden ist, aktualisiert der Befehl den vorhandenen Zeitplan. Andernfalls wird ein neuer Zeitplan erstellt.
gcloud alloydb instances update INSTANCE_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--autoscaler-set-schedule=NEW_SCHEDULE_NAME \
--autoscaler-schedule-cron-exp=CRON_EXPRESSION \
--autoscaler-schedule-duration-seconds=DURATION_SECONDS \
--autoscaler-schedule-min-node-count=MIN_NODE_COUNTErsetzen Sie NEW_SCHEDULE_NAME durch den eindeutigen Namen für den neuen oder aktualisierten Skalierungsplan. Wenn der angegebene Name mit einem vorhandenen Zeitplan übereinstimmt, aktualisiert der Befehl die Einstellungen dieses Zeitplans. Wenn der Name nicht vorhanden ist, erstellt der Befehl einen neuen Zeitplan mit diesem Namen.
Auswertung von Autoscaling-Richtlinien
Wenn mehrere automatische Skalierungsrichtlinien aktiv sind, wertet das Autoscaling jede Richtlinie aus und wählt die Richtlinie aus, die die höchste Anzahl von Knoten empfiehlt.
Angenommen, Sie haben eine Konfiguration mit zwei Richtlinien:
- Eine CPU-basierte Richtlinie mit einem Zielwert von 60% Auslastung.
- Eine zeitplanbasierte Richtlinie, die an Wochentagen zwischen 8:00 und 17:00 Uhr mindestens drei Knoten erfordert.
Wenn es Mittag an einem Wochentag ist und die CPU-Auslastung 80 % beträgt, empfiehlt die CPU-basierte Richtlinie möglicherweise eine Aufskalierung auf vier Knoten, während die zeitplanbasierte Richtlinie drei Knoten empfiehlt. Das Autoscaling skaliert die Instanz auf vier Knoten.
Autoscaling deaktivieren
Verwenden Sie das Flag no-enable-autoscaler, um die automatische Skalierung zu deaktivieren. Dadurch wird der Lesepool auf die ursprüngliche Knotenanzahl zurückgesetzt, bevor das Autoscaling aktiviert wurde.
gcloud alloydb instances update INSTANCE_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--no-enable-autoscaler