Sie können eine AlloyDB-Instanz skalieren, um die Kapazität und Leistung Ihres Clusters an sich ändernde Arbeitslastanforderungen anzupassen. Durch die Skalierung lassen sich Kosten besser verwalten und Trafficspitzen leichter bewältigen.
Sie können AlloyDB-Instanzen auf verschiedene Arten skalieren, wie in der folgenden Tabelle zusammengefasst.
| 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 |
Hinweise
- 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 Instanzen des Lesepools vertikal skalieren, indem Sie den Maschinentyp der Instanz ändern. Dadurch werden die vCPU und der RAM geä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 im Cluster und klicken Sie auf Primäre bearbeiten oder Lesepool bearbeiten.
Wählen Sie eine der folgenden Maschinenserien aus:
- C4A: Die auf Google Axion basierende Maschinenreihe, die als Vorabversion verfügbar ist.
- N2: Die standardmäßige x86-basierte Maschinenserie.
- C4: Die auf skalierbaren Intel Xeon-Prozessoren und Titanium basierende Maschinenserie.
Wählen Sie einen Maschinentyp aus.
- C4A unterstützt 1, 4, 8, 16, 32, 48, 64 und 72 Maschinentypen oder ‑formen.
- N2 unterstützt 2, 4, 8, 16, 32, 64, 96 und 128 Maschinentypen oder -formen.
C4 unterstützt 4, 8, 16, 24, 32, 48, 96, 144, 192 und 288 Maschinentypen oder -formen.
Weitere Informationen zur Verwendung der C4A-Maschinenserie auf Axion-Basis, einschließlich des Maschinentyps mit 1 vCPU, finden Sie unter Hinweise zur Verwendung der C4A-Maschinenserie auf Axion-Basis.
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 Cloud Shell verwenden.
Verwenden Sie den Befehl gcloud alloydb instances
update, 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 benötigen. N2 ist der Standardwert. 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 unterstützter 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 Clusterdetails ansehen.
Aktualisierungen des Maschinentyps beschleunigen
Wenn Sie den Maschinentyp schneller aktualisieren möchten, verwenden Sie die Option FORCE_APPLY mit dem Befehl gcloud beta alloydb instances update.
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 ist etwa eine Minute lang nicht verfügbar.
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 skalieren, ohne dass es zu Ausfallzeiten auf Instanzebene kommt. Wenn Sie die Anzahl der Knoten erhöhen, sind Clientverbindungen davon nicht betroffen.
Wenn Sie die Anzahl der Knoten verringern, können alle Clients, die mit einem Knoten verbunden sind, der heruntergefahren wird, über den Instanzendpunkt eine Verbindung zu den anderen Knoten herstellen.
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 im Cluster und klicken Sie auf Lesepool bearbeiten.
Geben Sie im Feld Anzahl der Knoten eine Anzahl von Knoten 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 Cloud Shell verwenden.
Verwenden Sie den Befehl gcloud alloydb instances
update, 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_IDINSTANCE_ID: Die ID der Lesepoolinstanz.NODE_COUNT: Die Anzahl der Knoten in der Instanz des Lesepools. Geben Sie eine Zahl zwischen1und20ein. Beachten Sie, dass ein Cluster nicht mehr als 20 Knoten für alle Lesepoolinstanzen enthalten darf.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 AlloyDB-Autoscaling für Lesepools können Sie die Anzahl der Leseknoten automatisch und adaptiv auf Grundlage der Echtzeit-Ressourcennutzung ändern. So können Sie auf Nutzungsänderungen reagieren und Ausgaben 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 angegebenen 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 den Autoscaler für Lesepools gelten die folgenden Einschränkungen:
- Lastverteilung für langlebige Verbindungen: Damit der Traffic gleichmäßig verteilt wird und die zusätzliche Kapazität durch die automatische Skalierung voll genutzt werden kann, empfehlen wir, neue Clientverbindungen zu erstellen. Der Autoscaler beendet keine vorhandenen langlebigen Verbindungen, wenn er neue Knoten hinzufügt. Der Traffic aus diesen Verbindungen wird also nicht an die neu hinzugefügten Knoten weitergeleitet.
- Cache-Warming für neue Knoten: Wenn der Autoscaler neue Knoten hinzufügt, kann es einige Minuten dauern, bis die Caches aufgewärmt sind und die maximale Abfrageleistung erreicht wird.
- Verhalten bei großen Abfragen: Anpassungen durch die automatische Skalierung werden während der Ausführung sehr großer Leseabfragen möglicherweise verzögert.
Automatische Skalierung für eine neue Lesepoolinstanz aktivieren
Sie können das automatische Skalieren aktivieren und konfigurieren, wenn Sie eine Read-Pool-Instanz mit einer CPU-basierten Richtlinie, einer zeitplanbasierten Richtlinie oder beidem erstellen.
Lesepoolinstanz mit einer CPU-basierten Richtlinie erstellen
Führen Sie den folgenden Befehl aus, um eine Read-Pool-Instanz 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 Instanz des Lesepools. Geben Sie eine Zahl zwischen1und20ein. Beachten Sie, dass in einem Cluster insgesamt nicht mehr als 20 Knoten in allen Lesepoolinstanzen vorhanden sein dürfen.REGION_ID:ist 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 der Autoscaler in der Lesepoolinstanz erstellen kann. Die Gesamtzahl der Knoten in allen Lesepoolinstanzen in einem einzelnen Cluster darf 20 nicht überschreiten.TARGET_CPU_USAGE: Die CPU-Zielauslastung 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 Lese-Pool-Instanz 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 der Autoscaler 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. Danach wird die Instanz auf die Anzahl der Knoten herunterskaliert, die durch andere Richtlinien oder die ursprüngliche Konfiguration festgelegt ist.TIME_ZONE: Eine optionale Zeitzone für den Zeitplan. Beispiel:America/Los_Angeles.MIN_NODE_COUNT: Die Mindestanzahl von Knoten, auf die der Autoscaler 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 Read-Pool-Instanz 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 Lese-Pool-Instanz 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 auf einer vorhandenen Instanz zu aktivieren oder eine vorhandene Richtlinie zu aktualisieren. Wenn Sie beispielsweise die CPU-Zielauslastung aktualisieren möchten, führen Sie Folgendes aus:
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 CPU-Zielauslastung, die Sie für Ihre Lesepool-Instanz festlegen möchten. Geben Sie den Wert als Dezimalwert zwischen 0,0 und 1,0 an.
Wenn Sie einer vorhandenen Konfiguration einen zweiten Zeitplan hinzufügen möchten, führen Sie den Aktualisierungsbefehl mit einem neuen Zeitplannamen aus. Wenn der Zeitplanname bereits vorhanden ist, wird der vorhandene Zeitplan durch den Befehl aktualisiert. 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 Skalierungszeitplan. Wenn der angegebene Name mit einem vorhandenen Zeitplan übereinstimmt, werden die Einstellungen dieses Zeitplans mit dem Befehl aktualisiert. Wenn der Name nicht vorhanden ist, wird mit dem Befehl ein neuer Zeitplan mit diesem Namen erstellt.
Auswertung von Autoscaling-Richtlinien
Wenn mehrere Autoscaling-Richtlinien aktiv sind, wertet das Autoscaling jede Richtlinie aus und wählt diejenige 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 Uhr und 17:00 Uhr mindestens drei Knoten erfordert.
Wenn es an einem Wochentag um 12:00 Uhr ist und die CPU-Auslastung bei 80 % liegt, empfiehlt die CPU-basierte Richtlinie möglicherweise eine Aufskalierung auf vier Knoten, während die zeitplanbasierte Richtlinie drei Knoten empfiehlt. Der Autoscaler skaliert die Instanz auf vier Knoten.
Autoscaling deaktivieren
Verwenden Sie das Flag no-enable-autoscaler, um das automatische Skalieren 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