Scalabilità automatica
Questa pagina spiega come funziona la scalabilità automatica. Prima di leggere questa pagina, dovresti consulta la Panoramica di Bigtable e Istanze, cluster e nodi di Google.
In Bigtable, le istanze sono container per i cluster, specifiche per 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 di un cluster in un'istanza, puoi scegliere l'allocazione manuale dei nodi oppure 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 su cluster HDD che 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 di e includono quanto segue:
- Costi: la scalabilità automatica può aiutarti a ottimizzare i costi perché Bigtable riduce il numero di nodi nel tuo cluster possibile. Ciò può aiutarti a evitare il provisioning eccessivo.
- Prestazioni: la scalabilità automatica consente a Bigtable di aggiungere automaticamente nodi a un cluster quando cambia un carico di lavoro o c'è un aumento dei dati requisiti di archiviazione. Ciò aiuta a mantenere gli obiettivi di prestazioni del carico di lavoro assicurando che il cluster abbia un numero sufficiente di nodi per soddisfare la CPU target di utilizzo e requisiti di archiviazione.
- Automazione: la scalabilità automatica riduce la complessità di gestione. Non è necessario monitorare e scalare manualmente le dimensioni del cluster o scrivere un'applicazione eseguono queste attività, perché il servizio Bigtable te.
La scalabilità automatica da sola potrebbe non funzionare bene per i seguenti tipi di carichi di lavoro, anche se Bigtable aggiunge rapidamente nodi quando il traffico aumenta, 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. Vedi Posticipa durante viene ribilanciato il nodo per maggiori dettagli.
Come funziona la scalabilità automatica
La scalabilità automatica è il processo di scalabilità automatica, ovvero 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 per te. Quando il carico di lavoro o l'archiviazione del cluster devono variare, Bigtable puoi fare lo scale up, aggiungere nodi al cluster o eseguire lo scale down, 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. Bigtable utilizza automaticamente quello più alto. Ciò significa che, Ad esempio, se il cluster ha bisogno di 10 nodi per soddisfare l'utilizzo dello spazio di archiviazione, ma 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 la distribuzione del traffico in modo uniforme e nessun nodo è sovraccarico.
Dopo lo scale up di un cluster, Bigtable esegue automaticamente il ribilanciamento dei nodi nel tuo cluster per ottenere prestazioni ottimali. Tutte le richieste continuano a raggiungere il cluster mentre sono in corso la scalabilità e il ribilanciamento. Consulta Scalabilità limitazioni per ulteriori informazioni.
Se un cluster ha fatto lo scale up fino al numero massimo di nodi e la CPU di utilizzo del target di utilizzo superato, le richieste potrebbero avere una latenza elevata o non riuscire. Se ha fatto lo scale up fino al numero massimo di nodi e allo spazio di archiviazione limite di utilizzo viene superato, le richieste di scrittura non andranno a buon fine. Vedi Spazio di archiviazione per Node per ulteriori dettagli sui limiti di spazio di archiviazione.
Quando un nodo viene aggiunto a un piccolo cluster, ad esempio un cluster a un nodo, osservare un aumento temporaneo della latenza durante il ribilanciamento del cluster. 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, che potrebbe verificarsi una latenza.
Quando viene fatto lo scale down di un cluster, i nodi vengono rimossi a una velocità inferiore rispetto a quando fare lo 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 lasciarlo sul valore predefinito, pari al 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 di utilizzo della CPU del cluster supera il target che hai impostato Bigtable aggiunge immediatamente nodi al cluster. Quando la CPU è notevolmente inferiore al target, Bigtable e rimuove i nodi. Per indicazioni, consulta Determinazione della CPU di utilizzo del target. |
Numero minimo di nodi |
Il numero più basso di nodi in cui Bigtable scala in un cluster Kubernetes. Questo valore deve essere maggiore di zero e non può essere inferiore al 10% del valore impostato per il numero massimo di nodi. Per 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. Come guida, 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 il numero minimo di nodi. Il valore non può essere più di 10 volte superiore al numero scelto per il numero minimo di nodi. Questo requisito di 10 volte è limite rigido. Per indicazioni, consulta Determinare il e il 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 che tu abbia sempre dispongono di nodi sufficienti per gestire le fluttuazioni nella quantità di dati . 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 regola numeri, se necessario.
Determina il target di utilizzo della CPU
Basa il target di utilizzo della CPU sul carico di lavoro univoco. La il target ottimale per il cluster dipende dalla latenza e dalla velocità effettiva i requisiti del tuo carico di lavoro. Per ulteriori informazioni, consulta Pianificazione Capacità Bigtable.
In generale, se noti una latenza inaccettabile, devi abbassare le di utilizzo del modello.
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 uno spazio target di utilizzo del 70% o più. Per ulteriori informazioni, consulta Pianificazione Capacità Bigtable.
Per la scalabilità automatica, l'utilizzo dello spazio di archiviazione è espresso come il numero di byte per nodo, anziché in percentuale. Il target di utilizzo dello spazio di archiviazione è specificato per nodo, ma viene applicato all'intero cluster. I limiti di capacità sono pari a 5 TB per nodo per l'archiviazione SSD 16 TB per nodo per l'archiviazione HDD.
La tabella seguente mostra gli importi target per l'utilizzo tipico dello spazio di archiviazione percentuali target. 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 |
---|---|---|
L'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 scelto come numero massimo di nodi deve essere il numero di nodi di cui il cluster ha bisogno per gestire il traffico più intenso del tuo carico di lavoro, anche se non prevedi di raggiungere quel volume nella maggior parte dei casi. Bigtable non esegue mai lo scale up a più nodi del necessario. Puoi anche pensare a questo numero ovvero il numero più alto di nodi che intendi pagare. Consulta la sezione Scalabilità automatica. parametri per i dettagli sui valori accettati.
Il numero massimo deve essere consentito sia per il target di utilizzo della CPU impostato da te e 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 tuo il valore massimo della scalabilità automatica deve essere almeno quel numero.
Se stai abilitando la scalabilità automatica per un nuovo cluster in un cluster istanza, usa come guida le metriche di altri cluster nell'istanza.
Se hai un nuovo carico di lavoro e non sai come crescerà, può stimare il numero di nodi necessari per soddisfare lo spazio di archiviazione integrato e poi modificare il numero in un secondo momento.
Per arrivare a questo numero, stima la quantità di dati che prevedi di archiviare al cluster e dividerlo per il target di utilizzo dello spazio di archiviazione 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 massimo dovrebbe essere un numero superiore.
Utilizzando la stessa formula, i seguenti esempi mostrano il numero di nodi che potrebbero essere necessarie 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 è attivo e in esecuzione con la scalabilità automatica abilitata, monitora
cluster e assicurati che il valore scelto per il numero massimo
di nodi è 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 assicurarti che Bigtable può fare lo scale down alla dimensione più piccola ed economicamente più vantaggiosa 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 e mantenere i target di utilizzo di CPU e spazio di archiviazione. Consulta la sezione Scalabilità automatica. parametri per i dettagli sui valori accettati.
Tuttavia, in molti casi è consigliabile impostare questo valore su più di uno. Scegli maggiore o aumenta il numero minimo di nodi per i seguenti situazioni seguenti:
- Hai in programma un evento imminente, ad esempio il Cyber Monday, in cui prevedi che di aumentare temporaneamente il traffico e vuoi assicurarti di avere abbastanza e la capacità di archiviazione.
- La tua applicazione invia traffico picchi. Quando vengono aggiunti nuovi nodi, Bigtable viene ribilanciato automaticamente nei nuovi nodi. Poiché questa procedura può richiedere diversi minuti, spesso è preferibile dedicare conservativo e scegliendo un minimo più alto in modo che il cluster possa per far fronte perfettamente ai picchi.
- Aumenti il numero massimo di nodi. Il minimo deve sempre essere dieci percentuale o inferiore del numero massimo di nodi. Ad esempio, se imposti il parametro il valore minimo è 30, il valore minimo deve essere almeno 3.
Se aumenti il valore per il numero minimo di nodi di un cluster, Bigtable tenta immediatamente di scalare il cluster al nuovo minimo. Si applicano i vincoli standard, tuttavia: se una zona è fuori dai nodi, non viene eseguito il provisioning di nodi aggiuntivi per soddisfare il minimo configurato. Bigtable continua a tentare di aggiungere nodi e crea una voce di audit log per ogni tentativo non riuscito scala il cluster al nuovo numero minimo di nodi. Bigtable non modifica il valore configurato in questa situazione. Di conseguenza, potresti si osserva che il numero di nodi del cluster è inferiore al minimo finché la scalabilità è completata.
Ottimizzazione delle impostazioni
Tieni d'occhio l'utilizzo dei nodi e modifica le impostazioni se necessario, in particolare dopo aver abilitato la scalabilità automatica.
Account per la replica
In un'istanza che utilizza la replica, le impostazioni di scalabilità automatica di ogni cluster sono completamente indipendenti da quelle degli altri cluster in esecuzione in un'istanza Compute Engine. Devi configurare la modalità di scalabilità per ciascun cluster in un'istanza.
In generale, per le istanze replicate, dovresti abilitare la scalabilità automatica in un cluster Kubernetes. La configurazione della scalabilità automatica sarà spesso la stessa per ogni cluster nell'istanza, ma potrebbe essere diverso a seconda dell'uso di richieste di assistenza, carichi di lavoro e prestazioni per ogni cluster.
Poiché i cluster in un'istanza replicata svolgono alcune attività aggiuntive gestire la replica, devi scegliere un numero massimo più elevato di nodi rispetto a un'istanza a cluster singolo. Per scoprire di più, consulta Repliche e prestazioni.
Controllo degli accessi
Per configurare la scalabilità automatica, devi essere un'entità in un ruolo con
Autorizzazioni create
e update
per il cluster e l'istanza che stai configurando.
Monitoraggio
Bigtable offre diverse metriche per aiutarti a comprendere La scalabilità automatica di Bigtable funziona mentre esegue lo scale up e lo scale down per soddisfare requisiti dei carichi di lavoro. Le metriche possono anche aiutarti a valutare se le tue sono ideali per soddisfare le esigenze di costo e carico di lavoro dell'azienda. Per Ad esempio, se noti che il numero di nodi per un cluster è spesso vicino al di nodi, valuta la possibilità di aumentare il numero massimo. Per scoprire di più sul monitoraggio delle risorse Bigtable, consulta Monitoraggio di in esecuzione.
Le seguenti metriche vengono visualizzate nei grafici pagina della panoramica del cluster nella console Google Cloud. Puoi anche visualizzare questi 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 in un cluster Kubernetes. 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 nel cluster Bigtable pagina Panoramica nella console Google Cloud. Puoi anche visualizzarle utilizzando Esplora log:
Vai a Esplora log:
Seleziona il progetto Google Cloud appropriato.
Nel campo Query, inserisci quanto segue:
resource.type="audited_resource" resource.labels.service="bigtableadmin.googleapis.com" resource.labels.method="AutoscaleCluster"
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
- Abilita la scalabilità automatica su un cluster esistente.
- Informazioni sulle prestazioni di Bigtable.