Scalabilità

Il scaling di un cluster è il processo di aggiunta o rimozione di nodi da un cluster in risposta alle variazioni delle esigenze di archiviazione dei dati o del carico di lavoro del cluster.

Puoi scalare un cluster Bigtable nei seguenti modi:

Nella maggior parte dei casi, scegli la scalabilità automatica. Quando attivi la scalabilità automatica per un cluster, Bigtable lo monitora continuamente e regola automaticamente il numero di nodi in base alle tue impostazioni.

Puoi scalare il cluster Bigtable in base a metriche come l'utilizzo della CPU del cluster. Ad esempio, se il cluster è sotto un carico elevato e il suo utilizzo della CPU è elevato, puoi aggiungere nodi al cluster fino a quando l'utilizzo della CPU non diminuisce. Puoi anche risparmiare rimuovendo i nodi dal cluster quando non viene utilizzato intensamente.

Fattore di scalabilità del nodo

Quando crei un cluster Bigtable, hai la possibilità di configurarlo con un fattore di scalabilità dei nodi 2x. Quando scegli questa configurazione, Bigtable tratta due nodi standard come un singolo nodo di calcolo più grande e il cluster viene sempre scalato in incrementi di due nodi. Di conseguenza, ci sono meno confini di calcolo tra i nodi del cluster. A seconda del carico di lavoro, i vantaggi della scalabilità dei nodi 2x includono quanto segue:

  • Maggiore stabilità della latenza di coda e della velocità in uscita
  • Maggiore capacità di assorbire gli hotspot

Puoi creare un cluster con il fattore di scalabilità dei nodi 2x abilitato quando utilizzi la console Google Cloud o la CLI gcloud.

Puoi configurare la scalabilità dei nodi 2x con la scalabilità automatica o l'allocazione manuale dei nodi.

Per le limitazioni, vedi Limiti del fattore di scalabilità del nodo.

Piccoli cluster

La scalabilità dei nodi 2x è ottimale per carichi di lavoro più grandi. Se stai valutando la possibilità di passare dalla scalabilità dei nodi standard (con un fattore pari a 1) a quella dei nodi 2x, valuta le implicazioni in termini di costi. Per un carico di lavoro più piccolo, ad esempio quello eseguito su un cluster con un nodo, l'utilizzo della scalabilità dei nodi 2x costa il doppio. Allo stesso modo, l'utilizzo della scalabilità dei nodi 2x per un carico di lavoro che in precedenza veniva eseguito su un cluster con 3 nodi aumenta i costi del 33%.

D'altra parte, per un carico di lavoro che in precedenza veniva eseguito su un cluster di grandi dimensioni, ad esempio un cluster con 50 nodi, l'effetto di un fattore di scalabilità dei nodi 2x è ridotto rispetto al numero di nodi.

Bigtable restituisce un errore se provi a creare un cluster con un fattore di scalabilità dei nodi 2x in una zona non supportata.

Limitazioni

La scalabilità del cluster è soggetta alla disponibilità dei nodi, richiede tempo per essere completata, non può compensare un design dello schema inappropriato e deve essere eseguita gradualmente. Le seguenti sezioni descrivono queste limitazioni, nonché quelle che si applicano al ridimensionamento dei nodi 2x.

Disponibilità dei nodi

Le quote dei nodi si applicano indipendentemente dal fatto che in un cluster sia attivata l'allocazione manuale dei nodi o la scalabilità automatica. Per maggiori dettagli, consulta Quote e disponibilità dei nodi.

Ritardo durante il riequilibrio dei nodi

Dopo aver aggiunto nodi a un cluster, possono trascorrere fino a 20 minuti sotto carico prima che si noti un miglioramento significativo delle prestazioni del cluster. Di conseguenza, se il tuo workload prevede brevi picchi di attività elevata, l'aggiunta di nodi al tuo cluster in base al carico della CPU non migliora le prestazioni. Quando Bigtable riequilibra i dati, il breve picco di attività sarà terminato.

Per pianificare questo ritardo, puoi aggiungere nodi al cluster, in modo programmatico o tramite la console Google Cloud, prima di aumentare il carico sul cluster. Questo approccio offre a Bigtable il tempo di ribilanciare i dati sui nodi aggiuntivi prima che il carico di lavoro aumenti. Nei cluster che utilizzano l'allocazione manuale dei nodi, modifica il numero di nodi. Nei cluster che utilizzano la scalabilità automatica, modifica il numero minimo di nodi. Quando il traffico torna alla normalità, ripristina le impostazioni del nodo.

Aumento della latenza causato da una riduzione troppo rapida

Quando riduci il numero di nodi in un cluster per eseguire lo scale down, cerca di non ridurre la dimensione del cluster di più del 10% in un periodo di 10 minuti. Se la riduzione avviene troppo rapidamente, possono verificarsi problemi di prestazioni, ad esempio un aumento della latenza, se i nodi rimanenti del cluster vengono temporaneamente sovraccaricati.

Problemi di progettazione dello schema

Se si verificano problemi con la progettazione dello schema della tabella, l'aggiunta di nodi al cluster Bigtable potrebbe non migliorare il rendimento. Ad esempio, se hai un numero elevato di letture o scritture in una singola riga della tabella, tutte le letture o le scritture verranno eseguite nello stesso nodo del cluster. Di conseguenza, l'aggiunta di nodi non migliora le prestazioni. Al contrario, se le letture e le scritture sono distribuite uniformemente tra le righe della tabella, in genere l'aggiunta di nodi migliorerà le prestazioni.

Consulta Progettare lo schema per informazioni dettagliate su come progettare uno schema che consenta a Bigtable di scalare in modo efficace.

Limitazioni del fattore di scalabilità dei nodi

Non puoi convertire un cluster con il ridimensionamento dei nodi standard in modo da utilizzare il ridimensionamento dei nodi 2x. Devi creare un nuovo cluster e attivare il ridimensionamento dei nodi 2x al momento della creazione. Per maggiori informazioni sull'aggiunta di un cluster a un'istanza, consulta Modificare un'istanza.

Non puoi configurare la scalabilità dei nodi 2x per un cluster HDD.

Puoi creare cluster configurati con la scalabilità dei nodi in incrementi di 2 in ogni regione Bigtable, ma non in ogni zona. Le seguenti zone non possono contenere un cluster con il doppio del numero di nodi:

  • asia-south1-c
  • europe-central2-c
  • me-central2-b
  • me-central2-c
  • northamerica-northeast1-a
  • northamerica-northeast1-b
  • southamerica-east1-c
  • us-south1-b
  • us-south1-c

Passaggi successivi