Scalabilità automatica

Questa pagina spiega come funziona l'autoscaling. Prima di leggere questa pagina, devi conoscere la Panoramica di Bigtable e le sezioni Istanze, cluster e nodi.

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

Con l'allocazione manuale dei nodi, il numero di nodi nel cluster rimane costante fino a quando non lo modifichi. Quando la scalabilità automatica è attivata, Bigtable monitora continuamente il cluster e regola automaticamente il numero di nodi al suo interno, se necessario. La scalabilità automatica funziona sia sui cluster HDD che su quelli SSD, in tutte le regioni Bigtable.

Puoi configurare l'autoscaling nella console Google Cloud, utilizzando gcloud o la libreria client Cloud Bigtable per Java.

Quando utilizzare la scalabilità automatica

Nella maggior parte dei casi, ti consigliamo di attivare la scalabilità automatica. I vantaggi dell'autoscaling 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 i nodi a un cluster quando un carico di lavoro cambia o quando aumentano i requisiti di archiviazione dei dati. In questo modo, puoi mantenere gli obiettivi di prestazioni del carico di lavoro assicurandoti che il cluster disponga di nodi sufficienti per soddisfare i requisiti di utilizzo della CPU e di archiviazione target.
  • Automazione: la scalabilità automatica riduce la complessità della gestione. Non è necessario monitorare e scalare manualmente le dimensioni del cluster o scrivere un'applicazione per eseguire queste attività, perché il servizio Bigtable lo 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 i nodi quando il traffico aumenta, può essere necessario del tempo per bilanciare i nodi aggiuntivi.

  • Traffico irregolare
  • Carichi di lavoro batch improvvisi

Se i picchi di utilizzo sono prevedibili o programmati regolarmente, puoi utilizzare il ridimensionamento automatico e modificare le impostazioni prima dei picchi pianificati. Per informazioni dettagliate, consulta Ritardo durante il riequilibrio dei nodi.

Come funziona la scalabilità automatica

La scalabilità automatica è il processo di scalabilità, o modifica delle dimensioni, di un cluster aggiungendo o rimuovendo nodi. Quando attivi la scalabilità automatica, Bigtable regola automaticamente le dimensioni del cluster. Quando le esigenze di archiviazione o di carico di lavoro del cluster variano, Bigtable esegue la scalabilità verso l'alto aggiungendo nodi al cluster o esegue la scalabilità verso il basso 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 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 esegue il ridimensionamento del cluster a 12 nodi.

Quando il numero di nodi cambia, Bigtable ottimizza continuamente lo spazio di archiviazione, riequilibrando i dati tra i nodi per garantire che il traffico venga distribuito in modo uniforme e che nessun nodo sia sovraccaricato.

Dopo aver aumentato le dimensioni di un cluster, Bigtable riequilibra automaticamente i nodi del cluster per prestazioni ottimali. Tutte le richieste continuano a raggiungere il cluster mentre sono in corso le operazioni di ridimensionamento e riequilibrio. Per ulteriori informazioni, consulta la sezione Limiti di scalabilità.

Se un cluster è stato scalato fino al numero massimo di nodi e il target di utilizzo della CPU viene superato, le richieste potrebbero avere una latenza elevata o non riuscire. Se un cluster è stato scalato 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. Per ulteriori dettagli sui limiti di spazio di archiviazione, consulta Spazio di archiviazione per node.

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 durante il riequilibrio del cluster. Questo accade perché il nodo aggiuntivo raddoppia proporzionalmente le dimensioni del cluster. Analogamente, se le dimensioni di un cluster diminuiscono da due nodi a uno, potrebbe verificarsi un po' di latenza.

Quando viene eseguito lo scale down di un cluster, i nodi vengono rimossi a una velocità inferiore rispetto allo scale up per evitare ripercussioni sulla latenza. Per ulteriori dettagli, consulta le 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, i nodi minimi e i nodi massimi. Puoi configurare l'obiettivo di utilizzo dello spazio di archiviazione o lasciare quello 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 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 minimo di nodi a cui Bigtable ridurrà 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 fino 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 scelto per il numero minimo di nodi. Questo requisito di 10 volte è un limite massimo. 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 che Bigtable esegua l'upgrade. Questo target ti garantisce di avere 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

Basate il target di utilizzo della CPU sul vostro carico di lavoro specifico. Il target ottimale per il cluster dipende dai requisiti di latenza e throughput del tuo carico di lavoro. Per saperne di più, consulta Pianificare la capacità di Bigtable.

In generale, se noti una latenza inaccettabilmente elevata, devi abbassare il valore 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 obiettivo di utilizzo dello spazio di archiviazione pari o superiore al 70%. Per saperne di più, consulta Pianificare la capacità di Bigtable.

Per la scalabilità automatica, l'utilizzo dello spazio di archiviazione è espresso in termini di numero di byte di archiviazione per nodo anziché in 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 5 TB per nodo per lo spazio di archiviazione SSD e 16 TB per nodo per lo spazio di archiviazione HDD.

La tabella seguente mostra gli importi target per le percentuali target di utilizzo dello spazio di archiviazione. La console Google Cloud accetta il valore in TB per nodo, mentre l'interfaccia a riga di comando gcloud CLI'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

Determina il numero massimo di nodi

Il valore scelto come numero massimo di nodi deve corrispondere al numero di nodi di cui il cluster ha bisogno per gestire il traffico più elevato del tuo carico di lavoro, anche se non prevedi di raggiungere questo volume la maggior parte del tempo. Bigtable non esegue mai l'upgrade a più nodi di quelli necessari. Puoi anche considerare questo numero come il numero massimo di nodi per cui sei disposto a pagare. Per informazioni dettagliate sui valori accettati, consulta la sezione Parametri di scalabilità automatica.

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

Se stai passando da un'allocazione manuale a una scalabilità automatica per un cluster, individua il numero più elevato di nodi che il cluster ha avuto nell'ultimo mese circa. Il valore massimo della scalabilità automatica deve essere almeno uguale a questo numero.

Se stai attivando la scalabilità automatica per un nuovo cluster in un'istanza esistente, utilizza le metriche di altri cluster nell'istanza come 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 modificarlo in un secondo momento.

Per ottenere questo numero, stima la quantità di dati che prevedi di archiviare sul cluster e poi 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 in grado di gestire quella quantità di dati e il valore massimo deve essere un numero superiore.

Utilizzando la stessa formula, i seguenti esempi mostrano il numero di nodi di cui potresti avere bisogno per alcuni volumi 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 aver attivato la scalabilità automatica, 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 le dimensioni al minimo e al costo più conveniente, se possibile. Il cluster non diventa mai troppo piccolo perché Bigtable impedisce automaticamente che il numero di nodi scenda al di sotto del numero minimo necessario per mantenere i target di utilizzo della CPU e dello spazio di archiviazione. Per informazioni dettagliate sui valori accettati, consulta la sezione Parametri di scalabilità automatica.

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

  • Hai in programma un evento, come il Cyber Monday, in cui prevedi un aumento temporaneo del traffico e vuoi assicurarti di avere una capacità sufficiente.
  • La tua applicazione invia traffico con picchi. Quando vengono aggiunti nuovi nodi, Bigtable esegue automaticamente il riequilibrio sui nuovi nodi. Poiché questa operazione può richiedere diversi minuti, spesso è meglio adottare un approccio conservativo e scegliere un valore minimo più elevato in modo che il cluster possa adattarsi senza problemi agli picchi.
  • Aumenti il numero massimo di nodi. Il valore minimo deve sempre essere pari o inferiore al dieci percento 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 valore minimo. Tuttavia, vengono applicati i vincoli standard. Se una zona non dispone di 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 log di controllo per ogni tentativo non riuscito fino a quando non espande 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 dell'operazione di scalabilità.

Ottimizzare le impostazioni

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

Tenere conto della replica

In un'istanza che utilizza la replica, le impostazioni e l'attività di scalabilità automatica di ciascun 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 attivare la scalabilità automatica per ogni cluster nell'istanza. La configurazione della scalabilità automatica sarà spesso la stessa per ogni cluster dell'istanza, ma potrebbe essere diversa a seconda del caso d'uso, del carico di lavoro e dei requisiti di prestazioni per ciascun cluster.

Poiché i cluster in un'istanza replicata eseguono alcuni compiti aggiuntivi per gestire la replica, devi scegliere un numero massimo di nodi superiore rispetto a quello che sceglieresti per un'istanza a singolo cluster. Per scoprire di più, consulta Repliche e rendimento.

Controllo degli accessi

Per configurare la scalabilità automatica, devi essere un entità in 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 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 tue impostazioni sono ottimali per soddisfare i requisiti di costo e carico di lavoro della tua attività. Ad esempio, se noti che il numero di nodi di un cluster è spesso vicino al numero massimo di nodi, ti consigliamo di aumentare il valore massimo. Per scoprire di più sul monitoraggio delle risorse Bigtable, consulta Monitorare un'istanza.

Le seguenti metriche vengono visualizzate in grafici nella pagina Panoramica del cluster della 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 log di controllo degli eventi di sistema ogni volta che esegue la scalabilità 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 query mostra i log dell'ultima ora.

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

Passaggi successivi