Questa pagina descrive il funzionamento dell'autoscalabilità gestita e i costi e le limitazioni dell'utilizzo dell'autoscalabilità gestita. Fornisce inoltre informazioni per aiutarti a determinare come configurare il gestore della scalabilità automatica gestito.
Come funziona il gestore della scalabilità automatica gestito
Quando attivi il gestore della scalabilità automatica gestito, Spanner regola automaticamente le dimensioni dell'istanza. La funzionalità di gestione della scalabilità automatica reagisce alle modifiche nelle esigenze di archiviazione o del carico di lavoro dell'istanza man mano che il carico aumenta o diminuisce. La scalabilità automatica gestita aumenta, aggiungendo capacità di calcolo all'istanza, o diminuisce, rimuovendo la capacità di calcolo dall'istanza.
Quando configuri il gestore della scalabilità automatica gestito, puoi utilizzare unità di elaborazione per le piccole istanze o nodi per le 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 quantità di capacità di calcolo necessaria 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 dell'istanza consigliata e Spanner utilizza automaticamente quella più grande. Ciò significa, ad esempio, che se la tua 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 quantità di capacità di calcolo cambia, Spanner ottimizza continuamente lo spazio di archiviazione. Riequilibra i dati su tutti i server per garantire che il traffico venga distribuito in modo uniforme e che nessun singolo server sia sovraccaricato. Per ulteriori informazioni, vedi Limitazioni.
Se il gestore della scalabilità automatica aumenta le istanze fino al limite massimo, ma il carico di lavoro causa ancora un utilizzo della CPU superiore a quello target, le richieste di carico di lavoro potrebbero avere una latenza più elevata o non riuscire. Se un'istanza viene scalata fino al suo 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 il target massimo è stato raggiunto, puoi visualizzare i log degli eventi di sistema del gestore della scalabilità automatica gestito nella console Google Cloud nella pagina Approfondimenti sul sistema. Per ulteriori informazioni, consulta i limiti di spazio di archiviazione.
Quando Spanner riduce le dimensioni di un'istanza, rimuove la capacità di calcolo a un ritmo più lento 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 attivare lo scalatore automatico gestito e i limiti impostati per lo scalatore automatico gestito.
Ad esempio, se in precedenza configuravi manualmente l'istanza Spanner in modo da avere una capacità di calcolo sufficiente per gestire i picchi di carico di lavoro in qualsiasi momento, i costi con lo strumento di scalabilità automatica gestito potrebbero essere inferiori perché riduce la capacità di calcolo quando l'istanza è inattiva.
Se in precedenza configuravi manualmente l'istanza Spanner in modo da avere una capacità di calcolo sufficiente per i carichi di lavoro medi e il rendimento complessivo peggiora quando il traffico del carico di lavoro aumenta, i costi con l'autoscalabilità gestita potrebbero essere più elevati perché l'autoscalabilità gestita potrebbe aumentare la capacità di calcolo quando l'istanza è occupata. Tuttavia, offre agli utenti un rendimento più costante.
Puoi limitare il costo massimo dell'istanza Spanner impostando il limite massimo di nodi o unità di elaborazione in base al livello di spesa che vuoi.
Limitazioni
Quando attivi o modifichi la funzionalità di scalabilità automatica gestita su un'istanza, si applicano le seguenti limitazioni:
- Non puoi spostare un'istanza quando è attivata la funzionalità di scalabilità automatica gestita. Devi prima disattivare l'autoscaler gestito e poi spostare l'istanza. Dopo aver spostato l'istanza, puoi riattivare lo scalatore automatico gestito.
- Devi impostare il limite minimo per l'istanza di scalabilità automatica su 1000 unità di elaborazione o più oppure su 1 nodo o più.
- Quando attivi la scalabilità automatica su un'istanza esistente, la capacità dell'istanza esistente può essere inferiore al valore limite minimo che configuri nel gestore della scalabilità automatica gestito. Tuttavia, l'istanza esegue automaticamente lo scale up fino al valore minimo configurato al momento dell'avvio. Ad esempio, se l'istanza ha un nodo, ma hai impostato il valore minimo su due nodi, quando avvii l'istanza viene eseguito automaticamente il ridimensionamento fino a 2 nodi.
Parametri del gestore della scalabilità automatica gestito
Quando crei o modifichi un'istanza e scegli di attivare l'autoscalabilità gestita, definisci i valori mostrati nella tabella seguente.
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 il 10% e il 90%. Quando l'utilizzo della CPU di un'istanza supera il target impostato, Spanner aggiunge immediatamente la 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 esegua l'upgrade. Questo target ti garantisce sempre una capacità di calcolo sufficiente per gestire le fluttuazioni della quantità di dati archiviati. Questo valore deve essere compreso tra il 10 e il 99%. Per indicazioni, consulta Determinare il target di utilizzo dello spazio di archiviazione. |
Limite minimo | La quantità minima di capacità di calcolo a cui Spanner riduce l'istanza. Il valore minimo non può essere inferiore al 10% del valore impostato per il limite massimo. Ad esempio, se il limite massimo è 40 nodi, il limite minimo deve essere almeno di 4 nodi. Il requisito del 10% è un limite fisso. Per guidance, consulta Determinare il limite minimo. |
Limite massimo | La quantità massima di capacità di calcolo fino alla quale Spanner scala l'istanza. Per i nodi, questo valore deve essere maggiore di 1 nodo (o 1000 unità di elaborazione) ed essere uguale o superiore al numero minimo di nodi o unità di elaborazione. Il valore non può essere più di 10 volte il numero scelto per la quantità minima di capacità di calcolo. Questo requisito di 10 volte è un limite rigido. Per indicazioni, consulta Determinare il limite massimo. |
Configurare l'autoscaler gestito
Questa sezione descrive come determinare quali numeri scegliere per i parametri di scalabilità automatica gestita. 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 throughput del carico di lavoro. Per visualizzare i nostri consigli per l'utilizzo massimo della CPU per le configurazioni di istanze regionali, a due regioni e multiregionali, consulta Avvisi per utilizzo elevato della CPU.
In generale, se noti una latenza inaccettabilmente elevata, devi abbassare il valore 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 viene espresso in percentuale per node. Per le istanze con almeno 1 nodo (1000 unità di elaborazione), le dimensioni dello spazio di archiviazione sono limitate a 10 TB per nodo.
Determina il limite massimo
Il valore scelto come quantità massima di capacità di calcolo è uguale alla quantità di capacità di calcolo necessaria per gestire il traffico più elevato, anche se non prevedi di raggiungere questo volume la maggior parte del tempo. Spanner non esegue mai l'upgrade a una capacità di calcolo superiore a quella di cui ha bisogno. Puoi anche considerare questo numero come la quantità massima di capacità di calcolo che sei disposto a pagare. Per informazioni dettagliate sui valori accettati, consulta Parametri di Autoscaler.
Il limite massimo deve consentire sia il target di utilizzo della CPU sia il target di utilizzo dello spazio di archiviazione impostato per la scalabilità automatica.
Se stai modificando un'istanza passando dall'allocazione manuale alla scalabilità automatica gestita, individua la quantità massima di capacità di calcolo che l'istanza ha avuto negli ultimi uno o due mesi. Il limite massimo dell'autoscalabilità gestita deve essere almeno pari a questo valore.
Se stai attivando il gestore della scalabilità automatica per una nuova istanza, esamina le metriche di altre istanze e utilizzale come guida per impostare 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 e poi modificare il numero in un secondo momento.
Devi anche sapere quanta quota rimane sul tuo nodo perché il ridimensionamento automatico gestito non può configurare l'istanza in modo che abbia una capacità di calcolo superiore alla quota. Per ulteriori informazioni, consulta Limiti dei nodi.
Dopo aver attivato la scalabilità automatica, monitora l'istanza e assicurati che il valore scelto per il limite massimo sia almeno uguale al limite consigliato per il target della CPU e per il target di archiviazione.
Determina il limite minimo
Imposti un limite minimo per il gestore della scalabilità automatica gestito per assicurarti che la tua istanza Spanner possa fare lo scale down le dimensioni al minimo e al costo più conveniente. Spanner impedisce automaticamente che il numero di nodi scenda al di sotto del numero minimo necessario per mantenere gli obiettivi di utilizzo della CPU e dello spazio di archiviazione.
Il valore minimo più piccolo consentito dal gestore della scalabilità automatica è 1 nodo o 1000 unità di elaborazione. Quando attivi la scalabilità automatica per un'istanza esistente con una capacità inferiore al valore minimo configurato per il gestore della scalabilità automatica gestito, l'istanza viene scalata automaticamente fino a questo valore minimo al momento dell'avvio.
Dopo aver avviato l'istanza con la scalabilità automatica gestita, devi eseguire un test iniziale per assicurarti che funzioni con la dimensione minima impostata. Dovresti 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 è consigliabile impostare il valore minimo su più di uno. Scegli un numero più alto o aumenta il limite minimo per le seguenti situazioni:
- Hai in programma un evento di picco di dimensioni elevate in cui prevedi un aumento temporaneo del traffico e vuoi assicurarti di disporre di una capacità di calcolo sufficiente.
- La tua applicazione invia traffico con picchi. Quando aggiungi nuova capacità di calcolo, Spanner esegue automaticamente il riequilibrio per utilizzare i nuovi nodi o le nuove unità di elaborazione. Poiché questa procedura può richiedere diversi minuti, ti consigliamo di adottare un approccio conservativo e di scegliere un valore minimo più elevato. In questo modo, l'istanza si adatta perfettamente ai picchi.
- Aumenta la capacità di calcolo massima. Il valore minimo deve sempre essere almeno il dieci percento del target di capacità di calcolo massima. Ad esempio, se impostate il numero massimo di nodi su
30
, dovete impostare il numero minimo di nodi su almeno3
.
Se aumenti il valore della capacità di calcolo minima di un'istanza, Spanner tenta immediatamente di scalare l'istanza al nuovo valore minimo. Si applicano i vincoli standard. Quando la quota è esaurita, la richiesta di modifica della configurazione dell'autoscalabilità 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 l'autoscalabilità gestita, devi impostare alcuni parametri obbligatori. Esistono flag facoltativi che puoi utilizzare per indicare se vuoi utilizzare nodi o unità di elaborazione. Per ulteriori informazioni sulla creazione di una nuova istanza con il gestore della scalabilità automatica gestito o sull'attivazione della scalabilità automatica gestita su un'istanza esistente, consulta quanto segue:
I seguenti flag sono obbligatori per attivare il gestore della scalabilità automatica gestito sull'istanza:
autoscaling-high-priority-cpu-percent
autoscaling-storage-percent
Se scegli di utilizzare i nodi, devi utilizzare anche entrambi i flag riportati di seguito quando attivi l'autoscalabilità gestita:
autoscaling-min-nodes
autoscaling-max-nodes
Se scegli di utilizzare le unità di elaborazione, devi utilizzare anche entrambi i seguenti parametri quando attivi l'autoscalabilità gestita:
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'utilizzo di--nodes
imposta un numero specifico di nodi anziché un intervallo di scalabilità. Analogamente, non puoi utilizzare il flag--processing-units
con i flagautoscaling-min-processing-units
oautoscaling-max-processing-units
perché l'utilizzo 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
conautoscaling-min-processing-units
.
Ottimizzare le impostazioni
Tieni d'occhio l'utilizzo della capacità di calcolo e, se necessario, modifica le impostazioni, in particolare dopo la prima attivazione dell'autoscalatore gestito. Ti consigliamo di utilizzare la pagina Approfondimenti sul sistema nella console Google Cloud.
Controllo degli accessi
Per configurare l'autoscalabilità gestita, devi essere un entità in un ruolo che dispone di autorizzazioni di creazione e aggiornamento per l'istanza che stai configurando.
Monitoraggio
Spanner fornisce diverse metriche per aiutarti a capire quanto bene funziona il gestore della scalabilità automatica gestito durante lo scale up e lo scale down per soddisfare i requisiti del carico di lavoro. Le metriche possono anche aiutarti a valutare se le impostazioni sono ottimali per soddisfare i requisiti di costo e carico di lavoro della tua attività. Ad esempio, se noti che il numero di nodi di un'istanza è spesso vicino al numero massimo di nodi, potresti prendere in considerazione l'aumento del valore massimo. Per scoprire di più sul monitoraggio delle risorse Spanner, consulta Monitorare le istanze con Cloud Monitoring.
Le seguenti metriche vengono visualizzate in grafici nella pagina Approfondimenti sul sistema nella 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 log di controllo degli eventi di sistema ogni volta che esegue il ridimensionamento di un'istanza.
Puoi visualizzare i log degli eventi di sistema del gestore della scalabilità automatica gestito nella console Google Cloud nella pagina Approfondimenti sul sistema.
Puoi anche visualizzare i log utilizzando Esplora log:
Nella console Google Cloud, apri Esplora log:
Seleziona il progetto Google Cloud appropriato.
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"
Fai clic su Esegui query.
Il riquadro Risultati query mostra i log dell'ultima ora.
Per scoprire di più sulla visualizzazione dei log, consulta Cloud Logging. Puoi configurare gli avvisi basati su log nella pagina Esplora log in Google Cloud o utilizzando l'API Cloud Monitoring.
Passaggi successivi
- Scopri come creare un'istanza
- Scopri come modificare un'istanza per aggiungere la scalabilità automatica o modificarne le impostazioni
- Scopri come passare da una scalabilità automatica a una manuale per un'istanza