La forma più semplice di scalabilità automatica consiste nello scalare un gruppo di istanze gestite (MIG) in base all'utilizzo della CPU delle sue istanze.
Puoi anche applicare la scalabilità automatica a un MIG in base alla capacità di gestione del bilanciamento del carico, alle metriche di monitoraggio o alle pianificazioni.
Prima di iniziare
- Esamina le limitazioni del gestore della scalabilità automatica.
- Scopri i concetti fondamentali del gestore della scalabilità automatica.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione verifica la tua identità per l'accesso a Google Cloud servizi e API. Per eseguire
codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su
Compute Engine selezionando una delle seguenti opzioni:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il seguente comando:
gcloud init
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
- Set a default region and zone.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il seguente comando:
gcloud init
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud .
Scalabilità basata sull'utilizzo della CPU
Puoi utilizzare la scalabilità automatica in base all'utilizzo medio della CPU di un gruppo di istanze gestite (MIG). L'utilizzo di questa policy indica al gestore della scalabilità automatica di raccogliere l'utilizzo della CPU delle istanze nel gruppo e di determinare se è necessario eseguire la scalabilità. Imposti l'utilizzo target della CPU che il gestore della scalabilità automatica deve mantenere e il gestore della scalabilità automatica si adopera per mantenere questo livello.
Il gestore della scalabilità automatica tratta il livello di utilizzo della CPU target come una frazione dell'utilizzo medio di tutte le vCPU nel tempo nel gruppo di istanze. Se l'utilizzo medio delle vCPU totali supera l'utilizzo target, il gestore della scalabilità automatica aggiunge altre istanze VM. Se l'utilizzo medio delle vCPU totali è inferiore all'utilizzo target, il gestore della scalabilità automatica rimuove le istanze. Ad esempio, l'impostazione di un utilizzo target di 0,75 indica al gestore della scalabilità automatica di mantenere un utilizzo medio del 75% tra tutte le vCPU del gruppo di istanze.
Puoi anche eseguire la scalabilità in base all'utilizzo previsto della CPU. Per ulteriori informazioni e per sapere se questa opzione è adatta al tuo workload, consulta Scalabilità basata sulle previsioni.
Attiva la scalabilità automatica basata sull'utilizzo della CPU
Console
Nella console, vai alla pagina Gruppi di istanze.
Se hai un gruppo di istanze, fai clic sul nome del gruppo di istanze, quindi su Modifica. Nella pagina di modifica del gruppo di istanze, segui questi passaggi:
- Fai clic su Dimensioni gruppo e scalabilità automatica per espandere la sezione.
- Fai clic su Configura scalabilità automatica.
Se non hai un gruppo di istanze, fai clic su Crea gruppo di istanze e fai quanto segue:
- Nel campo Nome, specifica un nome per il gruppo.
- Nell'elenco Modello di istanza, seleziona un modello.
Nella sezione Località, a seconda che tu stia creando un MIG a livello di zona o di regione, scegli un'opzione come segue:
- Per un MIG a livello di zona, seleziona Zona singola, quindi seleziona una regione e una zona.
- Per un gruppo di istanze gestite a livello di regione, seleziona Più zone, quindi seleziona una regione e le zone.
Nella sezione Scalabilità automatica, viene aggiunto per impostazione predefinita un indicatore di scalabilità automatica di utilizzo della CPU. Puoi utilizzare i valori predefiniti per il segnale o procedere nel seguente modo:
- Specifica il numero minimo e massimo di istanze che il gestore della scalabilità automatica dovrà creare in questo gruppo.
Per modificare l'utilizzo CPU target, fai clic sul segnale di utilizzo CPU per espandere la sezione e specificare la percentuale.
- In Scalabilità automatica predittiva, seleziona Off. Per saperne di più sulla scalabilità automatica predittiva e per sapere se è adatta al tuo workload, consulta Scalabilità basata sulle previsioni.
Fai clic su Fine.
Puoi utilizzare Periodo di inizializzazione per comunicare al gestore della scalabilità automatica il tempo necessario per l'inizializzazione della tua applicazione. Specificando un periodo di inizializzazione preciso è possibile migliorare le decisioni del gestore della scalabilità automatica. Ad esempio, durante lo scale out, il gestore della scalabilità automatica ignora i dati provenienti dalle VM che sono ancora in fase di inizializzazione, perché potrebbero non rappresentare il normale utilizzo della tua applicazione. Il periodo di inizializzazione predefinito è di 60 secondi.
Fai clic su Salva.
gcloud
Utilizza il sottocomando
set-autoscaling
per abilitare la scalabilità automatica per un gruppo di istanze gestite. Ad esempio, il seguente comando crea un gestore della scalabilità automatica con un utilizzo della CPU target del 60%. Quando crei un gestore della scalabilità automatica, oltre al parametro--target-cpu-utilization
, è necessario anche il parametro--max-num-replicas
:gcloud compute instance-groups managed set-autoscaling example-managed-instance-group \ --max-num-replicas 20 \ --target-cpu-utilization 0.60 \ --cool-down-period 90
Puoi impostare il flag
--cool-down-period
per impostare il periodo di inizializzazione, che indica al gestore della scalabilità automatica il tempo necessario per l'inizializzazione dell'applicazione. Specificando un periodo di inizializzazione preciso è possibile migliorare le decisioni del gestore della scalabilità automatica. Ad esempio, durante lo scale out, il gestore della scalabilità automatica ignora i dati provenienti dalle VM che sono ancora in fase di inizializzazione, perché potrebbero non rappresentare il normale utilizzo della tua applicazione. Il periodo di inizializzazione predefinito è di 60 secondi.Facoltativamente, puoi attivare la scalabilità automatica predittiva per fare lo scale out prima del carico previsto. Per sapere se la scalabilità automatica predittiva è adatta al tuo workload, consulta Scalabilità basata sulle previsioni.
Puoi verificare che la scalabilità automatica sia stata attivata correttamente utilizzando il sottocomando
instance-groups managed describe
, che descrive il gruppo di istanze gestite corrispondente e fornisce informazioni su eventuali funzionalità di scalabilità automatica per quel gruppo di istanze:gcloud compute instance-groups managed describe example-managed-instance-group
Per un elenco dei comandi e dei flag
gcloud
disponibili, consulta la documentazione di riferimento digcloud
.REST
Per creare un gestore della scalabilità automatica, utilizza il metodo
autoscalers.insert
per un MIG a livello di zona o il metodoregionAutoscalers.insert
per un MIG a livello di regione.L'esempio seguente crea un gestore della scalabilità automatica per un MIG a livello di zona:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers/
Il corpo della richiesta deve contenere i campi
name
,target
eautoscalingPolicy
.autoscalingPolicy
deve definirecpuUtilization
emaxNumReplicas
.Puoi impostare il campo
coolDownPeriodSec
in modo da configurare un periodo di inizializzazione che indichi al gestore della scalabilità automatica il tempo necessario per inizializzare l'applicazione. Specificando un periodo di inizializzazione preciso è possibile migliorare le decisioni del gestore della scalabilità automatica. Ad esempio, durante lo scale out, il gestore della scalabilità automatica ignora i dati provenienti dalle VM che sono ancora in fase di inizializzazione, perché potrebbero non rappresentare il normale utilizzo della tua applicazione. Il periodo di inizializzazione predefinito è di 60 secondi.Facoltativamente, puoi attivare la scalabilità automatica predittiva per fare lo scale out prima del carico previsto. Per sapere se la scalabilità automatica predittiva è adatta al tuo workload, consulta Scalabilità basata sulle previsioni.
{ "name": "example-autoscaler", "target": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instanceGroupManagers/example-managed-instance-group", "autoscalingPolicy": { "maxNumReplicas": 10, "cpuUtilization": { "utilizationTarget": 0.6 }, "coolDownPeriodSec": 90 } }
Per ulteriori informazioni sull'attivazione della scalabilità automatica basata sull'utilizzo della CPU, completa il tutorial Utilizzo della scalabilità automatica per app altamente scalabili.
Come il gestore della scalabilità automatica gestisce un elevato utilizzo della CPU
Durante i periodi di elevato utilizzo della CPU, se l'utilizzo è vicino al 100%, il gestore della scalabilità automatica stima che il gruppo potrebbe essere già molto sovraccaricato. In questi casi, il gestore della scalabilità automatica aumenta il numero di macchine virtuali al massimo del 50%.
Passaggi successivi
- Scopri come attivare la scalabilità automatica predittiva.
- Scopri di più sull'organizzazione dei gestori della scalabilità automatica.
- Scopri il processo decisionale dei gestori della scalabilità automatica.
- Scopri come utilizzare più indicatori di scalabilità automatica per scalare il gruppo.
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-10-19 UTC.
-