Gestore della scalabilità automatica gestito

Questa pagina descrive il funzionamento del gestore della scalabilità automatica gestito e descrive i costi e i limiti relativi all'utilizzo del gestore della scalabilità automatica gestito. Fornisce inoltre informazioni per aiutarti a determinare come configurare il gestore della scalabilità automatica gestito.

Come funziona il gestore della scalabilità automatica gestito

Quando abiliti il gestore della scalabilità automatica gestito, Spanner regola automaticamente le dimensioni dell'istanza. La funzionalità di gestore della scalabilità automatica gestita reagisce alle variazioni del carico di lavoro o delle esigenze di archiviazione dell'istanza man mano che il carico aumenta o diminuisce. La scalabilità automatica gestita può eseguire lo scale up, aggiungere capacità di calcolo all'istanza o eseguire lo scale down, rimuovendo così la capacità di calcolo dall'istanza.

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

Il gestore della scalabilità automatica gestito di Spanner determina la 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 istanza consigliata e Spanner utilizza automaticamente quella più alta. Ciò significa, ad esempio, che se l'istanza ha bisogno di 10 nodi per raggiungere il target di utilizzo dello spazio di archiviazione, ma di 12 nodi per raggiungere il target di utilizzo della CPU, Spanner scala l'istanza a 12 nodi.

Man mano che la capacità di calcolo cambia, Spanner ottimizza continuamente lo spazio di archiviazione. Ribilancia i dati tra tutti i server per garantire che il traffico venga distribuito uniformemente e nessun singolo server sia sovraccarico. Consulta la sezione Limitazioni per ulteriori informazioni.

Se il gestore della scalabilità automatica gestito scala un'istanza fino al limite massimo, ma il carico di lavoro continua a causare un utilizzo maggiore della CPU rispetto al target, le richieste dei carichi di lavoro potrebbero avere una latenza maggiore o non riuscire. Se un'istanza fa lo scale up fino al target di capacità di calcolo massimo, ma il carico di lavoro richiede più spazio di archiviazione rispetto al limite massimo di archiviazione, le richieste di scrittura potrebbero non riuscire. Per scoprire se viene raggiunto il target massimo, puoi visualizzare i log eventi di sistema del gestore della scalabilità automatica gestiti nella pagina Approfondimenti sul sistema della console Google Cloud. Per maggiori informazioni, vedi 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 di Spanner prima di abilitare il gestore della scalabilità automatica gestito e dei limiti impostati per quest'ultimo.

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

Se prima configurassi manualmente l'istanza di Spanner in modo da avere una capacità di calcolo sufficiente per i carichi di lavoro medi e le prestazioni complessive si riducono con l'aumento del traffico dei carichi di lavoro, i costi del gestore della scalabilità automatica gestito potrebbero essere più elevati perché quest'ultimo potrebbe aumentare la capacità di calcolo quando l'istanza è occupata. Tuttavia, questo 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 sul 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à di scalabilità automatica gestita. Devi prima disabilitare il gestore della scalabilità automatica gestito e poi spostare l'istanza. Dopo aver spostato l'istanza, puoi riabilitare il gestore della scalabilità automatica gestito.
  • Devi impostare il limite minimo per l'istanza di scalabilità automatica su 1000 unità di elaborazione o superiore oppure su 1 nodo o superiore.
  • Quando abiliti la scalabilità automatica su un'istanza esistente, la capacità dell'istanza esistente può essere inferiore al valore limite minimo che configuri sul gestore della scalabilità automatica gestito. Tuttavia, all'avvio, l'istanza esegue automaticamente lo scale up fino al valore minimo configurato. Ad esempio, se l'istanza ha un nodo ma imposti il valore minimo su due nodi, all'avvio l'istanza fa automaticamente lo scale up fino a 2 nodi.

Parametri gestore della scalabilità automatica gestito

Quando crei o modifichi un'istanza e scegli di abilitare il gestore della scalabilità automatica gestito, definisci i valori mostrati 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 da parte di un'istanza supera il target che hai impostato, Spanner aggiunge immediatamente capacità di calcolo all'istanza. Quando l'utilizzo della CPU è notevolmente 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 che Spanner faccia lo scale up. Questo target garantisce di avere sempre capacità di calcolo sufficiente per gestire le fluttuazioni nella 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 fino 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 Determinare il limite minimo.
Limite massimo La quantità massima di 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. Il requisito di 10 volte è un limite fisso. Per indicazioni, consulta Determinare il limite massimo.

Configura il gestore della scalabilità automatica gestito

Questa sezione descrive come determinare quali numeri scegliere per i parametri del gestore della scalabilità automatica gestiti. 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 l'istanza dipende dai requisiti di latenza e velocità effettiva del carico di lavoro. Consulta Avvisi di utilizzo elevato della CPU per visualizzare i nostri suggerimenti sull'utilizzo massimo della CPU per istanze a singola regione e a più regioni.

In generale, se noti una latenza inaccettabile, dovresti abbassare 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) o più grandi, la dimensione 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 esegue mai lo scale up per aumentare la capacità di calcolo di quella necessaria. È anche possibile considerare questo valore come la maggiore capacità di calcolo che si è disposti a pagare. Consulta Parametri del gestore della scalabilità automatica per i dettagli sui valori accettati.

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

  • Se stai modificando un'istanza dall'allocazione manuale alla scalabilità automatica gestita, individua la massima quantità di capacità di calcolo che l'istanza ha avuto negli ultimi uno o due mesi. Il limite massimo del gestore della scalabilità automatica gestito deve essere almeno così elevato.

  • Se abiliti il gestore della scalabilità automatica gestito 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 raggiungere il target di utilizzo dello spazio di archiviazione integrato, quindi modificare il numero in un secondo momento.

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

Quando l'istanza è attiva e in esecuzione con la 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 target e al limite consigliato per il target di archiviazione.

Determinare il limite minimo

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

Il valore minimo minimo consentito dal gestore della scalabilità automatica gestito è 1 nodo o 1000 unità di elaborazione. Quando abiliti la scalabilità automatica per un'istanza esistente che ha meno capacità rispetto al valore minimo configurato per il gestore della scalabilità automatica gestito, l'istanza scala automaticamente al 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. Devi ripetere periodicamente un nuovo test per assicurarti che continui a funzionare come previsto.

Per saperne di più sui valori accettati, consulta Parametri del gestore della scalabilità automatica gestiti in questo documento.

In molti casi è consigliabile impostare il valore minimo su più di uno. Scegli un numero maggiore o aumenta il limite minimo nelle seguenti situazioni:

  • Tra i prossimi eventi di scalabilità di picco prevedi un aumento temporaneo del traffico e vuoi assicurarti di avere una capacità di calcolo sufficiente.
  • La tua applicazione invia traffico picchi. Quando aggiungi nuova capacità di calcolo, Spanner viene ribilanciato automaticamente per utilizzare i nuovi nodi o le nuove unità di elaborazione. Poiché questo processo può richiedere diversi minuti, ti consigliamo di scegliere un approccio conservativo e di scegliere un minimo più elevato. In questo modo, l'istanza supporta perfettamente i picchi.
  • Aumenta la capacità di calcolo massima. Il valore minimo deve essere sempre il dieci percento o inferiore rispetto al 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 per la capacità di calcolo minima su un'istanza, Spanner tenta immediatamente di scalare l'istanza in base al nuovo valore minimo. Si applicano i vincoli standard. Quando hai esaurito la quota, la richiesta di modifica della configurazione del gestore della scalabilità automatica gestita 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 gestito, devi impostare alcuni flag obbligatori. Puoi utilizzare flag facoltativi per indicare se vuoi usare nodi o unità di elaborazione. Per saperne di più sulla creazione di una nuova istanza con il gestore della scalabilità automatica gestito o sull'abilitazione della scalabilità automatica gestita su un'istanza esistente, consulta quanto segue:

I seguenti flag sono obbligatori quando abiliti il gestore della scalabilità automatica gestito sulla tua istanza:

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

Se scegli di utilizzare i nodi, devi utilizzare anche 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 anche entrambi i seguenti flag quando abiliti il gestore della scalabilità automatica gestito:

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

Quando si aggiunge il gestore della scalabilità automatica gestito a un'istanza esistente utilizzando Google Cloud CLI:

  • 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 i nodi e le unità di elaborazione. Ad esempio, non puoi utilizzare --autoscaling-max-nodes con autoscaling-min-processing-units.

Ottimizzazione delle 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 Approfondimenti sul sistema nella console Google Cloud.

Controllo dell'accesso

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

Monitoraggio

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

Le seguenti metriche vengono visualizzate nei grafici nella pagina Approfondimenti sul sistema della console Google Cloud. Puoi visualizzare queste metriche anche 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 gestiti nella pagina Approfondimenti sul sistema della console Google Cloud.

Puoi anche visualizzare i log 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 di Google Cloud o utilizzando l'API Cloud Monitoring.

Passaggi successivi