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 di server e di archiviazione disponibili per i database in un'istanza. Quando crei un'istanza, ne specifichi la capacità di calcolo come numero di unità di elaborazione o come numero di nodi, dove 1000 unità di elaborazione corrispondono a un nodo.

L'unità di misurazione utilizzata 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 create per dimensioni dei dati, query e carichi di lavoro più piccoli. Hanno risorse di calcolo limitate e ciò potrebbe comportare scalabilità e prestazioni non lineari per alcuni carichi di lavoro e potrebbero riscontrare incrementi intermittenti nelle latenze.

Limiti di archiviazione dei dati

Come descritto in Quote e limiti, per garantire alta disponibilità 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, utilizzando le seguenti linee guida:

  • Per istanze di dimensioni inferiori a 1 nodo (1000 unità di elaborazione), Spanner alloca 409,6 GB di dati per ogni 100 unità di elaborazione nel database.
  • Per le istanze con almeno 1 nodo, Spanner alloca 4 TB di dati per ciascun nodo. L'aumento della capacità di archiviazione (10 TB per nodo) è disponibile solo in determinate configurazioni di istanze Spanner a livello di una o più regioni. Per ulteriori 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 fino a quando il database non supera i 409,6 GB. Quando il database raggiunge queste dimensioni, devi aggiungere altre 100 unità di elaborazione per consentire l'espansione del database. In caso contrario, Spanner potrebbe rifiutare le scritture sul database. Per saperne di più, consulta Suggerimenti per l'utilizzo dello spazio di archiviazione del database.

Spanner addebita lo spazio di archiviazione effettivamente utilizzato dalle istanze, non lo spazio di archiviazione totale allocato.

Prestazioni

I valori della velocità effettiva di lettura e scrittura massima 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 i dettagli, consulta le sezioni sulle prestazioni della configurazione per regione e sulle prestazioni della configurazione per più regioni.

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

Capacità di calcolo e configurazioni delle istanze

Come descritto in Configurazioni a livello di 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 server fornite dalla capacità di calcolo dell'istanza.

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

Due istanze create in una configurazione di istanze a livello di regione

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

  • Istanza-A mostra un'istanza di 1000 unità di elaborazione (1 nodo) con la relativa distribuzione della capacità di calcolo che consuma risorse server in ciascuna delle tre zone.
  • Istanza-B mostra un'istanza di 2000 unità di elaborazione (2 nodi) con la relativa distribuzione della capacità di calcolo che consuma 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 server per zona utilizza la replica dei dati nella propria zona. Per informazioni sulle repliche di dati nelle configurazioni delle istanze, consulta Configurazioni a livello di regione e multiregionale. Per informazioni su come Spanner mantiene sincronizzate queste repliche dei dati, consulta Replica.

  • Le risorse server per Instance-A sono mostrate in semplici caselle, mentre le risorse per Instance-B sono mostrate in riquadri suddivisi in due parti. Questa differenza mostra che Spanner alloca le risorse del server in modo diverso per istanze di dimensioni diverse:

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

Aumento e riduzione della capacità di calcolo

Dopo aver creato un'istanza, puoi aumentarne la capacità di calcolo in un secondo momento. Nella maggior parte dei casi, puoi anche ridurre la capacità di calcolo. In alcuni casi non è possibile ridurre la capacità di calcolo:

  • Per rimuovere la capacità di calcolo, l'istanza potrebbe archiviare più di 4 TB di dati per 1000 unità di elaborazione (1 nodo).
  • In base ai tuoi pattern di utilizzo storici, Spanner ha creato un numero elevato di sezioni per i dati dell'istanza e, in alcuni rari casi, Spanner 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 ridotte fino a trovare la capacità minima necessaria a Spanner per gestire tutte le suddivisioni dell'istanza. Se l'istanza non richiede più così tante suddivisioni a causa di una modifica nei 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 la capacità di calcolo, monitora l'utilizzo della CPU e le latenze delle richieste in Cloud Monitoring per assicurarti che l'utilizzo della CPU rimanga al di sotto del 65% per le istanze a livello di regione e del 45% per ogni regione nelle istanze multiregionali. Potresti riscontrare un aumento temporaneo della latenza delle richieste durante la rimozione della capacità di calcolo.

Puoi utilizzare la console Google Cloud, Google Cloud CLI o le librerie client per modificare la 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 operazioni in background per ottimizzare e proteggere i dati.

Capacità di calcolo e repliche

Se hai bisogno di fare lo scale up del server e delle risorse di archiviazione nell'istanza, aumenta la capacità di calcolo dell'istanza. Tieni presente che l'aumento della capacità di calcolo non aumenta il numero di repliche (fisse per una determinata configurazione dell'istanza), ma aumenta le risorse di cui ciascuna replica dispone nell'istanza. L'aumento della capacità di calcolo fornisce a ogni replica più CPU e RAM, il che aumenta la velocità effettiva della replica (ossia, possono verificarsi più letture e scritture al secondo).

Passaggi successivi