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

Quando crei un'istanza, scegli una configurazione dell'istanza e una quantità di capacità di calcolo per l'istanza. La capacità di calcolo della tua istanza presenta le seguenti caratteristiche:

  • Determina la quantità di risorse di server e spazio di archiviazione disponibili per i database nella tua istanza, incluso il carico del disco. Il carico del disco si applica solo ai carichi di lavoro che accedono ai dati archiviati nell'archiviazione HDD. Per maggiori informazioni, vedi Panoramica dell'archiviazione a livelli.
  • Viene misurata in unità di elaborazione (PU) o nodi, con 1000 PU pari a 1 nodo.

    • Un nodo o 1000 PU è un'unità logica di capacità di calcolo e non rappresenta un singolo server fisico. Le risorse di calcolo per ogni nodo sono distribuite su più macchine fisiche sottostanti o server. Il numero di server per nodo dipende dalla configurazione dell'istanza. Ad esempio, un'istanza regionale utilizza almeno tre server per nodo, mentre un'istanza multiregionale ne utilizza almeno cinque. Per ulteriori informazioni, consulta Capacità di calcolo e configurazioni delle istanze.
    • Quando definisci o modifichi la capacità di calcolo di un'istanza, devi specificare le PU in multipli di 100 (ad esempio 100, 200, 300). Quando il numero di PU raggiunge 1000, puoi specificare quantità maggiori come multipli di 1000 PU (ad esempio 1000, 2000, 3000) o come nodi (ad esempio 1, 2, 3).

Spanner rende disponibile la capacità di calcolo specificata (replicata) nella sua interezza all'interno di ogni zona che ospita una replica dei tuoi dati. Ad esempio, se esegui il provisioning di 1000 unità di elaborazione per un'istanza regionale, che in genere ha repliche in tre zone, ciascuna di queste tre zone dispone di tutte le 1000 unità di elaborazione di potenza di calcolo disponibili per gestire la propria replica. Spanner non divide né distribuisce le PU totali tra le zone. L'unità di misura che utilizzi non ha importanza, a meno che tu non stia creando un'istanza la cui capacità di calcolo è inferiore a 1000 PU (1 nodo). In questo caso, devi utilizzare le PU per specificare la capacità di calcolo dell'istanza.

Le istanze con meno di 1000 PU sono create per dimensioni, query e carichi di lavoro più piccoli. Hanno risorse di calcolo limitate, il che può comportare problemi di scalabilità non lineare e di prestazioni per alcuni carichi di lavoro. Queste istanze potrebbero anche registrare aumenti intermittenti delle latenze.

Disponibilità di Spanner

Spanner è progettato per l'alta disponibilità. Poiché la capacità di calcolo di ogni istanza è distribuita su più server in zone diverse, Spanner è resiliente all'errore di un singolo server. La perdita di un singolo server non costituisce un errore del nodo. Spanner gestisce automaticamente le risorse sottostanti per fornire disponibilità continua per la tua istanza.

Limiti di archiviazione dei dati

Come descritto in Quote e limiti, per fornire 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, seguendo le seguenti linee guida:

  • Per le istanze più piccole di un nodo (1000 PU), Spanner assegna 1024 GB di dati per ogni 100 PU nel database.
  • Per le istanze con 1 nodo e più, Spanner assegna 10 TiB di dati per ogni nodo.

Ad esempio, per creare un'istanza per un database da 300 GB, puoi impostare la capacità di calcolo su 100 PU. Questa quantità di capacità di calcolo mantiene l'istanza al di sotto del limite finché il database non supera i 1024 GB. Dopo che il database raggiunge questa dimensione, devi aggiungere altre 100 PU per consentire l'espansione del database. In caso contrario, Spanner potrebbe rifiutare le scritture sul database. Per maggiori informazioni, consulta Consigli per l'utilizzo dello spazio di archiviazione del database.

Spanner fattura lo spazio di archiviazione effettivamente utilizzato dalle istanze e non la loro allocazione totale dello spazio di archiviazione.

Prestazioni

I valori di velocità effettiva di lettura e scrittura di picco 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 ulteriori informazioni, consulta la panoramica del rendimento.

Utilizzi istanze con meno di 1000 PU per dimensioni dei dati, query e carichi di lavoro più piccoli. Per i carichi di lavoro più grandi, le 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 regionali, a due regioni e multiregionali, Spanner distribuisce un'istanza tra le zone di una o più regioni per fornire prestazioni e disponibilità elevate. 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 in una configurazione di istanza regionale

Questo diagramma mostra due istanze con configurazioni regionali:

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

Nota 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 dei dati nelle configurazioni delle istanze, consulta Configurazioni regionali, a due regioni e multiregionali. Per informazioni su come Spanner mantiene sincronizzate queste repliche dei dati, consulta Replica.

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

    • Per le istanze di 1000 PU (1 nodo) e più piccole, Spanner alloca le risorse del server in un'unica attività del server per zona.
    • Per le istanze più grandi di 1000 PU (1 nodo), Spanner alloca le risorse del server in più attività del server per zona, con un'attività per ogni 1000 PU. L'utilizzo di più attività del server per zona offre prestazioni migliori e consente a Spanner di creare divisioni del database e fornire 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 in pochi minuti. In rari casi, uno scale up potrebbe richiedere fino a un'ora.

Nella maggior parte dei casi, puoi anche ridurre la capacità di calcolo. Esistono alcuni casi in cui non puoi ridurre la capacità di calcolo:

  • La rimozione della capacità di calcolo richiede che l'istanza memorizzi più di 10 TiB di dati per 1000 unità di elaborazione (1 nodo).
  • In base ai tuoi pattern di utilizzo storici, Spanner ha creato un gran numero di divisioni per i dati della tua istanza e, in alcuni rari casi, Spanner non sarebbe in grado di gestire le divisioni dopo la rimozione della capacità di calcolo.

In quest'ultimo caso, puoi provare a ridurre la capacità di calcolo di quantità progressivamente più piccole finché non trovi la capacità minima necessaria a Spanner per gestire tutte le suddivisioni dell'istanza. Se l'istanza non richiede più tante 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 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 inferiore al 65% per le istanze regionali 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 operazioni in background per ottimizzare e proteggere i tuoi dati.

Puoi utilizzare la consoleGoogle Cloud , Google Cloud CLI o le librerie client Spanner per modificare la capacità di calcolo. Per ulteriori informazioni, vedi Modificare la capacità di calcolo.

Capacità di calcolo e repliche

Se devi aumentare le risorse di server e archiviazione nella tua 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 aumenta le risorse di ogni replica nell'istanza. L'aumento della capacità di calcolo fornisce a ogni replica più CPU e RAM, il che aumenta il throughput della replica (ovvero, possono verificarsi più letture e scritture al secondo).

Passaggi successivi