Puoi scalare un'istanza AlloyDB per regolare la capacità e le prestazioni del cluster in base alle esigenze dei workload in continua evoluzione. La scalabilità aiuta a gestire i costi e a facilitare la gestione dei picchi di traffico.
Puoi scalare le istanze AlloyDB in diversi modi, come riassunto di seguito.
| Tipo di scalabilità | Metodo | Automation | Istanze primarie | Istanze del pool di lettura |
|---|---|---|---|---|
| Verticale | Modifica del tipo di macchina | Manuale | Supportato | Supportato |
| Orizzontale | Modifica del conteggio dei nodi | Manuale e automatica | Non supportata | Supportato |
Prima di iniziare
- Il Google Cloud progetto che stai utilizzando deve essere stato abilitato per accedere ad AlloyDB.
- Devi disporre di uno di questi ruoli IAM nel Google Cloud progetto che stai utilizzando:
roles/alloydb.admin(il ruolo IAM predefinito AlloyDB Admin)roles/owner(il ruolo IAM di base Proprietario)roles/editor(il ruolo IAM di base Editor)
Se non disponi di uno di questi ruoli, contatta l'Amministratore organizzazione per richiedere l'accesso.
Scalabilità manuale
Questa sezione descrive i metodi manuali per scalare le istanze AlloyDB. Ad esempio, puoi scalare verticalmente un'istanza modificandone il tipo di macchina e scalare orizzontalmente un'istanza del pool di lettura modificandone il conteggio dei nodi.
Scalare il tipo di macchina di un'istanza
Puoi scalare verticalmente sia le istanze primarie sia quelle del pool di lettura modificando il tipo di macchina dell'istanza, che ne modifica la vCPU e la RAM.
Console
Nella Google Cloud console, vai alla pagina Cluster.
Fai clic su un cluster nella colonna Nome risorsa.
Nella pagina Panoramica , vai alla sezione Istanze nel cluster e fai clic su Modifica primaria o Modifica pool di lettura.
Seleziona una delle seguenti serie di macchine:
- C4A (serie di macchine basate su Google Axion)
- N2 (serie di macchine basate su x86). Questa è la serie di macchine predefinita.
- C4 (serie di macchine basate su x86)
- Z3 (serie di macchine basate su Intel Xeon)
Seleziona un tipo di macchina.
- C4A supporta 1, 2, 4, 8, 16, 32, 48, 64 e 72 vCPU.
- N2 supporta 2, 4, 8, 16, 32, 64, 96 e 128 vCPU.
- C4 supporta 4, 8, 16, 24, 32, 48, 96, 144, 192 e 288 vCPU.
- Z3 supporta 8, 14, 16, 22, 32, 44 e 88 vCPU.
Per ulteriori informazioni sull'utilizzo della serie di macchine C4A basate su Axion, incluso il tipo di macchina con 1 vCPU, consulta Considerazioni sull'utilizzo della serie di macchine C4A basate su Axion.
Fai clic su Aggiorna istanza o Aggiorna pool di lettura.
gcloud
Per utilizzare gcloud CLI, puoi installare e inizializzare Google Cloud CLI oppure puoi utilizzare Cloud Shell.
Utilizza il gcloud alloydb instances update
comando per modificare il tipo di macchina dell'istanza primaria.
gcloud alloydb instances update INSTANCE_ID \
--cpu-count=CPU_COUNT \
--machine-type=MACHINE_TYPE \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_IDSostituisci quanto segue:
INSTANCE_ID: l'ID dell'istanza che stai aggiornando.CPU_COUNT: il numero di vCPU N2 che vuoi per l'istanza. N2 è il valore predefinito. I valori validi includono:2: 2 vCPU, 16 GB di RAM4: 4 vCPU, 32 GB di RAM8: 8 vCPU, 64 GB di RAM16: 16 vCPU, 128 GB di RAM32: 32 vCPU, 256 GB di RAM64: 64 vCPU, 512 GB di RAM96: 96 vCPU, 768 GB di RAM128: 128 vCPU, 864 GB di RAM
MACHINE_TYPE: (facoltativo) Seleziona da un elenco di tipi di macchine supportati, ad esempion2-highmem-4,c4-highmem-4-lssdoc4a-highmem-4-lssd. Per ulteriori informazioni, consulta Scegliere un tipo di macchina AlloyDB.Quando utilizzi
MACHINE_TYPEeCPU_COUNTinsieme, i valori inCPU_COUNTeMACHINE_TYPEdevono corrispondere, altrimenti riceverai un errore.REGION_ID: la regione in cui si trova l'istanza.CLUSTER_ID: l'ID del cluster in cui si trova l'istanza.PROJECT_ID: l'ID del progetto in cui si trova il cluster.
Se il comando restituisce un messaggio di errore che include la frase invalid cluster state MAINTENANCE, significa che il cluster è in fase di manutenzione di routine. In questo caso, la riconfigurazione dell'istanza non è consentita temporaneamente.
Esegui di nuovo il comando dopo che il cluster torna allo stato READY.
Per controllare lo stato del cluster, consulta Visualizzare i dettagli del cluster.
Accelerare gli aggiornamenti del tipo di macchina
Per aggiornare il tipo di macchina più rapidamente, utilizza l'opzione FORCE_APPLY
con il comando 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_APPLYL'istanza subisce circa un minuto di inattività.
Il tipo di macchina di un'istanza cambia dopo 10-15 minuti.
Scalare il conteggio dei nodi di un'istanza del pool di lettura
AlloyDB ti consente di scalare il numero di nodi in un'istanza del pool di lettura senza tempi di inattività a livello di istanza. Quando aumenti il conteggio dei nodi, le connessioni client rimangono invariate.
Quando diminuisci il conteggio dei nodi, tutti i client connessi a un nodo in fase di arresto possono riconnettersi agli altri nodi utilizzando l'endpoint dell'istanza.
Console
Nella Google Cloud console, vai alla pagina Cluster.
Fai clic su un cluster nella colonna Nome risorsa.
Nella pagina Panoramica , vai alla sezione Istanze nel cluster e fai clic su Modifica pool di lettura.
Nel campo Conteggio nodi, inserisci un conteggio dei nodi.
Fai clic su Aggiorna pool di lettura.
gcloud
Per utilizzare gcloud CLI, puoi installare e inizializzare Google Cloud CLI oppure puoi utilizzare Cloud Shell.
Utilizza il gcloud alloydb instances update comando per modificare il
numero di nodi in un'istanza del pool di lettura.
gcloud alloydb instances update INSTANCE_ID \
--read-pool-node-count=NODE_COUNT \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \INSTANCE_ID: l'ID dell'istanza del pool di lettura.NODE_COUNT: il numero di nodi nell'istanza del pool di lettura. Specifica un numero compreso tra1e20, inclusi. Tieni presente che non puoi avere più di 20 nodi in tutte le istanze del pool di lettura in un cluster.REGION_ID: la regione in cui si trova l'istanza.CLUSTER_ID: l'ID del cluster in cui si trova l'istanza.PROJECT_ID: l'ID del progetto in cui si trova il cluster.
Se il comando restituisce un messaggio di errore che include la frase invalid cluster state MAINTENANCE, significa che il cluster è in fase di manutenzione di routine. In questo caso, la riconfigurazione dell'istanza non è consentita temporaneamente.
Esegui di nuovo il comando dopo che il cluster torna allo stato READY. Per
controllare lo stato del cluster, consulta Visualizzare i dettagli del cluster.
Scalare automaticamente un'istanza del pool di lettura
La scalabilità automatica del pool di lettura di AlloyDB ti consente di modificare automaticamente e in modo adattivo il numero di nodi di lettura in base all'utilizzo delle risorse in tempo reale. In questo modo puoi gestire le modifiche di utilizzo e ridurre le spese.
Puoi configurare la scalabilità automatica utilizzando le seguenti policy:
- Basata sull'utilizzo della CPU: scala il numero di nodi in base a un utilizzo target della CPU.
- Basata sulla pianificazione: scala il numero di nodi a un conteggio minimo durante una finestra temporale specificata.
Puoi utilizzare queste policy insieme. Quando sono attive più policy, il gestore della scalabilità automatica seleziona quella che consiglia il numero più elevato di nodi.
Limitazioni
Il gestore della scalabilità automatica del pool di lettura presenta le seguenti limitazioni:
- Distribuzione del carico per le connessioni a lunga durata: per stabilire una distribuzione uniforme del traffico e utilizzare appieno la capacità aggiunta dalla scalabilità automatica, ti consigliamo di creare nuove connessioni client. Il gestore della scalabilità automatica non termina le connessioni a lunga durata esistenti quando aggiunge nuovi nodi, quindi il traffico di queste connessioni non viene instradato ai nodi appena aggiunti.
- Riscaldamento della cache per i nuovi nodi: quando il gestore della scalabilità automatica aggiunge nuovi nodi, potrebbe essere necessario qualche minuto prima che riscaldino le cache e raggiungano le massime prestazioni di query.
Abilitare la scalabilità automatica su una nuova istanza del pool di lettura
Puoi abilitare e configurare la scalabilità automatica quando crei un'istanza del pool di lettura utilizzando una policy basata sulla CPU, una policy basata sulla pianificazione o entrambe.
Creare un'istanza del pool di lettura con una policy basata sulla CPU
Per creare un'istanza del pool di lettura con una policy di scalabilità automatica basata su un utilizzo target della CPU, esegui il comando seguente:
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_USAGESostituisci quanto segue:
INSTANCE_ID: l'ID dell'istanza del pool di lettura.READ_POOL: specifica il tipo di istanza.NODE_COUNT: il numero di nodi nell'istanza del pool di lettura. Specifica un numero compreso tra1e20, inclusi. Tieni presente che non puoi avere più di 20 nodi in tutte le istanze del pool di lettura in un cluster.REGION_ID:la regione in cui si trova l'istanza.CLUSTER_ID: l'ID del cluster in cui si trova l'istanza.PROJECT_ID: l'ID del progetto in cui si trova il cluster.MAX_NODE_COUNT: il numero massimo di nodi che il gestore della scalabilità automatica può creare nell'istanza del pool di lettura. Il numero totale di nodi in tutte le istanze del pool di lettura in un singolo cluster non può superare 20.TARGET_CPU_USAGE: l'utilizzo target della CPU per l'istanza del pool di lettura, espresso come valore decimale compreso tra 0,0 e 1,0. Ad esempio, 0,7 per il 70%.
Creare un'istanza del pool di lettura con una policy basata sulla pianificazione
Per creare un'istanza del pool di lettura con una policy di scalabilità automatica basata sulla pianificazione che definisce un numero minimo di nodi per una finestra temporale specifica, esegui il comando seguente:
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"Sostituisci quanto segue:
MAX_NODE_COUNT: il numero massimo di nodi che il gestore della scalabilità automatica può creare nell'istanza del pool di lettura. Il numero totale di nodi in tutte le istanze del pool di lettura in un singolo cluster non può superare 20.SCHEDULE_NAME: un nome univoco per la pianificazione di scalabilità.CRON_EXPRESSION: la pianificazione in cron formato che specifica l'ora di inizio dell'evento di scalabilità.DURATION_SECONDS: la durata in secondi per cui la pianificazione rimane attiva dopo l'avvio. Trascorso questo periodo, l'istanza esegue lo scale down al numero di nodi determinato da altre policy o dalla sua configurazione originale.TIME_ZONE: un fuso orario facoltativo per la pianificazione. Ad esempio,America/Los_Angeles.MIN_NODE_COUNT: il numero minimo di nodi a cui il gestore della scalabilità automatica scala l'istanza del pool di lettura mentre la pianificazione è attiva.DESCRIPTION: una descrizione di testo facoltativa per la pianificazione.
Creare un'istanza del pool di lettura con policy basate sulla CPU e sulla pianificazione
Per creare un'istanza del pool di lettura con policy di scalabilità automatica basate sia sulla CPU sia sulla pianificazione, esegui il comando seguente:
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"Sostituisci TARGET_CPU_USAGE con l'utilizzo target della CPU per l'istanza del pool di lettura, espresso come valore decimale compreso tra 0,0 e 1,0.
Per una descrizione dei segnaposto utilizzati in questo comando, consulta Creare un'istanza del pool di lettura con una policy basata sulla CPU e Creare un'istanza del pool di lettura con policy basate sulla pianificazione.
Abilitare o aggiornare la scalabilità automatica su un'istanza del pool di lettura esistente
Puoi abilitare, disabilitare o modificare le impostazioni di scalabilità automatica su un'istanza del pool di lettura esistente.
Per abilitare la scalabilità automatica per la prima volta su un'istanza esistente o per aggiornare una policy esistente, utilizza il comando gcloud alloydb instances update. Ad esempio, per aggiornare l'utilizzo target della CPU, esegui:
gcloud alloydb instances update INSTANCE_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--autoscaler-target-cpu-usage=NEW_TARGET_CPU_USAGESostituisci NEW_TARGET_CPU_USAGE con il nuovo utilizzo target della CPU che vuoi impostare per l'istanza del pool di lettura, espresso come valore decimale compreso tra 0,0 e 1,0.
Per aggiungere una seconda pianificazione a una configurazione esistente, esegui il comando di aggiornamento con un nuovo nome di pianificazione. Se il nome della pianificazione esiste già, il comando aggiorna la pianificazione esistente. In caso contrario, crea una nuova pianificazione.
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_COUNTSostituisci NEW_SCHEDULE_NAME con il nome univoco della pianificazione di scalabilità nuova o aggiornata. Se il nome fornito corrisponde a una pianificazione esistente, il comando aggiorna le impostazioni di quella pianificazione. Se il nome non esiste, il comando crea una nuova pianificazione con questo nome.
Come vengono valutate le policy di scalabilità automatica
Quando sono attive più policy di scalabilità automatica, il gestore della scalabilità automatica valuta ogni policy e sceglie quella che consiglia il numero più elevato di nodi.
Ad esempio, considera una configurazione con due policy:
- Una policy basata sulla CPU con un target di utilizzo del 60%.
- Una policy basata sulla pianificazione che richiede un minimo di tre nodi nei giorni feriali tra le 8:00 e le 17:00.
Se è un giorno feriale a mezzogiorno e l'utilizzo della CPU è all'80%, la policy basata sulla CPU potrebbe consigliare di eseguire lo scale up a quattro nodi, mentre la policy basata sulla pianificazione ne consiglia tre. Il gestore della scalabilità automatica scala l'istanza a quattro nodi.
Disabilitare la scalabilità automatica
Per disabilitare la scalabilità automatica, utilizza il flag no-enable-autoscaler. In questo modo, il pool di lettura viene reimpostato sul conteggio dei nodi originale prima dell'abilitazione della scalabilità automatica.
gcloud alloydb instances update INSTANCE_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--no-enable-autoscaler