Scalabilità automatica

Questa pagina spiega come funziona la scalabilità automatica. Prima di leggere questa pagina, devi avere familiarità con la panoramica di Bigtable e con istanze, cluster e nodi.

In Bigtable, le istanze sono container per i cluster, che sono 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. Quando la scalabilità automatica è abilitata, Bigtable monitora continuamente il cluster e regola automaticamente il numero di nodi nel cluster quando necessario. La scalabilità automatica funziona sia sui cluster HDD che SSD, in tutte le regioni Bigtable.

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

Quando utilizzare la scalabilità automatica

Ti consigliamo di abilitare la scalabilità automatica nella maggior parte dei casi. I vantaggi della scalabilità automatica includono:

  • Costi: la scalabilità automatica può aiutarti a ottimizzare i costi perché Bigtable riduce il numero di nodi nel cluster ogni volta che è 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 workload cambia o quando si verifica un aumento dei requisiti di archiviazione dei dati. Ciò contribuisce a mantenere gli obiettivi di prestazioni del workload garantendo che il cluster disponga di nodi sufficienti per soddisfare i requisiti di utilizzo e spazio di archiviazione della CPU target.
  • Automazione: la scalabilità automatica riduce la complessità della gestione. Non devi monitorare e scalare manualmente le dimensioni del cluster o scrivere un'applicazione per eseguire queste attività, perché il servizio Bigtable le gestisce per te.

La scalabilità automatica da sola potrebbe non funzionare bene per i seguenti tipi di workload, perché anche se Bigtable aggiunge rapidamente nodi quando il traffico aumenta, potrebbe essere necessario del tempo per bilanciare i nodi aggiuntivi.

  • Traffico burst
  • Workload batch improvvisi

Se i picchi di utilizzo sono prevedibili o programmati regolarmente, puoi utilizzare lo scalabilità automatica e modificare le impostazioni prima dei picchi pianificati. Per informazioni dettagliate, consulta Ritardo durante il ribilanciamento dei nodi.

In memoria e scalabilità automatica

I cluster all'interno delle istanze della versione Enterprise Plus possono utilizzare il livello in memoria. Il livello in memoria di Bigtable utilizza la scalabilità verticale completamente gestita per il throughput, il che consente ai cluster di rispondere quasi istantaneamente ai picchi di traffico di lettura puntuale. Lo scaling verticale regola automaticamente ogni nodo per soddisfare le richieste del workload e si integra con la scalabilità automatica di Bigtable. Per saperne di più sui limiti di scalabilità verticale e sulla capacità di throughput in memoria, consulta Informazioni sulle prestazioni.

Quando la capacità in memoria raggiunge il limite, Bigtable scala automaticamente il cluster orizzontalmente in base alla configurazione di scalabilità automatica.

Come funziona la scalabilità automatica

La scalabilità automatica è il processo di scalabilità automatica, ovvero la 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. Quando il workload o le esigenze di archiviazione del cluster fluttuano, Bigtable aumenta la scalabilità, aggiungendo nodi al cluster, oppure riduce la scalabilità, rimuovendo 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 valore più alto. Ciò significa, ad esempio, che se il tuo 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 lo spazio di archiviazione, ribilanciando i dati tra i nodi, per garantire che il traffico sia distribuito in modo uniforme e che nessun nodo sia sovraccarico.

Dopo l'aumento delle dimensioni di un cluster, Bigtable ribilancia automaticamente i nodi del cluster per prestazioni ottimali. Tutte le richieste continuano a raggiungere il cluster mentre sono in corso scalabilità e ribilanciamento. Per ulteriori informazioni, consulta la sezione Limitazioni di scalabilità.

Se un cluster è stato scalato fino al numero massimo di nodi e il target di utilizzo della CPU è stato superato, le richieste potrebbero avere una latenza elevata o non riuscire. Se un cluster ha eseguito lo scale up fino al numero massimo di nodi e l'utilizzo dello spazio di archiviazione ha superato il limite, le richieste di scrittura non andranno a buon fine. Per ulteriori dettagli sui limiti di archiviazione, consulta Archiviazione per nodo.

Quando un nodo viene aggiunto a un cluster di piccole dimensioni, ad esempio un cluster a un nodo, potresti notare un aumento temporaneo della latenza durante il ribilanciamento del cluster. Questo perché il nodo aggiuntivo raddoppia proporzionalmente le dimensioni del cluster. Allo stesso modo, se un cluster diminuisce di dimensioni da due nodi a un nodo, potrebbe verificarsi una certa latenza.

Quando viene eseguito lo scale down di un cluster, i nodi vengono rimossi a una velocità inferiore rispetto a quando viene eseguito lo scale up, per evitare qualsiasi impatto sulla latenza. Per ulteriori dettagli, consulta la sezione Limitazioni 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 la destinazione 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 della CPU

Una percentuale della capacità della CPU del cluster. Può variare dal 10% all'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 ulteriori informazioni, vedi Determinare la destinazione dell'utilizzo della CPU.

Numero minimo di nodi

Il numero minimo di nodi a cui Bigtable ridimensionerà il cluster. Se la scalabilità dei nodi in incrementi di 2 è abilitata (impostazione predefinita per Enterprise Plus), questo deve essere un numero pari. 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 ulteriori informazioni, vedi Determinare il numero minimo di nodi.

Numero massimo di nodi

Il numero massimo di nodi a cui vuoi consentire al cluster di fare lo scale up. Se la scalabilità dei nodi in incrementi di 2 è abilitata (impostazione predefinita per Enterprise Plus), questo deve essere un numero pari. 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 che scegli per il numero minimo di nodi. Il requisito di 10 volte è un limite fisso. Per ulteriori informazioni, vedi Determinare il numero massimo di nodi.

Target di utilizzo dello spazio di archiviazione

Il numero massimo di terabyte per nodo che puoi archiviare nei cluster SSD o HDD prima che Bigtable aumenti le risorse. Questo target garantisce di avere sempre nodi sufficienti per gestire le fluttuazioni della quantità di dati che archivi. Per saperne di più, consulta Determinare il target di utilizzo dello spazio di archiviazione. Questo target non include il livello di accesso infrequente.

Utilizzo combinato di SSD e accesso sporadico

Il numero massimo di terabyte per nodo che puoi archiviare nei cluster SSD e ad accesso sporadico prima che Bigtable aumenti le risorse. Questo target garantisce di avere sempre nodi sufficienti per gestire le fluttuazioni della quantità di dati archiviati. Per saperne di più, consulta la sezione Archiviazione a livelli e scalabilità automatica di questo documento.

Configura scalabilità automatica

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

Determinare il target di utilizzo della CPU

Basare il target di utilizzo della CPU sul tuo carico di lavoro unico. Il target ottimale per il cluster dipende dai requisiti di latenza e velocità effettiva del workload. Per saperne di più, consulta Pianificare la capacità di Bigtable.

In generale, se osservi una latenza inaccettabilmente elevata, devi ridurre l'utilizzo della CPU target.

Determinare il target di utilizzo dello spazio di archiviazione

Se la tua applicazione è sensibile alla latenza, mantieni l'utilizzo dello spazio di archiviazione inferiore al 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 ulteriori informazioni, consulta Pianificare la capacità di Bigtable.

Per la scalabilità automatica, l'utilizzo dello spazio di archiviazione è espresso come numero di byte di spazio di archiviazione per nodo anziché come percentuale. Il target di utilizzo dello spazio di archiviazione è specificato per nodo, ma viene applicato all'intero cluster. I limiti di capacità per i nodi sono 5 TB per nodo per l'archiviazione SSD e 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, mentre gcloud CLI, l'API e le librerie client 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

Archiviazione a livelli e scalabilità automatica

L'archiviazione a livelli (anteprima) non influisce sul autoscaling SSD descritto nella sezione Determinare la destinazione di utilizzo dello spazio di archiviazione di questo documento. Quando attivi l'accesso sporadico nell'ambito dell'archiviazione a livelli, la scalabilità automatica si assicura inoltre che lo spazio di archiviazione SSD e ad accesso sporadico combinato non superi il limite di spazio di archiviazione per nodo, a seconda della versione. Quando il limite viene raggiunto, Bigtable esegue lo scale up automaticamente.

  • Versione Enterprise: il limite è 32 TB per nodo.
  • Versione Enterprise Plus: il limite è 32 TB per nodo o 64 TB per nodo, se è attivato lo scaling dei nodi 2x.

Ad esempio, in un cluster SSD, se imposti un target di utilizzo dello spazio di archiviazione di 2, 5 TB (50%) per nodo e il tuo utilizzo dell'accesso sporadico è sufficientemente elevato da superare il limite di utilizzo dello spazio di archiviazione con l'archiviazione a livelli, Bigtable aggiunge nodi. Ciò si verifica anche se l'utilizzo dell'SSD rimane entro il 50% target.

La seguente tabella ti aiuta a capire in che modo la scalabilità automatica consiglia un numero di nodi in base all'utilizzo di SSD e all'utilizzo di accesso non frequente:

Scenario Target di utilizzo dello spazio di archiviazione Percentuale di utilizzo Utilizzo SSD Utilizzo dell'accesso sporadico Spazio di archiviazione SSD e ad accesso sporadico combinato Numero di nodi consigliato
L'utilizzo dell'SSD rientra nell'intervallo target e non è presente un utilizzo di accesso non frequente. 5 TB 100% Meno di 5 TB 0 TB Meno di 5 TB 1
L'utilizzo dell'SSD supera il limite di spazio di archiviazione per nodo. 5 TB 100% 6 TB 0 TB 6 TB 2
L'utilizzo di SSD e dell'accesso sporadico rientra nel limite di archiviazione a livelli. 5 TB 100% 5 TB 27 TB 32 TB 1
L'utilizzo dello spazio di archiviazione a più livelli supera il limite previsto. 5 TB 100% 5 TB 28 TB 33 TB 2
L'utilizzo dell'SSD supera quasi il target di utilizzo dell'SSD e non è presente un utilizzo di accesso non frequente. 3 TB 60% 3 TB 0 TB 3 TB 1
L'utilizzo dell'SSD supera quasi il target di utilizzo dell'SSD e l'utilizzo a livelli supera quasi il limite di spazio di archiviazione a livelli. 3 TB 60% 3 TB 29 TB 32 TB 1
L'utilizzo dell'SSD supera la destinazione di spazio di archiviazione SSD e non è presente un utilizzo ad accesso sporadico. 2,5 TB 50% 4 TB 0 TB 4 TB 2
L'utilizzo a più livelli supera il limite di spazio di archiviazione a più livelli. 2,5 TB 50% 2 TB 31 TB 33 TB 2

Per saperne di più sull'archiviazione a livelli, consulta la panoramica dell'archiviazione a livelli.

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 tuo workload, anche se non prevedi di raggiungere questo volume la maggior parte del tempo. Bigtable non esegue mai lo scale up a un numero di nodi superiore a quello necessario. Puoi anche considerare questo numero come il numero massimo di nodi che sei disposto a 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 passando dall'allocazione manuale alla scalabilità automatica, trova il numero massimo di nodi che il cluster ha avuto nell'ultimo mese circa. Il valore massimo della scalabilità automatica deve essere almeno pari a questo numero.

Se abiliti la scalabilità automatica per un nuovo cluster in un'istanza esistente, utilizza le metriche di altri cluster nell'istanza come punto di riferimento.

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 e poi modificare il numero in un secondo momento.

Se hai attivato l'archiviazione a livelli, devi tenere conto del limite di spazio di archiviazione di 32 TB per nodo (Enterprise) o 64 TB (Enterprise Plus). Anche se l'utilizzo dell'SSD è basso, un volume elevato di dati nel livello di accesso infrequente può attivare lo scaling dei nodi.

Per ottenere questo numero, stima la quantità di dati che prevedi di archiviare nel cluster, quindi dividi questo numero per l'obiettivo di utilizzo dello spazio di archiviazione per il tipo di spazio di archiviazione che utilizzi.

Ad esempio, se memorizzi 10 TB su un cluster SSD, puoi dividere 10 TB per 2,5 TB, ovvero l'utilizzo target dell'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 valore massimo deve essere un numero superiore a questo.

Utilizzando la stessa formula, i seguenti esempi mostrano il numero di nodi di cui potresti aver bisogno per alcuni importi di spazio di archiviazione di esempio:

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

Dopo che il cluster è attivo e 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.

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 efficiente in termini di costi se possibile. Il cluster non diventa mai troppo piccolo perché Bigtable impedisce automaticamente che il numero di nodi scenda al di sotto del minimo necessario per mantenere i target di utilizzo della CPU e dello spazio di archiviazione. Per i dettagli sui valori accettati, consulta la sezione Parametri di scalabilità automatica.

Tuttavia, in molti casi vorrai 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 di scalabilità di picco, durante il quale prevedi un aumento temporaneo del traffico e vuoi assicurarti di avere capacità sufficiente.
  • La tua applicazione invia traffico con picchi. Quando vengono aggiunti nuovi nodi, Bigtable esegue automaticamente il ribilanciamento sui nuovi nodi. Poiché questo processo può richiedere diversi minuti, spesso è meglio adottare un approccio prudente e scegliere un valore minimo più alto in modo che il cluster possa gestire senza problemi i picchi.
  • Aumenti il numero massimo di nodi. Il valore minimo deve essere sempre pari o inferiore al 10% del numero massimo di nodi. Ad esempio, se imposti il valore massimo su 30, devi impostare il valore minimo su almeno 3.

Se aumenti il valore del numero minimo di nodi di un cluster, Bigtable tenta immediatamente di scalare il cluster al nuovo minimo. Tuttavia, si applicano i vincoli standard; se una zona non ha nodi, non vengono eseguito il provisioning di nodi aggiuntivi per soddisfare il minimo configurato. Bigtable continua a tentare di aggiungere nodi e crea una voce di log di controllo 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 notare che il numero di nodi del cluster è inferiore al minimo finché il ridimensionamento non è completato.

Ottimizzare le impostazioni

Dopo aver attivato la scalabilità automatica, è importante monitorarne il comportamento e modificare le impostazioni in base alle esigenze. Utilizza le metriche di monitoraggio per osservare quanto segue:

  • Conteggi dei nodi consigliati: presta particolare attenzione alle metriche recommended_node_count_for_cpu e recommended_node_count_for_storage. Queste metriche indicano il numero ideale di nodi in base ai target di utilizzo di CPU e spazio di archiviazione, rispettivamente.
  • Conteggio nodi di cui è stato eseguito il provisioning:confronta i conteggi nodi consigliati con il numero effettivo di nodi di cui è stato eseguito il provisioning. Se il tuo cluster utilizza costantemente più nodi di quelli consigliati, puoi valutare la possibilità di ridurre il numero minimo di nodi per ridurre i costi.
  • Conteggio massimo di nodi:assicurati che il numero massimo di nodi sia sufficientemente alto da consentire al cluster di fare lo scale up per soddisfare la domanda. Se noti che il cluster raggiunge spesso il numero massimo di nodi, aumentalo per fornire più capacità.

Puoi anche modificare l'utilizzo target della CPU per il rendimento. Se noti problemi di latenza, potresti dover ridurre il target di utilizzo della CPU per assicurarti che il cluster venga scalato in modo più aggressivo quando la domanda aumenta. Al contrario, se il cluster è costantemente sottoposto a overprovisioning e la latenza è accettabile, puoi prendere in considerazione l'aumento del target CPU.

Account per la replica

In un'istanza che utilizza la replica, le impostazioni e l'attività 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 dell'istanza. La configurazione della scalabilità automatica è 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 rendimento per ogni cluster.

Poiché i cluster in un'istanza replicata svolgono un lavoro aggiuntivo per gestire la replica, devi scegliere un numero massimo di nodi più elevato rispetto a un'istanza a un solo cluster. Per saperne di più, consulta Replica e rendimento.

Controllo degli accessi

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

Monitoraggio

Bigtable fornisce diverse metriche per aiutarti a capire come funziona la scalabilità automatica di Bigtable quando aumenta e diminuisce per soddisfare i requisiti del carico di lavoro. Le metriche possono anche aiutarti a valutare se le tue impostazioni sono ottimali per soddisfare i requisiti di carico di lavoro e costi della tua attività. Ad esempio, se noti che il numero di nodi per un cluster è spesso vicino al numero massimo di nodi, potresti prendere in considerazione l'aumento del 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 cluster della console Google Cloud . Puoi anche visualizzare queste metriche 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
  • Solo Enterprise Plus: bigtable.googleapis.com/memory_layer/request_unit_usage

Logging

Bigtable genera un log di controllo degli eventi di sistema ogni volta che esegue lo scale di 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 di scalabilità automatica nella pagina Panoramica del cluster Bigtable nella console Google Cloud . Puoi visualizzarli anche 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 saperne di più sulla visualizzazione dei log, consulta Cloud Logging.

Passaggi successivi