Gestore della scalabilità automatica gestito

Questa pagina descrive il funzionamento del gestore della scalabilità automatica gestito e i costi e le limitazioni quando viene utilizzato. Fornisce inoltre informazioni per aiutarti a determinare come configurare il gestore della scalabilità automatica gestito.

Come funziona il gestore della scalabilità automatica

Quando abiliti il gestore della scalabilità automatica, Spanner regola automaticamente le dimensioni dell'istanza per te. La funzionalità gestore della scalabilità automatica gestita reagisce ai cambiamenti nel carico di lavoro o nelle esigenze di archiviazione dell'istanza quando il carico aumenta o diminuisce. La scalabilità automatica gestita fa lo scale up, aggiungendo capacità di calcolo all'istanza, oppure scala verso il basso, rimuovendo la capacità di calcolo dall'istanza.

Quando configuri il gestore della scalabilità automatica, puoi utilizzare unità di elaborazione per le istanze piccole o nodi per le istanze di grandi dimensioni. In questo documento utilizziamo il termine capacità di calcolo per indicare i nodi o le unità di elaborazione.

Il gestore della scalabilità automatica gestito di Spanner determina la quantità di capacità di calcolo richiesta in base a quanto segue:

  • Target di utilizzo ad alta priorità della CPU
  • Target di utilizzo dello spazio di archiviazione
  • Limite minimo
  • Limite massimo

Ogni dimensione di scalabilità genera una dimensione di istanza consigliata e Spanner utilizza automaticamente quella più alta. Ciò significa, ad esempio, che se l'istanza ha bisogno di 10 nodi per soddisfare il target di utilizzo dello spazio di archiviazione ma 12 nodi per raggiungere il target di utilizzo della CPU, Spanner scala l'istanza a 12 nodi.

Man mano che la quantità di capacità di calcolo cambia, Spanner ottimizza continuamente l'archiviazione. Ribilancia i dati tra tutti i server per garantire che il traffico venga distribuito in modo uniforme e che nessun singolo server sia sovraccarico. Per saperne di più, consulta la sezione Limitazioni.

Se il gestore della scalabilità automatica gestita scala un'istanza fino al limite massimo, ma il carico di lavoro continua a causare un maggiore utilizzo della CPU rispetto al target, le richieste dei carichi di lavoro potrebbero avere una latenza maggiore o avere esito negativo. Se un'istanza fa lo scale up fino al target di capacità di calcolo massima, ma il carico di lavoro richiede più spazio di archiviazione rispetto al limite massimo, le richieste di scrittura possono non andare a buon fine. Per scoprire se è stato raggiunto il target massimo, puoi visualizzare i log degli eventi di sistema del gestore della scalabilità automatica nella console Google Cloud nella pagina Approfondimenti sul sistema. Per ulteriori informazioni, consulta Limiti di spazio di archiviazione.

Quando Spanner fa lo scale down di un'istanza, rimuove la capacità di calcolo a una velocità inferiore rispetto allo scale up, per ridurre l'impatto sulla latenza.

Costi

I costi totali di Spanner potrebbero essere inferiori o superiori a seconda di come hai configurato l'istanza Spanner prima di abilitare il gestore della scalabilità automatica gestito e dei limiti impostati per il gestore della scalabilità automatica gestito.

Ad esempio, se prima configuravi manualmente l'istanza Spanner in modo da avere una capacità di calcolo sufficiente per gestire i picchi di lavoro in qualsiasi momento, i costi con il gestore della scalabilità automatica gestito potrebbero essere inferiori perché riduce la capacità di calcolo quando l'istanza è inattiva.

Se prima configuravi manualmente l'istanza Spanner in modo da avere una capacità di calcolo sufficiente per i carichi di lavoro medi e le prestazioni complessive si riducono quando il traffico dei carichi di lavoro aumenta, i costi con il gestore della scalabilità automatica gestito potrebbero essere più elevati perché il gestore della scalabilità automatica potrebbe aumentare la capacità di calcolo quando l'istanza è occupata. Tuttavia, ciò fornisce agli utenti un rendimento più coerente.

Puoi limitare il costo massimo dell'istanza Spanner impostando il limite massimo di nodi o unità di elaborazione al livello che vuoi spendere.

Limitazioni

Quando abiliti o modifichi la funzionalità di scalabilità automatica gestita su un'istanza, si applicano le seguenti limitazioni:

  • Non puoi spostare un'istanza quando è abilitata la funzionalità del gestore della scalabilità automatica gestito. Devi prima disabilitare il gestore della scalabilità automatica, quindi spostare l'istanza. Dopo aver spostato l'istanza, puoi riattivare il gestore della scalabilità automatica gestito.
  • Devi impostare il limite minimo per l'istanza di scalabilità automatica su almeno 1000 unità di elaborazione o su un nodo o superiore.
  • Quando abiliti la scalabilità automatica su un'istanza esistente, la capacità delle istanze esistenti può essere inferiore al valore limite minimo che configuri nel gestore della scalabilità automatica gestito. Tuttavia, all'avvio dell'istanza viene fatto automaticamente lo scale up al valore minimo configurato. Ad esempio, se l'istanza ha un nodo, ma imposti il valore minimo su due nodi, all'avvio dell'istanza viene automaticamente scalato fino a due nodi.

Parametri del gestore della scalabilità automatica

Quando crei o modifichi un'istanza e scegli di abilitare il gestore della scalabilità automatica gestito, definisci i valori riportati nella seguente tabella.

Parametro Descrizione
Target di utilizzo ad alta priorità della CPU Una percentuale della capacità della CPU ad alta priorità dell'istanza. Questo valore deve essere compreso tra 10% e 90%. Quando l'utilizzo della CPU di un'istanza supera il target che hai impostato, Spanner aggiunge immediatamente capacità di calcolo all'istanza. Quando l'utilizzo della CPU è sostanzialmente inferiore al target, Spanner rimuove la capacità di calcolo. Per indicazioni, consulta Determinare il target di utilizzo della CPU.
Target di utilizzo dello spazio di archiviazione La percentuale di spazio di archiviazione su un nodo che puoi utilizzare prima dello scale up di Spanner. Questo target garantisce che tu abbia sempre capacità di calcolo sufficiente per gestire le fluttuazioni della quantità di dati archiviati. Questo valore deve essere compreso tra 10 e 99%. Per indicazioni, consulta Determinare il target di utilizzo dello spazio di archiviazione.
Limite minimo La quantità più bassa di capacità di calcolo a cui Spanner scala l'istanza. Il valore minimo non può essere inferiore al 10% del valore impostato per il limite massimo. Ad esempio, se il limite massimo è di 40 nodi, il limite minimo deve essere di almeno 4 nodi. Il requisito del 10% è un limite fisso. Per indicazioni, consulta Stabilire il limite minimo.
Limite massimo La massima capacità di calcolo fino a cui Spanner scala l'istanza. Per i nodi, questo valore deve essere maggiore di 1 nodo (o 1000 unità di elaborazione) e uguale o superiore al numero minimo di nodi o unità di elaborazione. Il valore non può essere superiore a 10 volte il numero scelto per la quantità minima di capacità di calcolo. Questo requisito di 10 volte è un limite fisso. Per indicazioni, consulta Stabilire il limite massimo.

Configura il gestore della scalabilità automatica

Questa sezione descrive come determinare quali numeri scegliere per i parametri del gestore della scalabilità automatica gestito. Dopo aver impostato i valori iniziali, monitora l'istanza e modifica i numeri, se necessario.

Determina il target di utilizzo della CPU

Il target ottimale per la tua istanza dipende dai requisiti di latenza e velocità effettiva del carico di lavoro. Consulta Avvisi per utilizzo elevato della CPU per visualizzare i nostri suggerimenti per l'utilizzo massimo della CPU per istanze singole e multiregionali.

In generale, se noti una latenza inaccettabilmente elevata, devi ridurre il target di utilizzo della CPU.

Determina il target di utilizzo dello spazio di archiviazione

Per la scalabilità automatica, il target di utilizzo dello spazio di archiviazione è espresso come percentuale per nodo. Per le istanze con 1 nodo (1000 unità di elaborazione) e di dimensioni superiori, la dimensione dello spazio di archiviazione è limitata a 4 TB per nodo.

Determinare il limite massimo.

Il valore che scegli come quantità massima di capacità di calcolo è uguale alla quantità di capacità di calcolo necessaria all'istanza per gestire il traffico più intenso, anche se non prevedi di raggiungere quel volume la maggior parte delle volte. Spanner non fa mai lo scale up fino a raggiungere una capacità di calcolo superiore a quella di cui ha bisogno. Puoi considerare questo numero anche come la massima capacità di calcolo che intendi pagare. Per maggiori dettagli sui valori accettati, consulta Parametri del gestore della scalabilità automatica.

Il limite massimo deve consentire sia il target di utilizzo della CPU sia il target di utilizzo dello spazio di archiviazione che hai impostato per la scalabilità automatica.

  • Se stai modificando un'istanza da allocazione manuale a scalabilità automatica gestita, trova la massima capacità di calcolo registrata nell'istanza negli ultimi uno o due mesi. Il limite massimo del gestore della scalabilità automatica deve essere almeno così alto.

  • Se stai abilitando il gestore della scalabilità automatica per una nuova istanza, osserva le metriche di altre istanze e utilizzale come guida quando imposti il limite massimo.

  • Se hai un nuovo carico di lavoro e non sai come crescerà, puoi stimare la quantità di capacità di calcolo necessaria per soddisfare il target di utilizzo dello spazio di archiviazione integrato e quindi modificare il numero in un secondo momento.

Devi anche conoscere la quota rimanente sul tuo nodo perché il gestore della scalabilità automatica non può configurare l'istanza in modo che abbia una capacità di calcolo superiore alla tua quota. Per ulteriori informazioni, consulta Limiti di nodi.

Quando l'istanza è in esecuzione con scalabilità automatica abilitata, monitora l'istanza e assicurati che il valore scelto per il limite massimo sia almeno pari al limite consigliato per la CPU di destinazione e al limite consigliato per la destinazione di archiviazione.

Stabilire il limite minimo

Imposta un limite minimo per il gestore della scalabilità automatica gestito per assicurarti che l'istanza di Spanner possa fare lo scale down alla dimensione più piccola ed economicamente più conveniente. Spanner impedisce automaticamente che il numero dei nodi scenda al di sotto del minimo necessario per mantenere le destinazioni di utilizzo di CPU e spazio di archiviazione.

Il valore minimo consentito dal gestore della scalabilità automatica gestito è 1 nodo o 1000 unità di elaborazione. Quando abiliti la scalabilità automatica per un'istanza esistente con capacità inferiore al valore minimo configurato per il gestore della scalabilità automatica gestito, l'istanza viene automaticamente scalata fino a raggiungere questo valore minimo all'avvio.

Dopo aver avviato l'istanza con scalabilità automatica gestita, devi eseguire un test iniziale per assicurarti che funzioni alla dimensione minima impostata. Ti consigliamo di eseguire nuovamente il test periodicamente per assicurarti che continui a funzionare come previsto.

Per ulteriori informazioni sui valori accettati, consulta Parametri del gestore della scalabilità automatica gestito in questo documento.

In molti casi, desideri impostare il valore minimo su più di uno. Scegli un numero più alto o aumenta il limite minimo per le seguenti situazioni:

  • Si verifica un imminente evento di picco di scalabilità quando prevedi un aumento temporaneo del traffico e vuoi assicurarti di disporre di una capacità di calcolo sufficiente.
  • La tua applicazione invia un traffico incalzante. Quando aggiungi nuova capacità di calcolo, Spanner esegue automaticamente il ribilanciamento in modo da utilizzare i nuovi nodi o unità di elaborazione. Poiché questo processo può richiedere diversi minuti, ti consigliamo di adottare un approccio conservativo e di scegliere un valore minimo più elevato. In questo modo, l'istanza soddisfa senza problemi i picchi.
  • Aumenti la capacità di calcolo massima. Il minimo deve essere sempre pari o inferiore al 10% del target di capacità di calcolo massima. Ad esempio, se imposti il numero massimo di nodi su 30, devi impostare il numero minimo di nodi su almeno 3.

Se aumenti il valore della capacità di calcolo minima su un'istanza, Spanner tenta immediatamente di scalare l'istanza al nuovo valore minimo. Si applicano i vincoli standard. Quando esaurisci la quota, la richiesta di modifica della configurazione del gestore della scalabilità automatica gestito non va a buon fine e la configurazione non viene aggiornata.

Flag e limitazioni dei parametri di Google Cloud CLI

Quando utilizzi Google Cloud CLI per configurare il gestore della scalabilità automatica, devi impostare alcuni flag obbligatori. Esistono dei flag facoltativi per indicare se vuoi usare nodi o unità di elaborazione. Per ulteriori informazioni sulla creazione di una nuova istanza con il gestore della scalabilità automatica o sull'abilitazione della scalabilità automatica gestita su un'istanza esistente, consulta quanto segue:

I seguenti flag sono obbligatori per abilitare il gestore della scalabilità automatica nella tua istanza:

  • autoscaling-high-priority-cpu-percent
  • autoscaling-storage-percent

Se scegli di utilizzare i nodi, devi utilizzare entrambi i seguenti flag quando abiliti il gestore della scalabilità automatica gestito:

  • autoscaling-min-nodes
  • autoscaling-max-nodes

Se scegli di utilizzare le unità di elaborazione, devi utilizzare entrambi i flag seguenti quando abiliti il gestore della scalabilità automatica gestito:

  • autoscaling-min-processing-units
  • autoscaling-max-processing-units

Quando aggiungi il gestore della scalabilità automatica gestito a un'istanza esistente utilizzando Google Cloud CLI, si applicano le seguenti limitazioni:

  • Non puoi utilizzare il flag --nodes con i flag --autoscaling-min-nodes o --autoscaling-max-nodes perché l'uso di --nodes imposta un numero specifico di nodi anziché un intervallo di scalabilità. Allo stesso modo, non puoi utilizzare il flag --processing-units con i flag autoscaling-min-processing-units o autoscaling-max-processing-units perché l'uso di --processing-units imposta un numero specifico di unità di elaborazione anziché un intervallo di scalabilità.
  • Non puoi combinare i flag per nodi e unità di elaborazione. Ad esempio, non puoi utilizzare --autoscaling-max-nodes con autoscaling-min-processing-units.

Perfezionare le impostazioni

Tieni d'occhio l'utilizzo della capacità di calcolo e regola le impostazioni, se necessario, soprattutto dopo aver abilitato per la prima volta il gestore della scalabilità automatica gestito. Ti consigliamo di utilizzare la pagina System Insights della console Google Cloud.

Controllo dell'accesso

Per configurare il gestore della scalabilità automatica, devi essere un'entità in un ruolo che dispone delle autorizzazioni di creazione e aggiornamento per l'istanza che stai configurando.

Monitoraggio

Spanner fornisce diverse metriche per aiutarti a comprendere il funzionamento del gestore della scalabilità automatica gestito per fare lo scale up e lo scale down per soddisfare i requisiti del carico di lavoro. Le metriche consentono anche di valutare se le impostazioni sono ottimali per soddisfare i requisiti di carico di lavoro e di costo dell'azienda. Ad esempio, se noti che il numero di nodi per un'istanza è spesso vicino al numero massimo di nodi, potresti valutare di aumentare il numero massimo. Per scoprire di più sul monitoraggio delle risorse Spanner, consulta Monitorare le istanze con Cloud Monitoring.

Le seguenti metriche sono visualizzate nei grafici nella pagina Approfondimenti sul sistema della console Google Cloud. Puoi anche visualizzare queste metriche utilizzando Cloud Monitoring.

  • spanner.googleapis.com/instance/autoscaling/min_node_count
  • spanner.googleapis.com/instance/autoscaling/max_node_count
  • spanner.googleapis.com/instance/autoscaling/min_processing_units
  • spanner.googleapis.com/instance/autoscaling/max_processing_units
  • spanner.googleapis.com/instance/autoscaling/high_priority_cpu_target_utilization
  • spanner.googleapis.com/instance/autoscaling/storage_target_utilization

Logging

Spanner crea un audit log degli eventi di sistema ogni volta che scala un'istanza.

Puoi visualizzare i log eventi di sistema del gestore della scalabilità automatica nella pagina Approfondimenti sul sistema nella console Google Cloud.

Puoi visualizzare i log anche utilizzando Esplora log:

  1. Nella console Google Cloud, apri Esplora log:

    Vai a Esplora log

  2. Seleziona il progetto Google Cloud appropriato.

  3. Nel campo Query, inserisci quanto segue:

     protoPayload.methodName="AutoscaleInstance"
    

    Puoi aggiungere la seguente query per filtrare ulteriormente i log:

    resource.type="spanner_instance"
    resource.labels.instance_id=INSTANCE_ID
    resource.labels.project_id=PROJECT_ID
    logName="projects/span-cloud-testing/logs/cloudaudit.googleapis.com%2Fsystem_event"
    protoPayload.methodName="AutoscaleInstance"
  4. 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. Puoi configurare avvisi basati su log nella pagina Esplora log in Google Cloud o utilizzando l'API Cloud Monitoring.

Passaggi successivi