Scalabilità basata sull'utilizzo della CPU

La forma più semplice di scalabilità automatica è la scalabilità di un gruppo di istanze gestite in base all'utilizzo della CPU delle sue istanze.

Puoi anche scalare automaticamente un gruppo di istanze gestite in base alla capacità di gestione del bilanciamento del carico, alle metriche di Monitoring o alle pianificazioni.

Prima di iniziare

  • Consulta le limitazioni del gestore della scalabilità automatica.
  • Scopri i nozioni di base del gestore della scalabilità automatica.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale viene verificata l'identità per l'accesso ai servizi e alle API Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti in Compute Engine nel seguente modo.

    Seleziona la scheda relativa a come prevedi di utilizzare gli esempi in questa pagina:

    Console

    Quando utilizzi la console Google Cloud per accedere ai servizi e alle API di Google Cloud, non devi configurare l'autenticazione.

    gcloud

    1. Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init
    2. Imposta una regione e una zona predefinite.

    REST

    Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.

      Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init

Scalabilità basata sull'utilizzo della CPU

Puoi scalare automaticamente in base all'utilizzo medio della CPU di un gruppo di istanze gestite. L'utilizzo di questo criterio indica al gestore della scalabilità automatica di raccogliere l'utilizzo della CPU delle istanze nel gruppo e di determinare se è necessario scalare. Sei tu a impostare l'utilizzo target della CPU che deve essere mantenuto dal gestore della scalabilità automatica e il gestore della scalabilità automatica si impegna a 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 nel gruppo di istanze.

Puoi anche scalare in base all'utilizzo previsto della CPU. Per ulteriori informazioni e per verificare se è adatto al tuo carico di lavoro, consulta Scalabilità basata sulle previsioni.

Abilita la scalabilità automatica in base all'utilizzo della CPU

Console

  1. Nella console, vai alla pagina Gruppi di istanze.

    Vai a Gruppi di istanze

  2. Se hai un gruppo di istanze, selezionalo e fai clic su Modifica. Se non hai un gruppo di istanze, fai clic su Crea gruppo di istanze.

  3. Se non esiste alcuna configurazione di scalabilità automatica, in Scalabilità automatica fai clic su Configura scalabilità automatica.

  4. In Modalità di scalabilità automatica, seleziona On: aggiungi e rimuovi istanze al gruppo per abilitare la scalabilità automatica.

  5. Specifica il numero minimo e massimo di istanze che il gestore della scalabilità automatica deve creare in questo gruppo.

  6. Nella sezione Metriche di scalabilità automatica, se non esiste ancora una metrica di utilizzo CPU, aggiungine una:

    1. Fai clic su Aggiungi metrica.
    2. In Tipo di metrica, seleziona Utilizzo CPU.
    3. Inserisci la metrica Utilizzo CPU target desiderata. Questo valore viene trattato come percentuale. Ad esempio, per l'utilizzo della CPU del 75%, inserisci 75.
    4. In Scalabilità automatica predittiva, seleziona Off. Per scoprire di più sulla scalabilità automatica predittiva e per capire se è adatta al tuo carico di lavoro, consulta Scalabilità basata sulle previsioni.
    5. Fai clic su Fine.
  7. Puoi utilizzare il Periodo di inizializzazione per indicare al gestore della scalabilità automatica il tempo necessario per l'inizializzazione dell'applicazione. Specificare un periodo di inizializzazione preciso migliora 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.

  8. 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%. Insieme al parametro --target-cpu-utilization, è richiesto anche il parametro --max-num-replicas durante la creazione di un gestore della scalabilità automatica:

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 usare 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. Specificare un periodo di inizializzazione preciso migliora 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 abilitare la scalabilità automatica predittiva per lo scale out prima del carico previsto. Per scoprire se la scalabilità automatica predittiva è adatta al tuo carico di lavoro, consulta Scalabilità basata sulle previsioni.

Puoi verificare che la scalabilità automatica sia stata abilitata 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 disponibili di gcloud, consulta il riferimento di gcloud.

REST

Per creare un gestore della scalabilità automatica, utilizza il metodo autoscalers.insert per un gruppo di istanze gestite a livello di zona o il metodo regionAutoscalers.insert per un gruppo di istanze gestite a livello di regione.

L'esempio seguente crea un gestore della scalabilità automatica per un gruppo di istanze gestite 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 e autoscalingPolicy. autoscalingPolicy deve definire cpuUtilization e maxNumReplicas.

Puoi utilizzare il campo coolDownPeriodSec per impostare il periodo di inizializzazione, che indica al gestore della scalabilità automatica il tempo necessario per l'inizializzazione dell'applicazione. Specificare un periodo di inizializzazione preciso migliora 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 abilitare la scalabilità automatica predittiva per lo scale out prima del carico previsto. Per scoprire se la scalabilità automatica predittiva è adatta al tuo carico di lavoro, 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'abilitazione della scalabilità automatica in base all'utilizzo della CPU, completa il tutorial Utilizzo della scalabilità automatica per app a scalabilità elevata.

In che modo il gestore della scalabilità automatica gestisce l'utilizzo elevato della CPU

Durante i periodi di utilizzo intensivo della CPU, se l'utilizzo è vicino al 100%, il gestore della scalabilità automatica stima che il gruppo potrebbe essere già molto sovraccarico. In questi casi, il gestore della scalabilità automatica aumenta il numero di macchine virtuali al massimo del 50%.

Passaggi successivi