Capacità di calcolo, nodi e unità di elaborazione

Questa pagina descrive la capacità di calcolo di Spanner e le due unità di misura utilizzate per quantificarla: nodi e unità di elaborazione.

Capacità di calcolo

La capacità di calcolo definisce la quantità di risorse del server e di archiviazione disponibili per i database in un'istanza. Quando crei un'istanza, specifichi la sua capacità di calcolo come un numero di unità di elaborazione o come un numero di nodi, dove 1000 unità di elaborazione corrispondono a un nodo.

L'unità di misurazione che utilizzi non è importante, a meno che tu non stia creando un'istanza con capacità di calcolo inferiore a 1000 unità di elaborazione (1 nodo); in questo caso, devi utilizzare le unità di elaborazione per specificare la capacità di calcolo dell'istanza.

Quando definisci o modifichi la capacità di calcolo su un'istanza, specifichi le unità di elaborazione in multipli di 100 (100, 200, 300 e così via). Quando il numero di unità di elaborazione raggiunge 1000, puoi specificare quantità maggiori come multipli di 1000 unità di elaborazione (1000, 2000, 3000 e così via) o come nodi (1, 2, 3 e così via).

Le istanze con meno di 1000 unità di elaborazione sono progettate per dimensioni di dati, query e carichi di lavoro più piccoli. Hanno risorse di calcolo limitate e ciò potrebbe portare a scalabilità e prestazioni non lineari per alcuni carichi di lavoro e potrebbe verificarsi un aumento intermittente delle latenze.

Limiti di archiviazione dei dati

Come descritto in dettaglio in Quote e limiti, per fornire disponibilità elevata e bassa latenza durante l'accesso a un database, Spanner utilizza la capacità di calcolo di un'istanza come base per determinare i limiti di archiviazione, seguendo le linee guida seguenti:

  • Per istanze più piccole di 1 nodo (1000 unità di elaborazione), Spanner assegna 409,6 GB di dati ogni 100 unità di elaborazione nel database.
  • Per istanze da 1 nodo o più grandi, Spanner assegna 4 TB di dati per ogni nodo. È disponibile una maggiore capacità di archiviazione (10 TB per nodo) in determinate configurazioni di istanze Spanner a livello di regione e più regioni. Per maggiori informazioni, consulta Miglioramenti delle prestazioni e dello spazio di archiviazione.

Ad esempio, per creare un'istanza per un database da 300 GB, puoi impostare la capacità di calcolo su 100 unità di elaborazione. Questa quantità di capacità di calcolo mantiene l'istanza al di sotto del limite finché il database non supera i 409,6 GB. Quando il database raggiunge queste dimensioni, devi aggiungere altre 100 unità di elaborazione per consentire la crescita del database. In caso contrario, Spanner potrebbe rifiutare le scritture sul database. Per maggiori informazioni, consulta Suggerimenti per l'utilizzo dello spazio di archiviazione dei database.

Spanner fattura lo spazio di archiviazione effettivamente utilizzato dalle istanze, non l'allocazione totale.

Prestazioni

I valori di velocità effettiva massima di lettura e scrittura che una determinata quantità di capacità di calcolo può fornire dipendono dalla configurazione dell'istanza, nonché dalla progettazione dello schema e dalle caratteristiche del set di dati. Per maggiori dettagli, consulta le sezioni sulle prestazioni della configurazione a livello di regione e sulle prestazioni della configurazione per più regioni.

Puoi utilizzare istanze con meno di 1000 unità di elaborazione per dimensioni dei dati, query e carichi di lavoro più piccoli. Per carichi di lavoro più grandi, le risorse di calcolo limitate potrebbero determinare scalabilità e prestazioni non lineari, con aumenti intermittenti delle latenze.

Configurazioni di istanze e capacità di calcolo

Come descritto in Configurazioni per una o più regioni, Spanner distribuisce un'istanza tra zone di una o più regioni per offrire prestazioni elevate e disponibilità elevata. Di conseguenza, Spanner distribuisce anche le risorse del server fornite dalla capacità di calcolo dell'istanza.

Ecco un diagramma che illustra questa distribuzione delle risorse del server.

Due istanze create con la configurazione di un'istanza a livello di regione

Questo diagramma illustra due istanze con configurazioni a livello di regione:

  • Istanza-A mostra un'istanza di 1000 unità di elaborazione (1 nodo) con la distribuzione della capacità di calcolo che utilizza risorse del server in ciascuna delle tre zone.
  • Istanza-B mostra un'istanza di 2000 unità di elaborazione (2 nodi) con la distribuzione della capacità di calcolo che utilizza risorse del server in ciascuna delle tre zone.

Tieni presente quanto segue in questo diagramma:

  • Per ogni istanza, Spanner alloca risorse server in ogni zona della configurazione regionale. Ogni risorsa del server per zona utilizza la replica dei dati nella sua zona. Per informazioni sulle repliche di dati nelle configurazioni delle istanze, consulta Configurazioni a livello di regione e più regioni. Per informazioni su come Spanner mantiene sincronizzate queste repliche di dati, consulta Replica.

  • Le risorse server per l'Istanza-A sono mostrate in caselle singole, mentre le risorse per l'Istanza-B sono mostrate in riquadri suddivisi in due parti. Questa differenza mostra che Spanner alloca le risorse server in modo diverso a seconda delle istanze di dimensioni diverse:

    • Per istanze con 1000 unità di elaborazione (1 nodo) o inferiori, Spanner alloca le risorse server in una singola attività server per zona.
    • Per istanze con più di 1000 unità di elaborazione (1 nodo), Spanner alloca le risorse server in più attività server per zona, con un'attività ogni 1000 unità di elaborazione. L'utilizzo di più attività server per zona offre prestazioni migliori e consente a Spanner di creare suddivisioni del database e offrire prestazioni ancora migliori.

Modificare la capacità di calcolo

Dopo aver creato un'istanza, puoi aumentarne la capacità di calcolo in un secondo momento. Nella maggior parte dei casi, le richieste vengono completate entro pochi minuti. In rare occasioni, il completamento di una scalabilità potrebbe richiedere fino a un'ora.

Nella maggior parte dei casi, puoi anche diminuire la capacità di calcolo. In alcuni casi non è possibile ridurre la capacità di calcolo:

  • Per rimuovere la capacità di calcolo, l'istanza dovrebbe archiviare più di 4 TB di dati per 1000 unità di elaborazione (1 nodo).
  • In base ai pattern di utilizzo storici, Spanner ha creato un numero elevato di split per i dati dell'istanza e, in alcuni rari casi, non sarebbe in grado di gestire le suddivisioni dopo aver rimosso la capacità di calcolo.

Nel secondo caso, potresti provare a ridurre la capacità di calcolo di quantità progressivamente più piccole fino a trovare la capacità minima necessaria a Spanner per gestire tutte le suddivisioni dell'istanza. Se l'istanza non richiede più molte suddivisioni a causa di una modifica dei pattern di utilizzo, Spanner potrebbe alla fine unire alcune suddivisioni e consentirti di provare a ridurre ulteriormente la capacità di calcolo dell'istanza dopo una o due settimane.

Quando rimuovi capacità di calcolo, monitora l'utilizzo della CPU e le latenze delle richieste in Cloud Monitoring per assicurarti che l'utilizzo della CPU rimanga inferiore al 65% per le istanze a livello di regione e al 45% per ogni regione nelle istanze multiregionali. Potresti riscontrare un aumento temporaneo delle latenze delle richieste durante la rimozione della capacità di calcolo.

Spanner non ha una modalità di sospensione. La capacità di calcolo di Spanner è una risorsa dedicata e, anche quando non esegui un carico di lavoro, Spanner esegue spesso lavori in background per ottimizzare e proteggere i dati.

Per modificare la capacità di calcolo, puoi utilizzare la console Google Cloud, Google Cloud CLI o le librerie client di Spanner. Per maggiori informazioni, consulta Modificare la capacità di calcolo.

Capacità di calcolo e repliche

Se devi fare lo scale up delle risorse del server e di archiviazione dell'istanza, aumenta la capacità di calcolo dell'istanza. Tieni presente che l'aumento della capacità di calcolo non aumenta il numero di repliche (che sono fisse per una determinata configurazione dell'istanza), ma piuttosto aumenta le risorse che ogni replica ha nell'istanza. L'aumento della capacità di calcolo fornisce a ogni replica più CPU e RAM, aumentando la velocità effettiva della replica (in altre parole, è possibile che vengano effettuate più letture e scritture al secondo).

Passaggi successivi