Scalabilità automatica

Questa pagina spiega come funziona la scalabilità automatica e ti aiuta a determinare se la scalabilità automatica è adatta al tuo caso d'uso. Prima di leggere questa pagina, dovresti acquisire familiarità con Panoramica di Bigtable e Istanze, cluster e nodi.

In Bigtable , le istanze sono container per i cluster, ovvero risorse specifiche per la località che gestiscono le richieste. Ogni cluster ha uno o più nodi, ovvero le risorse di calcolo utilizzate per gestire i dati. Quando crei un cluster in un'istanza, scegli 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. Se la scalabilità automatica è abilitata, Bigtable monitora continuamente il cluster e regola automaticamente il numero di nodi al suo interno 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 o la libreria client di Cloud Bigtable per Java.

Quando utilizzare la scalabilità automatica

I vantaggi della scalabilità automatica includono quanto segue:

  • Costi: la scalabilità automatica può aiutarti a ottimizzare i costi in quanto Bigtable riduce il numero di nodi nel tuo cluster quando è possibile. In questo modo puoi 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 svolgere queste attività, poiché il servizio Bigtable le gestisce per te.

La scalabilità automatica è spesso la scelta migliore per le seguenti situazioni:

  • Modello di traffico diurno costante, come quello generato dai servizi di shopping online
  • Nuove applicazioni in attesa di una crescita organica
  • Carichi di lavoro nuovi per Bigtable

La scalabilità automatica potrebbe non funzionare bene per i seguenti tipi di carichi di lavoro perché, anche se Bigtable aggiunge rapidamente nodi quando il traffico aumenta, può impiegare tempo a bilanciare i nodi aggiuntivi.

  • Traffico intenso
  • Carichi di lavoro batch improvvisi

Se i picchi di utilizzo sono prevedibili o pianificati regolarmente, potresti essere in grado di 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à o modifica delle dimensioni di un cluster in modo automatico mediante l'aggiunta o la rimozione di nodi. Quando abiliti la scalabilità automatica, Bigtable regola automaticamente le dimensioni del cluster. Quando le esigenze di archiviazione o del carico di lavoro del cluster variano, Bigtable fa lo scale up, aggiunge nodi al cluster o fa 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 il numero più alto. Ciò significa, ad esempio, che se il tuo cluster ha bisogno di 10 nodi per soddisfare il target di utilizzo dello spazio di archiviazione e di 12 per soddisfare il target di utilizzo della CPU, Bigtable scala il cluster a 12 nodi.

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

Dopo lo scale up di un cluster, Bigtable riequilibra automaticamente i nodi al suo interno per ottimizzare le prestazioni. 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 una latenza elevata o avere esito negativo. Se un cluster ha fatto lo scale up fino al numero massimo di nodi e il limite di utilizzo dello spazio di archiviazione viene superato, le richieste di scrittura non andranno a buon fine. Consulta Spazio di archiviazione per nodo per ulteriori dettagli sui limiti di archiviazione.

Quando un cluster viene fatto lo scale down, i nodi vengono rimossi a una velocità inferiore rispetto allo scale up, per evitare qualsiasi impatto sulla latenza. Per ulteriori dettagli, vedi 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 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. Il valore può essere compreso tra 10% e 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 è sostanzialmente 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 fino a cui Bigtable farà lo scale down del 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 a cui vuoi consentire lo scale up del cluster. Questo valore deve essere maggiore di zero ed uguale o superiore al numero minimo di nodi. Il valore non può essere superiore a 10 volte il numero che scegli per il numero minimo di nodi. Questo requisito di 10 volte è un limite fisso. Per indicazioni, consulta Determinare il numero massimo di nodi.

Target di utilizzo dello spazio di archiviazione

Il numero massimo di terabyte per nodo che puoi archiviare prima dello scale up di Bigtable. Questo target garantisce che tu abbia sempre un numero sufficiente di nodi per gestire le fluttuazioni della 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 i suggerimenti, consulta Utilizzo della CPU e Scomparsa tra velocità effettiva elevata e bassa latenza per comprendere i motivi alla base dei suggerimenti.

In generale, se noti una latenza inaccettabilmente elevata, devi ridurre 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 un target di utilizzo dello spazio di archiviazione pari o superiore al 70%. Per maggiori dettagli, consulta 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é in percentuale. Il target per l'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 i volumi target per le percentuali tipiche del target di utilizzo dello spazio di archiviazione. La console Google Cloud accetta il valore in TB per nodo, mentre le librerie client 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

Determina il numero massimo di nodi

Il valore che scegli come numero massimo di nodi dovrebbe essere il numero di nodi necessari al cluster per gestire il traffico più intenso del tuo carico di lavoro, anche se non prevedi di raggiungere quel volume la maggior parte delle volte. Bigtable non è mai scale up a più nodi del necessario. Puoi considerare questo numero anche come il numero più alto di nodi che intendi pagare. Per informazioni dettagliate sui valori accettati, consulta Parametri di scalabilità automatica.

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ù alto di nodi presenti nel cluster nell'ultimo mese. La scalabilità automatica massima deve 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 di cui hai bisogno per soddisfare il target di utilizzo dello spazio di archiviazione integrato e 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 su un cluster SSD, puoi dividere 10 TB per 2,5 TB, che è 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 che possono gestire quella quantità di dati e il massimo deve essere un numero superiore a quello.

Utilizzando la stessa formula, i seguenti esempi mostrano il numero di nodi di cui potresti avere bisogno per alcuni valori 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 e con 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.

Determina il numero minimo di nodi

Puoi impostare il valore minimo su 1 per assicurarti che Bigtable possa fare lo scale down alla dimensione più piccola ed economica se possibile. Il cluster non diventa mai troppo piccolo perché Bigtable impedisce automaticamente che il numero dei nodi scenda al di sotto del minimo necessario per mantenere i target di utilizzo di CPU e spazio di archiviazione. Per informazioni dettagliate sui valori accettati, consulta Parametri di scalabilità automatica.

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:

  • Esiste un evento imminente, come il Cyber Monday, in cui prevedi che il traffico aumenti temporaneamente e vuoi assicurarti di disporre di capacità sufficiente.
  • La tua applicazione invia un traffico incalzante. Quando vengono aggiunti nuovi nodi, Bigtable esegue il ribilanciamento automatico con i nuovi nodi. Poiché questo processo può richiedere diversi minuti, spesso è preferibile adottare un approccio conservativo e scegliere un minimo più alto in modo che il cluster possa soddisfare senza problemi i picchi.
  • Aumenta il numero massimo di nodi. Il minimo deve essere sempre il 10% o meno del numero massimo di nodi. Ad esempio, se imposti il valore 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 al nuovo valore minimo. Tuttavia, si applicano i vincoli standard; se una zona è senza nodi, non viene eseguito il provisioning di nodi aggiuntivi per soddisfare il numero minimo configurato. Bigtable continua a tentare di aggiungere nodi e crea una voce di audit log per ogni tentativo non riuscito finché non scala correttamente il cluster al nuovo numero minimo di nodi. Bigtable non modifica il valore configurato in questa situazione. Di conseguenza, potresti osservare che il numero di nodi del cluster è inferiore al minimo fino al completamento della scalabilità.

Perfezionare le 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, l'attività e le impostazioni di scalabilità automatica di ogni cluster sono completamente indipendenti da quelle degli altri cluster nell'istanza. Devi configurare la modalità di scalabilità per ogni cluster in un'istanza.

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

Poiché i cluster in un'istanza replicata svolgono attività aggiuntive per gestire la replica, devi scegliere un numero massimo di nodi più elevato rispetto a quello che faresti per un'istanza a cluster singolo. Per scoprire 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 offre diverse metriche per aiutarti a comprendere il funzionamento della scalabilità automatica di Bigtable con lo scale up e lo scale down per soddisfare i requisiti del carico di lavoro. Le metriche consentono anche di valutare se le impostazioni sono ottimali per soddisfare i requisiti di carico di lavoro e di costo dell'azienda. Ad esempio, se noti che il numero di nodi per un cluster è spesso vicino al numero massimo di nodi, potresti valutare di aumentare il numero massimo. Per scoprire di più sul monitoraggio delle risorse Bigtable, consulta Monitoraggio di un'istanza.

Le seguenti metriche sono visualizzate in grafici nella pagina della panoramica del 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 eventi di sistema con scalabilità automatica nella pagina 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