Modalità di gestione delle istanze

Le istanze sono le unità di calcolo che App Engine utilizza per eseguire scalare applicazione. In qualsiasi momento, la tua applicazione può essere eseguita su una o più istanze e le richieste vengono distribuite su tutte le istanze.

Le istanze con scalabilità manuale dovrebbero essere eseguite a tempo indeterminato, ma non viene garantita l'uptime poiché le istanze possono essere arrestate in anticipo a causa di errori o riavviate per gli aggiornamenti. Errori hardware o software che causano precoci interruzioni o riavvii frequenti possono avvenire senza preavviso e possono richiedere per la risoluzione.

Tutte le istanze flessibili possono essere riavviate su base settimanale se ci sono aggiornamenti disponibili. Questa pianificazione non è garantita. Durante i riavvii, gli aggiornamenti critici e compatibili con le versioni precedenti vengono implementati automaticamente il sistema operativo sottostante. L'immagine dell'applicazione rimarrà invariata tra i riavvii.

Controllo di integrità

App Engine invia richieste di controllo di integrità periodiche per confermare che un'istanza sia in esecuzione e per verificare che l'istanza sia completamente è iniziato e pronto ad accettare le richieste in arrivo. Per impostazione predefinita, questi controlli di integrità sono abilitate e sono note come controlli di integrità di suddivisione. Un'istanza che riceve un controllo di integrità deve rispondere al controllo entro un intervallo di tempo specificato.

Se devi estendere il comportamento predefinito dei controlli di integrità suddivisi al tuo puoi personalizzare il file app.yaml per configurare due tipi di controlli di integrità:

  • I controlli di attività rilevano che un'istanza VM e il relativo container sono in esecuzione. Quando un'istanza VM non supera il controllo di attività, l'istanza viene è stato riavviato automaticamente. I controlli di attività potrebbero non riuscire a causa della configurazione soglie e intervalli di tempo oppure a causa dell'arresto anomalo del container.
  • I controlli di idoneità rilevano che un'istanza VM è pronta per accettare i messaggi in entrata richieste. Se un'istanza VM non supera il controllo di idoneità, significa che la VM L'istanza non ha terminato l'avvio e non è pronta a ricevere richieste. Quando l'istanza VM supera il controllo di idoneità e ha completato questa viene aggiunta al pool di istanze disponibili.

Scopri di più sui comportamenti dei controllo di integrità suddivisi nella guida Migrazione ai controlli di integrità suddivisi.

Mentre l'istanza esegue questi controlli di integrità, I log di App Engine possono indicare che l'istanza si trova in uno dei seguenti stati:

  • Integro. L'istanza ha ricevuto le richieste di controllo di integrità e sta elaborando le richieste. Uno stato integro indica che l'istanza ha più di 820 MB di spazio disponibile su disco e dovrebbe rispondere a un controllo di integrità con un codice di stato HTTP 200.
  • Insalubre. L'istanza ha rifiutato le richieste di controllo di integrità e ha avuto esito negativo per rispondere a un numero specifico di richieste di controllo di integrità consecutive. App Engine continua a inviare richieste di controllo di integrità riavvia l'istanza se un'istanza in stato non integro continua a non rispondere a un numero predeterminato di controlli di integrità consecutivi.
  • Lameduck. È pianificato l'arresto o il riavvio dell'istanza. Durante gli arresti, l'istanza termina le richieste in corso e rifiuta le nuove richieste. L'app restituisce un codice 503 per indicare che l'istanza è non è in grado di gestire le richieste. Prima che un'istanza venga arrestata o riavviata, l'esecuzione dello script di chiusura ha un periodo di tempo limitato e non può essere configurato più breve o più lunga.
  • App Lameduck. L'istanza è in fase di preparazione per gestire il traffico. L'app restituisce un codice 503 per indicare che l'istanza non è in grado di gestire richieste. Quando un'istanza VM ha completato l'avvio ed è pronta per gestire il traffico, l'istanza diventerà integro ed elaborerà le richieste. Se L'istanza VM non si avvia in tempo e diventa non integro e vengono rimossi.

I comportamenti "Lameduck" e "app lameduck" fanno parte di un processo normale che a un'istanza VM.

Monitoraggio dell'utilizzo delle risorse

La pagina Istanze della console Google Cloud offre visibilità sulle prestazioni delle istanze. Puoi vedere la memoria e l'utilizzo della CPU per ogni istanza, l'uptime, il numero di richieste e altre statistiche. Puoi anche avviare manualmente il processo di arresto per qualsiasi istanza.

NTP con l'ambiente flessibile di App Engine

L'ambiente flessibile di App Engine dispone di servizi NTP (Network Time Protocol) che utilizzano Google NTP server web. Tuttavia, i servizi NTP nell'ambiente flessibile non sono modificabili.

Località istanza

Le istanze vengono posizionate automaticamente per regione geografica in base impostazioni progetto.

Scalabilità dell'istanza

Mentre un'applicazione è in esecuzione, le richieste in entrata vengono instradate a un nuova istanza del servizio o della versione appropriati. Ogni versione attiva deve avere è in esecuzione almeno un'istanza e il tipo di scalabilità di un servizio/versione controlla il modo in cui vengono create istanze aggiuntive. Puoi specificare il tipo di scalabilità nel app.yaml. Per impostazione predefinita, la tua app utilizza la scalabilità automatica, il che significa che App Engine e gestire il numero di istanze inattive.

Scalabilità automatica
La scalabilità automatica crea istanze in base al tasso di richieste, alle latenze di risposta e altre metriche dell'applicazione. Puoi specificare le soglie per ciascuno di questi e un numero minimo di istanze da mantenere sempre in esecuzione configurando l'elemento automatic_scaling.
Scalabilità manuale
La scalabilità manuale specifica il numero di istanze che vengono eseguite continuamente a prescindere dal livello di carico. Ciò permette attività come inizializzazioni complesse e applicazioni che si basano sullo stato della memoria nel tempo.