Scalare un'istanza

Puoi scalare un'istanza AlloyDB per regolare la capacità e il rendimento del cluster in modo da soddisfare le esigenze dei workload in continua evoluzione. Lo scaling aiuta a gestire i costi e a facilitare la gestione dei picchi di traffico.

Puoi scalare le istanze AlloyDB in diversi modi, riassunti di seguito.

Tipo di scalabilità Metodo Automazione Istanze principali 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 utilizzi deve essere stato abilitato per accedere ad AlloyDB.
  • Devi disporre di uno di questi ruoli IAM nel progetto Google Cloud 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 nessuno 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 numero di nodi.

Scalare il tipo di macchina di un'istanza

Puoi scalare verticalmente sia le istanze principali sia quelle del pool di lettura modificando il tipo di macchina dell'istanza, che ne modifica la vCPU e la RAM.

Console

  1. Nella console Google Cloud , vai alla pagina Cluster.

    Vai a Cluster

  2. Fai clic su un cluster nella colonna Nome risorsa.

  3. Nella pagina Panoramica, vai alla sezione Istanze nel cluster e fai clic su Modifica primaria o Modifica pool di lettura.

  4. Seleziona una delle seguenti serie di macchine:

    • C4A: la serie di macchine basate su Google Axion, disponibile in anteprima.
    • N2: la serie di macchine predefinita basata su x86.
  5. Seleziona un tipo di macchina.

  6. 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 comando gcloud alloydb instances update per modificare il tipo di macchina dell'istanza principale.

gcloud alloydb instances update INSTANCE_ID \
--cpu-count=CPU_COUNT \
--machine-type=MACHINE_TYPE \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID

Sostituisci 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 RAM
    • 4: 4 vCPU, 32 GB di RAM
    • 8: 8 vCPU, 64 GB di RAM
    • 16: 16 vCPU, 128 GB di RAM
    • 32: 32 vCPU, 256 GB di RAM
    • 64: 64 vCPU, 512 GB di RAM
    • 96: 96 vCPU, 768 GB di RAM
    • 128: 128 vCPU, 864 GB di RAM

  • MACHINE_TYPE: questo parametro è facoltativo quando deploy le macchine N2. Per eseguire il deployment della serie di macchine basate su Axion C4A (anteprima) o per eseguire la migrazione tra macchine C4A e N2, scegli questo parametro con i seguenti valori.

    Quando utilizzi MACHINE_TYPE e CPU_COUNT insieme, i valori in CPU_COUNT e MACHINE_TYPE devono corrispondere, altrimenti viene visualizzato un errore.

    Per la serie di macchine C4A basata su Axion, scegli il tipo di macchina con i seguenti valori:

    • c4a-highmem-1
    • c4a-highmem-4-lssd
    • c4a-highmem-8-lssd
    • c4a-highmem-16-lssd
    • c4a-highmem-32-lssd
    • c4a-highmem-48-lssd
    • c4a-highmem-64-lssd
    • c4a-highmem-72-lssd

    Per eseguire il deployment di C4A con 4 vCPU e versioni successive, utilizza il suffisso lssd per attivare la cache ultra veloce.

    Per saperne di più 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.

    Per la serie di macchine basate su x86 N2, utilizza i seguenti valori:

    • N2-highmem-2
    • N2-highmem-4
    • N2-highmem-8
    • N2-highmem-16
    • N2-highmem-32
    • N2-highmem-64
    • N2-highmem-96
    • N2-highmem-128
  • REGION_ID: la regione in cui si trova l'istanza.

  • CLUSTER_ID: l'ID del cluster in cui viene inserita 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, il cluster è in fase di manutenzione ordinaria. Ciò impedisce temporaneamente la riconfigurazione dell'istanza. 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 più rapidamente il tipo di macchina, 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_APPLY
  • L'istanza subisce un tempo di inattività di circa un minuto.

  • Il tipo di macchina di un'istanza cambia dopo 10-15 minuti.

Scalare il numero di 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 numero di nodi, le connessioni client rimangono invariate.

Quando diminuisci il numero di nodi, tutti i client connessi a un nodo in fase di arresto possono riconnettersi agli altri nodi utilizzando l'endpoint dell'istanza.

Console

  1. Nella console Google Cloud , vai alla pagina Cluster.

    Vai a Cluster

  2. Fai clic su un cluster nella colonna Nome risorsa.

  3. Nella pagina Panoramica, vai alla sezione Istanze nel cluster e fai clic su Modifica pool di lettura.

  4. Nel campo Conteggio nodi, inserisci un conteggio nodi.

  5. 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 comando gcloud alloydb instances update 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 tra 1 e 20 inclusi. Tieni presente che non puoi avere più di 20 nodi in tutte le istanze del pool di lettura di 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, il cluster è in fase di manutenzione ordinaria. Ciò impedisce temporaneamente la riconfigurazione dell'istanza. 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.

Scalabilità automatica di 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 variazioni di utilizzo e ridurre le spese.

Puoi configurare la scalabilità automatica utilizzando i seguenti criteri:

  • Basato sull'utilizzo della CPU: scala il numero di nodi in base a un utilizzo della CPU target.
  • Basato sulla pianificazione: ridimensiona il numero di nodi a un conteggio minimo durante una finestra temporale specificata.

Puoi utilizzare questi criteri insieme. Quando sono attivi più criteri, il gestore della scalabilità automatica seleziona quello 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 di lunga durata: per stabilire una distribuzione uniforme del traffico e utilizzare appieno la capacità aggiuntiva fornita dalla scalabilità automatica, ti consigliamo di creare nuove connessioni client. Lo strumento di scalabilità automatica non termina le connessioni esistenti di lunga durata quando aggiunge nuovi nodi, quindi il traffico di queste connessioni non viene indirizzato ai nodi appena aggiunti.
  • Warm-up della cache per i nuovi nodi: quando il gestore della scalabilità automatica aggiunge nuovi nodi, potrebbero essere necessari alcuni minuti prima che le cache vengano inizializzate e si raggiunga il picco di prestazioni delle query.
  • Comportamento con query di grandi dimensioni: gli aggiustamenti della scalabilità automatica potrebbero essere posticipati durante l'esecuzione di query di lettura molto grandi.

Abilitare la scalabilità automatica su una nuova istanza del pool di lettura

Puoi attivare 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.

Crea 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 della CPU target, esegui questo comando:

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

Sostituisci 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 tra 1 e 20 inclusi. Tieni presente che non puoi avere più di 20 nodi in tutte le istanze del pool di lettura di 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 viene inserito 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 CPU target 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%.

Crea 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 un intervallo di tempo specifico, esegui questo comando:

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 nel formato cron che specifica l'ora di inizio dell'evento di scalabilità.

  • DURATION_SECONDS: la durata in secondi per cui la pianificazione rimane attiva dopo l'inizio. Trascorso questo periodo, il numero di nodi dell'istanza viene ridotto in base ad altre norme o alla 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.

Crea un'istanza del pool di lettura con policy basate su CPU e pianificazione

Per creare un'istanza del pool di lettura con policy di scalabilità automatica basate sia sulla CPU che sulla pianificazione, esegui questo comando:

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 CPU target 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 le policy Crea un'istanza del pool di lettura con una policy basata sulla CPU e Crea un'istanza del pool di lettura con una policy basata sulla pianificazione.

Abilitare o aggiornare la scalabilità automatica su un'istanza di pool di lettura esistente

Puoi abilitare, disabilitare o modificare le impostazioni di scalabilità automatica in un'istanza di 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 CPU target, esegui:

gcloud alloydb instances update INSTANCE_ID \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --autoscaler-target-cpu-usage=NEW_TARGET_CPU_USAGE

Sostituisci NEW_TARGET_CPU_USAGE con il nuovo utilizzo della CPU target 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 programmazione.

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_COUNT

Sostituisci 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 della pianificazione. Se il nome non esiste, il comando crea una nuova pianificazione con questo nome.

Come vengono valutati i criteri 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 è mezzogiorno di un giorno feriale e l'utilizzo della CPU è all'80%, il criterio basato sulla CPU potrebbe consigliare lo scale up a quattro nodi, mentre il criterio basato sulla pianificazione ne consiglia tre. Il gestore della scalabilità automatica esegue lo scale up dell'istanza a quattro nodi.

Disattiva la scalabilità automatica

Per disattivare la scalabilità automatica, utilizza il flag no-enable-autoscaler. In questo modo, il pool di lettura viene ripristinato al numero di nodi originale prima dell'attivazione della scalabilità automatica.

gcloud alloydb instances update INSTANCE_ID \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --no-enable-autoscaler