Scalabilità automatica

Questa pagina spiega come funziona la scalabilità automatica. Prima di leggere questa pagina, devi acquisire familiarità con la Panoramica di Bigtable e Istanze, cluster e nodi.

In Bigtable, le istanze sono container per i cluster, ovvero risorse specifiche della località che gestiscono le richieste. Ogni cluster ha uno o più nodi, che sono le risorse di calcolo utilizzate per gestire i dati. Quando crei un cluster in un'istanza, puoi scegliere tra l'allocazione manuale dei nodi o la scalabilità automatica.

Con l'allocazione manuale dei nodi, il numero di nodi nel cluster rimane costante finché non lo modifichi. Quando la scalabilità automatica è abilitata, Bigtable monitora costantemente il cluster e regola automaticamente il numero di nodi nel cluster quando necessario. La scalabilità automatica funziona su cluster HDD e SSD, in tutte le regioni Bigtable.

Puoi configurare la scalabilità automatica nella console Google Cloud, utilizzando gcloud oppure la libreria client di Cloud Bigtable per Java.

Quando utilizzare la scalabilità automatica

Nella maggior parte dei casi, ti consigliamo di abilitare la scalabilità automatica. I vantaggi della scalabilità automatica includono quanto segue:

  • Costi: la scalabilità automatica può aiutarti a ottimizzare i costi perché Bigtable riduce il numero di nodi nel tuo cluster quando possibile. Ciò può aiutarti a evitare il provisioning eccessivo.
  • Prestazioni: la scalabilità automatica consente a Bigtable di aggiungere automaticamente nodi a un cluster quando un carico di lavoro cambia o si verifica un aumento dei requisiti di archiviazione dei dati. Ciò consente di mantenere gli obiettivi di prestazioni dei carichi di lavoro garantendo che il cluster abbia un numero sufficiente di nodi per soddisfare i requisiti di utilizzo e archiviazione della CPU target.
  • Automazione: la scalabilità automatica riduce la complessità di gestione. Non è necessario monitorare e scalare manualmente le dimensioni del cluster o scrivere un'applicazione per eseguire queste attività, poiché il servizio Bigtable le gestisce per te.

La scalabilità automatica da sola potrebbe non funzionare bene per i seguenti tipi di carichi di lavoro perché, anche se Bigtable aggiunge rapidamente nodi all'aumento del traffico, il bilanciamento dei nodi aggiuntivi può richiedere del tempo.

  • Traffico intenso
  • Carichi di lavoro batch improvvisi

Se i picchi di utilizzo sono prevedibili o pianificati regolarmente, puoi utilizzare la scalabilità automatica e regolare le impostazioni prima dei burst pianificati. Per maggiori dettagli, consulta Ritardo durante il ribilanciamento dei nodi.

Come funziona la scalabilità automatica

La scalabilità automatica è il processo di scalabilità automatica o di modifica delle dimensioni di un cluster mediante l'aggiunta o la rimozione di nodi. Quando abiliti la scalabilità automatica, Bigtable regola automaticamente le dimensioni del cluster. In caso di fluttuazioni del carico di lavoro o dell'archiviazione del cluster, Bigtable può fare lo scale up, aggiungere nodi al cluster o eseguire lo scale down, rimuovendo i nodi dal cluster.

La scalabilità automatica di Bigtable determina il numero di nodi richiesti, in base alle seguenti dimensioni:

  • Target di utilizzo della CPU
  • Target di utilizzo dello spazio di archiviazione
  • Numero minimo di nodi
  • Numero massimo di nodi

Ogni dimensione di scalabilità genera un numero di nodi consigliato e Bigtable utilizza automaticamente quello più alto. Ciò significa, ad esempio, che se il cluster ha bisogno di 10 nodi per raggiungere il target di utilizzo dello spazio di archiviazione, ma di 12 per raggiungere il target di utilizzo della CPU, Bigtable scala il cluster a 12 nodi.

Man mano che il numero di nodi cambia, Bigtable ottimizza continuamente l'archiviazione, ribilanciando i dati tra i nodi, per garantire che il traffico sia distribuito in modo uniforme e nessun nodo sia sovraccarico.

Dopo lo scale up di un cluster, Bigtable ribilancia automaticamente i nodi nel cluster per prestazioni ottimali. Tutte le richieste continuano a raggiungere il cluster mentre sono in corso la scalabilità e il ribilanciamento. Per ulteriori informazioni, consulta Limiti di scalabilità.

Se un cluster ha fatto lo scale up fino al numero massimo di nodi e viene superato il target di utilizzo della CPU, le richieste potrebbero avere latenza elevata o non riuscire. Se un cluster ha fatto lo scale up fino al numero massimo di nodi e viene superato il limite di utilizzo dello spazio di archiviazione, le richieste di scrittura non andranno a buon fine. Consulta Spazio di archiviazione per nodo per ulteriori dettagli sui limiti dello spazio di archiviazione.

Quando un nodo viene aggiunto a un cluster di piccole dimensioni, ad esempio un cluster a un nodo, potresti osservare un aumento temporaneo della latenza mentre il cluster viene ribilanciato. Questo perché il nodo aggiuntivo raddoppia proporzionalmente le dimensioni del cluster. Analogamente, se le dimensioni di un cluster si riducono da due nodi a uno, potrebbe verificarsi una certa latenza.

Quando viene fatto lo scale down di un cluster, i nodi vengono rimossi a una velocità inferiore rispetto allo scale up, per evitare qualsiasi impatto sulla latenza. Per ulteriori dettagli, consulta i limiti di scalabilità.

Parametri di scalabilità automatica

Quando crei o modifichi un cluster e scegli la scalabilità automatica, definisci i valori per il target di utilizzo della CPU, il numero minimo di nodi e il numero massimo di nodi. Puoi configurare il target di utilizzo dello spazio di archiviazione o lasciare il valore predefinito, ovvero il 50% (2,5 TB per SSD e 8 TB per HDD).

Parametro Descrizione
Target di utilizzo CPU

Una percentuale della capacità della CPU del cluster. Può variare da 10% a 80%. Quando l'utilizzo della CPU di un cluster supera il target che hai impostato, Bigtable aggiunge immediatamente nodi al cluster. Quando l'utilizzo della CPU è notevolmente inferiore al target, Bigtable rimuove i nodi. Per indicazioni, consulta Determinare il target di utilizzo della CPU.

Numero minimo di nodi

Il numero più basso di nodi a cui Bigtable scalerà il cluster. Questo valore deve essere maggiore di zero e non può essere inferiore al 10% del valore impostato per il numero massimo di nodi. Ad esempio, se il numero massimo di nodi è 40, il numero minimo di nodi deve essere almeno 4. Il requisito del 10% è un limite fisso. Per indicazioni, consulta Determinare il numero minimo di nodi.

Numero massimo di nodi

Il numero massimo di nodi per cui vuoi consentire lo scale up del cluster. Questo valore deve essere maggiore di zero e uguale o maggiore del numero minimo di nodi. Il valore non può essere superiore a 10 volte il numero scelto per il numero minimo di nodi. Questo requisito di 10 volte è un limite fisso. Per indicazioni, consulta Determinazione del numero massimo di nodi.

Target per l'utilizzo dello spazio di archiviazione

Il numero massimo di terabyte per nodo che puoi archiviare prima dello scale up di Bigtable. Questo target garantisce di avere sempre nodi sufficienti per gestire le fluttuazioni nella quantità di dati archiviati. Per indicazioni, consulta Determinare il target di utilizzo dello spazio di archiviazione.

Configura scalabilità automatica

Questa sezione descrive come scegliere i parametri di scalabilità automatica. Dopo aver impostato i valori iniziali, monitora il cluster e modifica i numeri se necessario.

Determina il target di utilizzo della CPU

Basa il target di utilizzo della CPU sul carico di lavoro univoco. Il target ottimale per il cluster dipende dai requisiti di latenza e velocità effettiva del carico di lavoro. Per maggiori informazioni, vedi Pianificare la capacità di Bigtable.

In generale, se noti una latenza inaccettabile, dovresti abbassare il target di utilizzo della CPU.

Determina il target di utilizzo dello spazio di archiviazione

Se la tua applicazione è sensibile alla latenza, mantieni l'utilizzo dello spazio di archiviazione al di sotto del 60%. Se la tua applicazione non è sensibile alla latenza, puoi scegliere una destinazione di utilizzo dello spazio di archiviazione pari o superiore al 70%. Per maggiori informazioni, vedi Pianificare la capacità di Bigtable.

Per la scalabilità automatica, l'utilizzo dello spazio di archiviazione è espresso come numero di byte di archiviazione per nodo, anziché come percentuale. Il target di utilizzo dello spazio di archiviazione viene specificato per nodo, ma viene applicato all'intero cluster. I limiti di capacità per i nodi sono di 5 TB per nodo per l'archiviazione SSD e di 16 TB per nodo per l'archiviazione HDD.

La tabella seguente mostra gli importi target per le percentuali target di utilizzo dello spazio di archiviazione tipiche. La console Google Cloud accetta il valore in TB per nodo e le librerie client di gcloud CLI, API e Cloud Bigtable accettano un valore intero in GiB per nodo.

Percentuale SSD HDD
80% 4 TB o 4096 GiB 12,8 TB o 13.107 GiB
70% 3,5 TB o 3584 GiB 11,2 TB o 11.468 GiB
60% 3 TB o 3072 GiB 9,6 TB o 9830 GiB
50% 2,5 TB o 2560 GiB 8 TB o 8192 GiB

Determinare il numero massimo di nodi

Il valore che scegli come numero massimo di nodi deve essere il numero di nodi necessari al cluster per gestire il traffico più intenso del carico di lavoro, anche se non prevedi di raggiungere quel volume la maggior parte delle volte. Bigtable non fa mai lo scale up a più nodi del necessario. Puoi anche pensare a questo numero come al numero più alto di nodi che vuoi pagare. Consulta Parametri di scalabilità automatica per i dettagli sui valori accettati.

Il numero massimo deve consentire sia il target di utilizzo della CPU impostato da te sia il target di utilizzo dello spazio di archiviazione impostato da Bigtable.

Se stai modificando un cluster dall'allocazione manuale alla scalabilità automatica, trova il numero più elevato di nodi che il cluster ha avuto nell'ultimo mese circa. Il valore massimo di scalabilità automatica dovrebbe essere almeno pari a questo numero.

Se stai abilitando la scalabilità automatica per un nuovo cluster in un'istanza esistente, utilizza le metriche di altri cluster nell'istanza come guida.

Se hai un nuovo carico di lavoro e non sai come crescerà, puoi stimare il numero di nodi necessari per raggiungere il target di utilizzo dello spazio di archiviazione integrato, quindi modificare il numero in un secondo momento.

Per arrivare a questo numero, stima la quantità di dati che prevedi di archiviare nel cluster, quindi dividi questo numero per il target di utilizzo dello spazio di archiviazione per il tipo di archiviazione che utilizzi.

Ad esempio, se archivi 10 TB in un cluster SSD, puoi dividere 10 TB per 2,5 TB, ovvero il target di utilizzo dello spazio di archiviazione impostato per impostazione predefinita per i cluster SSD che utilizzano la scalabilità automatica. Il risultato è 4, il che significa che 4 è il numero di nodi in grado di gestire questa quantità di dati e il massimo dovrebbe essere di un certo numero superiore.

Utilizzando la stessa formula, gli esempi seguenti mostrano il numero di nodi necessario per alcune quantità di archiviazione di esempio:

Spazio di archiviazione SSD per cluster Numero massimo minimo di nodi
25 TB 10
35 TB 14
50 TB 20

Quando il cluster è in esecuzione con la scalabilità automatica abilitata, monitora il cluster e assicurati che il valore scelto per il numero massimo di nodi sia almeno pari a recommended number of nodes for CPU target e recommended number of nodes for storage target.

Determinare il numero minimo di nodi

Puoi impostare il valore minimo su 1 per garantire che Bigtable può fare lo scale down fino alla dimensione più piccola ed economica se possibile. Il cluster non diventa mai troppo piccolo perché Bigtable impedisce automaticamente che il conteggio dei nodi scenda al di sotto del minimo necessario per gestire i target di utilizzo di CPU e spazio di archiviazione. Consulta Parametri di scalabilità automatica per i dettagli sui valori accettati.

Tuttavia, in molti casi è consigliabile impostare questo valore su più di uno. Scegli un numero più alto o aumenta il numero minimo di nodi per le seguenti situazioni:

  • Hai in programma un evento imminente, ad esempio il Cyber Monday, in cui prevedi un aumento temporaneo del traffico e vuoi assicurarti di avere capacità sufficiente.
  • La tua applicazione invia traffico picchi. Quando vengono aggiunti nuovi nodi, Bigtable si bilancia automaticamente sui nuovi nodi. Poiché questo processo può richiedere diversi minuti, spesso è preferibile adottare un approccio conservativo e scegliere un minimo più elevato in modo che il cluster possa rispondere perfettamente ai picchi.
  • Aumenti il numero massimo di nodi. Il valore minimo deve essere sempre il dieci percentuali o meno del numero massimo di nodi. Ad esempio, se imposti il massimo su 30, devi impostare il minimo su almeno 3.

Se aumenti il valore per il numero minimo di nodi di un cluster, Bigtable tenta immediatamente di scalare il cluster in base al nuovo valore minimo. Tuttavia, si applicano i vincoli standard; se una zona è fuori dai nodi, non viene eseguito il provisioning di altri nodi per soddisfare il minimo configurato. Bigtable continua a tentare di aggiungere nodi e crea una voce di audit log per ogni tentativo non riuscito finché non riesce a scalare il cluster in base al nuovo numero minimo di nodi. Bigtable non modifica il valore configurato in questa situazione. Di conseguenza, potresti notare che il numero di nodi del cluster è inferiore al minimo fino al completamento della scalabilità.

Ottimizzazione delle impostazioni

Tieni d'occhio l'utilizzo dei nodi e modifica le impostazioni se necessario, soprattutto dopo aver abilitato la scalabilità automatica per la prima volta.

Account per la replica

In un'istanza che utilizza la replica, le impostazioni di scalabilità automatica e l'attività di ogni cluster sono completamente indipendenti da quelle degli altri cluster dell'istanza. Devi configurare la modalità di scalabilità per ciascun cluster in un'istanza.

In generale, per le istanze replicate, ti conviene abilitare la scalabilità automatica per ogni cluster dell'istanza. La configurazione della scalabilità automatica sarà spesso la stessa per ogni cluster nell'istanza, ma potrebbe essere diversa a seconda del caso d'uso, del carico di lavoro e dei requisiti di prestazioni per ogni cluster.

Poiché i cluster in un'istanza replicata eseguono operazioni aggiuntive per la gestione della replica, devi scegliere un numero massimo più elevato di nodi rispetto a un'istanza a cluster singolo. Per saperne di più, consulta Replica e prestazioni.

Controllo dell'accesso

Per configurare la scalabilità automatica, devi essere un'entità in un ruolo che dispone delle autorizzazioni create e update per il cluster e l'istanza che stai configurando.

Monitoraggio

Bigtable fornisce diverse metriche per aiutarti a comprendere il funzionamento della scalabilità automatica di Bigtable durante lo scale up e lo scale down per soddisfare i requisiti del carico di lavoro. Le metriche possono anche aiutarti a valutare se le impostazioni sono ottimali per soddisfare i requisiti di costo e carico di lavoro dell'azienda. Ad esempio, se noti che il numero di nodi per un cluster è spesso vicino al numero massimo di nodi, potresti prendere in considerazione di aumentare il numero massimo. Per scoprire di più sul monitoraggio delle risorse Bigtable, consulta Monitoraggio di un'istanza.

Le seguenti metriche vengono visualizzate nei grafici nella pagina Panoramica dei cluster nella console Google Cloud. Puoi visualizzare queste metriche anche utilizzando Cloud Monitoring.

  • bigtable.googleapis.com/cluster/autoscaling/min_node_count
  • bigtable.googleapis.com/cluster/autoscaling/max_node_count
  • bigtable.googleapis.com/cluster/autoscaling/recommended_node_count_for_cpu
  • bigtable.googleapis.com/cluster/autoscaling/recommended_node_count_for_storage

Logging

Bigtable emette un audit log degli eventi di sistema ogni volta che scala un cluster. La voce di log è simile alla seguente:

Grew from 9 to 10 nodes to maintain CPU utilization at 60%.

Puoi visualizzare i log degli eventi di sistema con scalabilità automatica nella pagina della panoramica del cluster Bigtable nella console Google Cloud. Puoi anche visualizzarli utilizzando Esplora log:

  1. Vai a Esplora log:

    Vai a Esplora log

    Seleziona il progetto Google Cloud appropriato.

  2. Nel campo Query, inserisci quanto segue:

    resource.type="audited_resource" resource.labels.service="bigtableadmin.googleapis.com"
    resource.labels.method="AutoscaleCluster"
    
  3. Fai clic su Esegui query.

    Il riquadro Risultati delle query mostra i log dell'ultima ora.

Per scoprire di più sulla visualizzazione dei log, consulta Cloud Logging.

Passaggi successivi