Scalabilità basata sulle previsioni


Puoi configurare la scalabilità automatica per un gruppo di istanze gestite per aggiungere o rimuovere automaticamente le istanze di macchine virtuali (VM) in base ai o riduzioni del carico. Tuttavia, se l'inizializzazione dell'applicazione richiede alcuni minuti o più, l'aggiunta di istanze in risposta alle modifiche in tempo reale potrebbe non aumentare la capacità dell'applicazione abbastanza rapidamente. Ad esempio, se è presente aumento significativo del carico (ad esempio la prima volta che gli utenti si svegliano la mattina), gli utenti potrebbero riscontrare ritardi durante l'inizializzazione dell'applicazione su nuovi di Compute Engine.

Puoi utilizzare la scalabilità automatica predittiva per migliorare i tempi di risposta per le applicazioni con tempi di inizializzazione lunghi e i cui carichi di lavoro variano in modo prevedibile con o cicli settimanali.

Quando attivi la scalabilità automatica predittiva, Compute Engine prevede il carico futuro in base alla cronologia del gruppo di istanze gestite e esegue la scalabilità fuori dal gruppo di istanze gestite prima del carico previsto, in modo che le nuove istanze siano pronte all'uso quando arriva il carico. Senza con scalabilità automatica predittiva, un gestore della scalabilità automatica può scalare delle modifiche osservate nel caricamento in tempo reale. Con la scalabilità automatica predittiva abilitata, lo strumento di scalabilità automatica funziona con i dati in tempo reale e con i dati storici per coprire sia il carico corrente sia quello previsto. Per ulteriori informazioni, consulta Come funziona la scalabilità automatica predittiva e Verificare se la scalabilità automatica predittiva è adatta al tuo carico di lavoro.

Prima di iniziare

  • Per utilizzare gli esempi delle righe di comando presenti in questa guida, installa Google Cloud CLI oppure avvia Cloud Shell.
  • Scopri i fondamenti del gestore della scalabilità automatica.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è la procedura mediante la quale la tua identità viene verificata per l'accesso alle API e ai servizi Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione Compute Engine come segue.

    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

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Per ulteriori informazioni, vedi Esegui l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.

Prezzi

La scalabilità automatica predittiva è senza costi. Tuttavia, se attivi la scalabilità automatica predittiva per ottimizzare la disponibilità, paghi le risorse Compute Engine utilizzate dal tuo gruppo di istanze gestite.

Limitazioni

  • La scalabilità automatica predittiva funziona solo con l'utilizzo della CPU come metrica di scalabilità. Le metriche di Cloud Load Balancing o Cloud Monitoring non sono supportate.
  • Compute Engine richiede 3 giorni di cronologia della scalabilità automatica basata su CPU prima può generare previsioni.
  • Le previsioni si basano su modelli di carico settimanali e giornalieri. Compute Engine non prevede eventi mensili, annuali o una tantum e non prevede modelli di carico inferiori a 10 minuti. Puoi usare la scalabilità automatica basata su pianificazione per richiedere capacità per pattern di carico singoli o di altro tipo.

Carichi di lavoro adatti

La scalabilità automatica predittiva funziona al meglio se il carico di lavoro soddisfa i seguenti criteri:

  • L'inizializzazione dell'applicazione richiede molto tempo, ad esempio se configuri un periodo di inizializzazione di più di 2 minuti.
  • Il carico di lavoro varia in modo prevedibile a seconda dei cicli giornalieri o settimanali.

Se l'inizializzazione del servizio richiede molto tempo, gli utenti potrebbero riscontrare una latenza del servizio dopo un evento di scalabilità, ovvero mentre le nuove VM sono provisionate, ma non ancora in esecuzione. La scalabilità automatica predittiva tiene conto del tempo di inizializzazione della tua applicazione e esegue lo scale out prima degli aumenti di utilizzo previsti, contribuendo ad assicurare che il numero di istanze di pubblicazione disponibili sia sufficiente per l'utilizzo target.

Per visualizzare l'anteprima dell'impatto della scalabilità automatica predittiva sul gruppo, vedi Verifica se la scalabilità automatica predittiva è adatta al tuo carico di lavoro.

Abilitazione e disabilitazione della scalabilità automatica predittiva

Puoi abilitare la scalabilità automatica predittiva durante la scalabilità in base all'utilizzo della CPU. Per saperne di più sulla configurazione della scalabilità automatica basata su CPU, consulta Scalabilità basata sull'utilizzo della CPU.

Se il tuo gruppo di istanze gestite non ha una cronologia del gestore della scalabilità automatica, possono essere necessari 3 giorni prima che L'algoritmo predittivo influisce sul gestore della scalabilità automatica. Durante questo periodo, il gruppo viene scalato in base solo ai dati in tempo reale. Dopo 3 giorni, il gruppo inizia a scalare utilizzando le previsioni. Man mano che viene raccolto un numero maggiore di carichi storici, il gestore della scalabilità automatica comprende meglio i tuoi pattern di carico e le sue previsioni migliorano. Compute Engine utilizza fino a 3 settimane della cronologia di carico del gruppo di istanze gestite per alimentare modello di machine learning.

Console

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

    Vai a Gruppi di istanze

  2. Nell'elenco, fai clic sul nome di un gruppo di istanze gestite esistente per aprire la pagina di panoramica del gruppo.

  3. Fai clic su Modifica.

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

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

  6. Specifica il numero minimo e massimo di istanze in cui vuoi che vengano gestore della scalabilità automatica per creare in questo gruppo.

  7. Nella sezione Metriche di scalabilità automatica, se una metrica Utilizzo CPU non esiste ancora, aggiungine uno:

    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 una percentuale. Ad esempio, per il 75% di utilizzo della CPU, inserisci 75.
    4. In Scalabilità automatica predittiva, seleziona Ottimizza per la disponibilità per attivare la scalabilità automatica predittiva.
      • In alternativa, se vuoi disattivare l'algoritmo predittivo e utilizzare solo il ridimensionamento automatico in tempo reale, seleziona Off.
    5. Fai clic su Fine.
  8. In Periodo di inizializzazione, specifica il tempo necessario per inizializzare un'applicazione su una nuova istanza. Questa impostazione indica al gestore della scalabilità automatica predittiva di eseguire lo scale out ulteriormente prima del carico previsto, in modo che le applicazioni vengano inizializzate quando arriva il carico.

  9. Fai clic su Salva.

gcloud

Quando imposti o aggiorni il gestore della scalabilità automatica di un gruppo di istanze gestite, includi il --cpu-utilization-predictive-method flag con uno dei seguenti valori:

  • optimize-availability: per attivare l'algoritmo predittivo
  • none (predefinito): per disattivare l'algoritmo predittivo

Se la scalabilità automatica basata su CPU non è ancora abilitata per il gruppo, devi abilitarla. Puoi utilizzare il comando set-autoscaling per configurare da zero il criterio di scalabilità automatica di un gruppo. Ad esempio, il comando seguente mostra come configurare la scalabilità automatica con le seguenti impostazioni:

  • Scalabilità automatica predittiva abilitata.
  • Utilizzo CPU target del 75%.
  • Il numero massimo di istanze impostato su 20.
  • Un periodo di inizializzazione (--cool-down-period) impostato su 5 minuti. Questo informa il modello predittivo di fare lo scale out 5 minuti prima del caricamento previsto, in modo che vengono inizializzate quando arriva il carico.
gcloud compute instance-groups managed set-autoscaling MIG_NAME \
  --cpu-utilization-predictive-method optimize-availability \
  --target-cpu-utilization 0.75 \
  --max-num-replicas 20 \
  --cool-down-period 300

Se la scalabilità automatica basata su CPU è già abilitata per il gruppo, utilizza il metodo Comando update-autoscaling per abilitare l'algoritmo predittivo:

gcloud compute instance-groups managed update-autoscaling MIG_NAME \
  --cpu-utilization-predictive-method=optimize-availability

REST

Quando crei o aggiorni un gestore della scalabilità automatica, includi il campo predictiveMethod nel corpo della richiesta con uno dei seguenti valori:

  • OPTIMIZE_AVAILABILITY: per attivare l'algoritmo predittivo
  • NONE (valore predefinito): per disattivare l'algoritmo predittivo

Se il gruppo non ha una configurazione di scalabilità automatica esistente, procedi nel seguente modo:

Se nel gruppo è già presente una configurazione di scalabilità automatica, segui questi passaggi:

Se la scalabilità automatica basata sulla CPU non è ancora attivata per il gruppo, devi attivarla.

Ad esempio, la seguente richiesta corregge una risorsa del gestore della scalabilità automatica esistente per abilita la scalabilità automatica basata su CPU con le seguenti impostazioni:

  • Scalabilità automatica predittiva abilitata.
  • Utilizzo CPU target del 75%.
  • Il numero massimo di istanze impostato su 20.
  • Un periodo di inizializzazione (coolDownPeriodSec) impostato su 5 minuti. Questa impostazione indica allo scalatore automatico predittivo di eseguire lo scale out 5 minuti prima del carico previsto, in modo che le applicazioni vengano inizializzate quando arriva il carico.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/autoscalers/

{
  "name": "AUTOSCALER_NAME",
  "target": "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME",
  "autoscalingPolicy": {
    "cpuUtilization": {
       "utilizationTarget": 0.75,
       "predictiveMethod": "OPTIMIZE_AVAILABILITY"
     },
    "maxNumReplicas": 20,
    "coolDownPeriodSec": 300
  }
}

Controllo dell'abilitazione del gestore della scalabilità automatica predittiva in corso...

Per visualizzare la configurazione attuale della scalabilità automatica di un gruppo di istanze gestite, consulta Ottenere le proprietà di un gruppo di istanze gestite.

Configurare la scalabilità automatica predittiva

Per ulteriori informazioni su come configurare l'utilizzo target, il numero minimo e massimo di istanze e il periodo di inizializzazione, consulta Scalabilità in base all'utilizzo della CPU. Quando configuri queste opzioni, il gestore della scalabilità automatica predittiva mantiene tutte le istanze al livello di utilizzo target impostato, entro il limite minimo e limiti massimi del gruppo, come un gestore della scalabilità automatica in tempo reale encoder-decoder.

Utilizza l'impostazione del periodo di inizializzazione per tenere conto del tempo necessario per l'inizializzazione dell'applicazione. Questa impostazione influenza l'anticipo con cui il gestore della scalabilità automatica predittiva avvia nuove istanze prima dell'aumento previsto del carico in modo che l'applicazione sia pronta per essere pubblicata quando arriva il carico.

Verificare se la scalabilità automatica predittiva è adatta al tuo carico di lavoro

Per vedere se la scalabilità automatica predittiva può migliorare disponibilità, puoi confrontare il rendimento della strategia Configurazione della scalabilità automatica basata su CPU rispetto alla scalabilità automatica predittiva. Non devi abilitare la scalabilità automatica predittiva per fare il confronto.

Per ulteriori informazioni sui carichi di lavoro adatti alla scalabilità automatica predittiva, consulta Carichi di lavoro adatti.

Controllo degli eventuali sovraccarichi

Il gruppo di istanze gestite con scalabilità automatica è sovraccaricato quando l'utilizzo medio della CPU supera il valore target. Per verificare se la configurazione della scalabilità automatica ha generato VM sovraccaricate nel corso degli ultimi 7 giorni e per capire se la scalabilità automatica predittiva può ridurre sovraccarichi, completa i seguenti passaggi:

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

    Vai a Gruppi di istanze

  2. Fai clic su un gruppo di istanze gestite esistente per il quale è configurata la scalabilità automatica basata sulla CPU. La si apre la pagina Panoramica del gruppo.

  3. Fai clic su Modifica.

  4. Nella sezione Scalabilità automatica, in Metriche di scalabilità automatica, espandi la sezione Utilizzo CPU e poi fai clic su Verifica se la scalabilità automatica predittiva può ottimizzare la tua disponibilità.

  5. In base ai dati degli ultimi 7 giorni, la tabella mostra quante VM sono state utilizzate al giorno e quante VM sono state sovraccaricate al giorno per le seguenti righe:

    • Configurazione attuale della scalabilità automatica: mostra le prestazioni del gestore della scalabilità automatica in base alla configurazione del gestore della scalabilità automatica negli ultimi 7 giorni.
    • Con la scalabilità automatica predittiva impostata su "Ottimizza per la disponibilità": mostra il funzionamento del gestore della scalabilità automatica se la scalabilità automatica predittiva fosse stata attivata negli ultimi 7 giorni.

Puoi utilizzare il valore "Numero di VM utilizzate al giorno" come sostituto dei costi. Ad esempio, per ridurre il numero giornaliero di VM sovraccariche, il gestore della scalabilità automatica predittiva potrebbe creare le VM in anticipo ed eseguirle per più tempo, con un conseguente aumento dei costi.

Monitoraggio e simulazione della scalabilità automatica predittiva

Puoi visualizzare le dimensioni storiche del gruppo utilizzando Cloud Monitoring. Il grafico di monitoraggio mostra in che modo la configurazione della scalabilità automatica ha scalato il gruppo nel tempo e anche in che modo la scalabilità automatica predittiva, se abilitata, avrebbe scalato il gruppo.

Per i gruppi con scalabilità automatica predittiva disabilitata, puoi utilizzare questo strumento per simulare la scalabilità automatica predittiva prima di abilitarla.

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

    Vai a Gruppi di istanze

  2. Fai clic su un gruppo di istanze gestite esistente per il quale è configurata la scalabilità automatica basata sulla CPU. La si apre la pagina Panoramica del gruppo.

  3. Fai clic su Monitoraggio per visualizzare i grafici relativi al gruppo.

  4. Nel primo grafico, fai clic sul titolo e seleziona Scalabilità automatica predittiva. Questa visualizzazione mostra le dimensioni effettive e quelle previste del gruppo.

  5. Puoi selezionare un intervallo di tempo diverso per visualizzare più cronologia o aumentare lo zoom un periodo in cui la domanda è cresciuta per vedere come la scalabilità automatica predittiva influisce sul gruppo prima del caricamento previsto.

Come funziona la scalabilità automatica predittiva

Il ridimensionamento automatico predittivo prevede la metrica di ridimensionamento in base alle tendenze storiche della metrica. Le previsioni vengono ricalcolate ogni pochi minuti, il che consente all'autoscaler di adattare rapidamente la previsione alle variazioni molto recenti del carico. Previsioni del gestore della scalabilità automatica deve avere una cronologia di almeno 3 giorni per determinare un modello di utilizzo rappresentativo del servizio prima che possa fornire previsioni. Compute Engine utilizza fino a 3 settimane di cronologia dei carichi del tuo gruppo di istanze gestite per alimentare il modello di machine learning.

Il gestore della scalabilità automatica predittiva calcola il numero di VM necessarie per raggiungere il tuo obiettivo di utilizzo in base a numerosi fattori, tra cui:

  • Il valore futuro previsto della metrica di scalabilità
  • Il valore attuale della metrica di scalabilità
  • Affidabilità delle tendenze passate, inclusa la variabilità passata della metrica di scalabilità
  • Il periodo di inizializzazione dell'applicazione configurato, chiamato anche periodo di inizializzazione

In base a questi fattori, il gestore della scalabilità automatica predittiva esegue lo scaling out del gruppo in anticipo rispetto alla domanda prevista.

Confronto tra la gestione delle VM con e senza scalabilità automatica predittiva.

Figura 1. Confronto tra il servizio di VM con e senza scalabilità automatica predittiva.

Nella Figura 1, la linea blu mostra una domanda crescente di VM. La linea nera mostra la risposta del gestore della scalabilità automatica: vengono aggiunte altre VM. Tuttavia, nel caso di applicazioni con tempi di inizializzazione lunghi, la linea grigia indica che le VM aggiunte tempo aggiuntivo prima che siano pronti per la pubblicazione, il che può comportare di gestione delle VM per soddisfare la domanda. Con la scalabilità automatica predittiva abilitata, vengono presi in considerazione l'aumento previsto della domanda e il lungo tempo di inizializzazione dell'applicazione: il gestore della scalabilità automatica risponde aggiungendo le VM in anticipo, in modo da avere un numero sufficiente di VM in servizio. Puoi configurare l'anticipo con cui vengono aggiunte le nuove istanze impostando il periodo di inizializzazione.

Dati sull'utilizzo in tempo reale

Il gestore della scalabilità automatica predittivo non può determinare un pattern per tutte le modifiche future all'utilizzo in base ai dati storici, quindi funziona perfettamente anche con i dati in tempo reale. Per Ad esempio, un evento di notizie imprevisto potrebbe contribuire a un picco di utilizzo che che non poteva essere previsto basandosi solo sulla cronologia. Per gestire queste variazioni imprevedibili del carico, il gestore della scalabilità automatica predittiva risponde nel seguente modo:

  • Adatta le sue previsioni: le previsioni vengono ricalcolate costantemente, in pochi minuti, in modo da adeguarsi ai dati più recenti. I tempi esatti degli aggiustamenti ai nuovi pattern dipendono, tra le altre cose, dalla ripetibilità del nuovo pattern e dalla grandezza della differenza tra il nuovo pattern e le previsioni passate.
  • Si basa su dati in tempo reale: il numero consigliato di istanze del gestore della scalabilità automatica, basato sui valori in tempo reale della metrica, è sempre sufficiente per soddisfare l'utilizzo target del gruppo. Se il valore attuale di un segnale in tempo reale è maggiore della previsione, il valore attuale dell'indicatore ha la priorità. sulla previsione. Di conseguenza, i gruppi di istanze gestite con scalabilità automatica predittiva hanno sempre più disponibilità rispetto ai gruppi di istanze gestite che non hanno.

Due grafici mostrano come le previsioni si adattano all'utilizzo effettivo della CPU.

Figura 2. Due grafici mostrano come le previsioni si adattano all'utilizzo effettivo della CPU.

Nella Figura 2, la linea gialla tratteggiata mostra la previsione al momento t1. Ma l'utilizzo effettivo della CPU, come mostrato dalla linea blu continua, è diverso da previsto. Nel grafico a sinistra, l'utilizzo effettivo della CPU è superiore a quello previsto. Attivato nel grafico a destra, l'utilizzo effettivo della CPU è inferiore a quello previsto. L'icona blu tratteggiata che mostra la previsione rettificata.

Picchi brevi e imprevedibili

I picchi brevi e imprevedibili vengono descritti in tempo reale. Il gestore della scalabilità automatica crea il numero di istanze necessario per mantenere l'utilizzo nel target configurato, in base al valore effettivo attuale della metrica. Tuttavia, queste istanze non vengono create in anticipo, come mostrato nella figura seguente.

Un picco breve e imprevedibile fa sì che lo scalatore reagisca in tempo reale.

Figura 3. Un breve picco imprevedibile provoca una reazione del gestore della scalabilità automatica in tempo reale.

Nella figura 3, la linea blu continua mostra l'utilizzo effettivo della CPU. Non è stato possibile prevedere un picco imprevisto di utilizzo della CPU. Poiché il ridimensionamento automatico monitora sempre i dati in tempo reale, aggiunge istanze per far fronte al picco. La linea nera solida illustra l'aggiunta reattiva di VM da parte del gestore della scalabilità automatica in risposta al picco. La linea grigia continua mostra il numero di VM gestite. La linea grigia è in ritardo rispetto alla linea nera a causa del tempo di inizializzazione dell'applicazione. In questo scenario, il gruppo è temporaneamente sovraccarico.

Cali improvvisi

Un altro tipo di cambiamento imprevedibile nell'utilizzo è un calo improvviso, ad esempio una dovuto a un errore in una parte dello stack di applicazioni. In questo caso, di istanze che segue inizialmente la previsione. Tuttavia, nel tempo, la previsione si adegua all'utilizzo inferiore a quello previsto, con un conseguente ridimensionamento. Le tempistiche esatte di questo aggiustamento dipendono da numerosi fattori, tra cui la frequenza con cui il pattern si è verificato in passato, la durata del calo e la sua entità.

Un calo improvviso fa sì che il gestore della scalabilità automatica predittiva modifichi la sua previsione.

Figura 4. Un calo improvviso fa sì che il gestore della scalabilità automatica predittiva modifichi la sua previsione.

Nella Figura 4, la linea gialla tratteggiata mostra la previsione nel punto t1. Ma l'utilizzo effettivo della CPU, come mostrato dalla linea blu continua, è sceso al di sotto di previsto. La linea blu tratteggiata mostra la previsione aggiornata, che è regolata automaticamente dopo aver osservato un utilizzo inferiore a quanto previsto. Di conseguenza, il gestore della scalabilità automatica rimuove le istanze dopo il periodo di stabilizzazione standard.

Dati storici

Per iniziare il gestore della scalabilità automatica predittivo richiede almeno 3 giorni di caricamento storico previsione. Se hai un nuovo gruppo MIG privo di dati storici, Compute Engine esegue il ridimensionamento del gruppo in modo reattivo utilizzando i dati in tempo reale finché non diventano disponibili dati storici sufficienti. Dopo 3 giorni, man mano che Compute Engine raccoglie ulteriori dati di utilizzo, le previsioni migliorano.

Se aggiorni l'applicazione creando un nuovo gruppo di istanze gestite ed eliminando quello precedente, ad esempio un deployment blue-green, il nuovo gruppo di istanze gestite ha bisogno di 3 giorni di dati storici sul carico prima che l'autoscaling predittivo possa iniziare a generare nuovamente le previsioni. Se vuoi conservare la cronologia dei caricamenti nei diversi gruppi di istanze gestite in modo che le previsioni possano iniziare immediatamente quando crei un nuovo gruppo, contattaci per richiedere le istruzioni per partecipare a una preview privata.

Passaggi successivi