Configurazione del ridimensionamento dell'applicazione
Con IBM Cloud® Code Engine, non è necessario preoccuparsi del ridimensionamento dell'applicazione, poiché il numero di istanze attive viene automaticamente aumentato o ridotto (fino a zero) in base ai carichi di lavoro in entrata. Con la scalabilità automatica, non paghi per le risorse che non sono utilizzate.
Code Engine controlla il numero di richieste nel sistema e ridimensiona le istanze dell'applicazione per soddisfare il carico di richieste in entrata, incluse le connessioni HTTP alla tua applicazione. Queste connessioni HTTP possono essere richieste provenienti dall'esterno del tuo progetto, da altri carichi di lavoro in esecuzione nel tuo progetto o da produttori di eventi a cui potresti essere registrato, indipendentemente da dove si trovano tali produttori. Code Engine replica automaticamente le istanze dell'applicazione e configura l'infrastruttura di rete per bilanciare il carico delle richieste tra tutte le istanze.
Come funziona il ridimensionamento
Code Engine monitora il numero di richieste nel sistema e adegua il numero di istanze dell'applicazione, nel rispetto dei limiti imposti dalle impostazioni di concorrenza dell'applicazione.
Per osservare il ridimensionamento dell'applicazione dalla consoleCode Engine, vai alla tua pagina specifica dell'applicazione. Durante l'esecuzione dell'applicazione, il numero di istanze
in esecuzione è 1 o superiore in base al numero massimo di istanze specificato. Quando l'applicazione gestisce meno richieste della sua simultaneità di destinazione configurata, l'applicazione ridimensiona il numero di istanze
in esecuzione fino al numero minimo configurato di istanze. Se il numero minimo di istanze è impostato su 0 (valore predefinito), l'applicazione scende a zero e il numero di istanze per l'applicazione riflette le istanze 0.
Quando l'applicazione viene ridimensionata e una richiesta viene instradata all'applicazione, Code Engine ridimensiona l'applicazione e instrada la richiesta all'istanza dell'applicazione appena creata.
Affinché le applicazioni possano essere ridimensionate in modo corretto, il codice dell'applicazione deve gestire un segnale SIGTERM. Quando Code Engine riduce automaticamente la propria capacità, viene inviato un segnale SIGTERM all'applicazione.
Se la tua applicazione non gestisce il segnale SIGTERM, le tue istanze dell'applicazione rimangono nello stato Terminating per il tempo configurato dal valore di timeout della richiesta (il valore predefinito è 300 secondi). Allo
scadere del timeout della richiesta, Code Engine invia un segnale SIGKILL per arrestare forzatamente le istanze dell'app che si trovano nello stato " Terminating ".
Ridimensionamento dei limiti
È possibile configurare i limiti di scalabilità impostando un intervallo di valori per il numero minimo e massimo di istanze, entro il quale Code Engine regola automaticamente il numero di istanze attive dell'applicazione. Configurare questo intervallo quando si creano o si aggiornano le applicazioni.
-
Numero minimo di istanze - Il numero minimo di istanze dell'applicazione sempre in esecuzione, anche se non viene elaborata alcuna richiesta. Se impostato su
0(predefinito) Code Engine rimuove tutte le istanze quando nessun traffico raggiunge l'applicazione. Per mantenere sempre un'istanza in esecuzione della propria applicazione, impostare questo valore su un valore maggiore di0. Quando crei o aggiorni un'applicazione con Code Engine dalla console, imposta il numero minimo di valori di istanze nella sezione di ridimensionamento automatico della scheda Risorse & ridimensionamento. Con la CLI, specifica l'opzione--min-scalenei comandiapp createeapp update. -
Numero massimo di istanze - Il numero massimo di istanze che possono essere in esecuzione per l'app. Il ridimensionamento automatico avviene fino a questo limite. Se imposti questo valore su
0, l'applicazione viene ridimensionata in base alle necessità e il ridimensionamento dell'applicazione è limitato solo dalle istanze per la quota di risorse per il progetto della tua applicazione. Vedi Limiti e quote per Code Engine. Quando crei o aggiorni un'applicazione con Code Engine dalla console, imposta il numero massimo di valori di istanze nella sezione Ridimensionamento automatico della scheda Risorse & ridimensionamento. Con la CLI, specifica l'opzione--max-scalenei comandiapp createeapp update. Il valore predefinito di questa opzione è10.
Quando connetti le tue applicazioni ai produttori di eventi, ricordati di tenere conto della frequenza e del volume degli eventi di tali produttori quando imposti i tuoi limiti di scala. Ad esempio, se si prevede di ricevere molti eventi allo stesso tempo e l'elaborazione di ciascun evento può richiedere diversi minuti, potrebbe essere necessario un valore di scala massimo superiore rispetto a quello che si avrebbe se ciascun evento potesse essere elaborato rapidamente. Se si imposta il valore su un valore troppo basso, potrebbero verificarsi ritardi nella ricezione di eventi o anche eventi eliminati a causa di timeout mentre si attende che le risorse di elaborazione siano libere.
Impostazioni di ridimensionamento automatico per simultaneità e tempificazione
Utilizzare le impostazioni di configurazione riportate di seguito per controllare la scalabilità dell'applicazione.
-
Simultaneità - Questo valore indica quante richieste ogni istanza della tua app può elaborare contemporaneamente. Ad esempio, un valore di valuta pari a 100 significa che il codice può gestire 100 richieste simultanee contemporaneamente. Questo valore è un "limite rigido", il che significa che Code Engine non consente più del numero di richieste (come specificato con l'impostazione di simultaneità) per raggiungere una qualsiasi istanza della tua applicazione. Pertanto, se il tuo codice è a thread singolo e può elaborare solo una richiesta alla volta, considera di impostare la simultaneità su
1. Quando il numero specificato di richieste viene inviato a tutte le istanze in esecuzione dell'applicazione, Code Engine aumenta il numero di istanze in preparazione per ulteriori richieste. Quando crei o aggiorni un'applicazione con Code Engine dalla console, imposta il valore di simultaneità massima nella sezione di ridimensionamento automatico della scheda Risorse & ridimensionamento. Con la CLI, specifica l'opzione--concurrencynei comandiapp createeapp update. -
Simultaneità di destinazione - Questo valore agisce come un "limite soft" o numero di richieste per istanza che si desidera in un sistema caricato. Ad esempio, se specifichi
concurrencycome100e specifichitarget concurrencycome70, Code Engine tenta di limitare il numero di richieste per istanza a 70. La specifica di questa opzione non garantisce che le richieste per istanza non superino 70 perché molto probabilmente si verificheranno durante un aumento del traffico. Tuttavia, il buffer tra 70 e 100 consente al sistema di creare nuove istanze per riportare il carico per istanza a 70 (o meno) per istanza. Setarget concurrencynon è specificato, il valore predefinito èconcurrency. Quando crei o aggiorni un'applicazione con Code Engine dalla console, imposta il valore di simultaneità di destinazione nella sezione Ridimensionamento automatico della scheda Risorse & ridimensionamento. Con la CLI, specifica l'opzione--concurrency-targetnei comandiapp createeapp update. -
Timeout richiesta - La quantità di tempo, in secondi, per cui l'applicazione deve rispondere alle richieste, altrimenti non riesce. Quando crei o aggiorni un'applicazione con Code Engine dalla console, imposta il valore di timeout della richiesta nella sezione Ridimensionamento automatico della scheda Risorse & ridimensionamento. Con la CLI, specifica l'opzione
--request-timeoutnei comandiapp createeapp update. -
Ritardo di riduzione della scalabilità - Il tempo, espresso in secondi, che deve trascorrere con un livello di concorrenza ridotto prima che l'applicazione riduca la propria scalabilità. Se si conosce il pattern delle richieste in entrata alla propria applicazione, è possibile scegliere di specificare un valore maggiore del valore predefinito di
0per ritardare la riduzione della propria applicazione. Se si utilizza un valore elevato per questa opzione, il numero medio di istanze dell'applicazione in esecuzione simultanea potrebbe aumentare, il che comporta costi aggiuntivi. Anche con un'impostazione di ritardo di riduzione di0, il sistema attende per un breve periodo di tempo prima che l'applicazione riduca il numero di istanze per assicurare che un calo della simultaneità della richiesta sia abbastanza stabile da garantire una riduzione. Quando crei o aggiorni un'applicazione con Code Engine dalla console, imposta il valore di ritardo del ridimensionamento decrementale nella sezione Ridimensionamento automatico della scheda Risorse & ridimensionamento. Con la CLI, specifica l'opzione--scale-down-delaynei comandiapp createeapp update.
Ad esempio, se il valore del numero massimo di istanze è impostato su 10 e la simultaneità è impostata su 100, un'applicazione può elaborare 1000 richieste simultanee prima che si verifichi una potenziale accodamento
di richieste. Se prevedi più di 1000 richieste contemporaneamente, potresti considerare di aumentare il valore del numero massimo di istanze per la tua applicazione.
Per ulteriori informazioni sul funzionamento di Code Engine, vedere Regolazione del ritardo di riduzione della scala di IBM Cloud Code Engine per ridurre i tempi di risposta delle applicazioni.
Se imposti il numero minimo di istanze uguale al numero massimo di istanze, il ridimensionamento non si verifica e i valori di valuta di destinazione e di ritardo del ridimensionamento non vengono applicati. Tuttavia, il valore di simultaneità è ancora attivo.
Scenario di esempio per il ridimensionamento automatico
Si supponga di disporre di una applicazione configurata con le seguenti impostazioni di ridimensionamento automatico.
- Numero minimo di istanze = 4
- Numero massimo di istanze = 20
- Simultaneità = 2
Con queste impostazioni, la tua app può elaborare 2 richieste simultanee allo stesso tempo. Quando non c'è traffico, la tua applicazione ridimensiona automaticamente a 4 istanze. Le 4 istanze possono gestire solo 4 * 2 (valuta) = 8 richieste. L'applicazione può scalare fino a un massimo di 20 istanze, in modo che le 20 istanze possano gestire 20 * 2 (valuta) = 40 richieste, supponendo impostazioni di CPU e memoria sufficienti per l'applicazione.
Si supponga che l'applicazione sia un'applicazione web statica che richiede 6 chiamate all'applicazione per caricare una pagina di accesso. Si supponga che 10 persone accedano alla pagina di login dell'applicazione contemporaneamente (10 * 6 = 60 chiamate). Poiché 60 chiamate sono superiori a 40 richieste che possono essere gestite dalla tua applicazione, gli utenti dell'applicazione probabilmente osservano lentezza quando le chiamate vengono accodate.
Dopo circa un minuto di assenza di traffico verso la tua applicazione, Code Engine inizia a ridurre automaticamente. Quando la tua applicazione viene ridimensionata, alcune istanze vengono impostate nello stato Terminating. Code
Engine invia un segnale SIGTERM alla tua applicazione e il codice deve gestire questo segnale e arrestarlo. Se la tua applicazione non gestisce questo segnale, le tue istanze dell'applicazione rimangono nello stato Terminating per il tempo configurato dal valore di timeout della richiesta (il valore predefinito è 300 secondi). Dopo la durata del timeout della richiesta, Code Engine invia un segnale SIGKILL per arrestare forzatamente le istanze dell'applicazione
nello stato Terminating.
Se hai 8 istanze attive e 12 istanze rimangono nello stato Terminating per 300 secondi (5 minuti). Queste 12 istanze non ricevono alcuna richiesta. Se arrivano più di 8 * 2 (valuta) = 16 richieste, Code Engine ridimensiona le
nuove istanze.
In questo esempio, il valore di simultaneità di 2 è basso per questo contenuto statico. Devi determinare i valori di scalabilità automatica da impostare per la tua applicazione, che dipende da cosa può gestire l'implementazione
della tua applicazione con le sue risorse di memoria e CPU assegnate.
Ottimizza latenza e velocità di trasmissione
Per ottimizzare la latenza e la velocità effettiva dell'applicazione, comprendere i pro e i contro di alcuni modelli comuni e delle procedure ottimali per configurare la simultaneità del contenitore.
Utilizzare l'impostazione per la simultaneità per specificare il numero massimo di richieste che possono essere elaborate simultaneamente per istanza quando si crea o si aggiorna un'applicazione. Dalla console di Code Engine, impostare il valore
di concorrenza nella sezione Runtime. Con la CLI, utilizza l'opzione --concurrency (alias --cn) con il comando app create o app update.
| Modello | Pro | Contro |
|---|---|---|
Simultaneità singola, --cn=1 |
Scegliere la singola configurazione di simultaneità quando l'applicazione serve un carico di lavoro che richiede molta memoria o molta CPU perché solo una richiesta alla volta entra nell'istanza dell'applicazione e quindi ottiene l'intera quantità di CPU e memoria configurata per l'istanza. | Applicazioni che utilizzano il modello di simultaneità singola scalabile in modo rapido. Il ridimensionamento incrementale potrebbe introdurre ulteriore latenza e una velocità effettiva inferiore perché è più costoso creare una nuova istanza dell'applicazione che riutilizzarne una esistente. Non scegliere questo modello se le richieste possono essere elaborate contemporaneamente e la latenza è un aspetto critico dell'applicazione. |
High - concurrency, --cn=100 (predefinito) o superiore |
Scegli questa configurazione se la tua applicazione serve un volume elevato di carichi di lavoro di richiesta o risposta HTTP che non sono ad uso intensivo di CPU o di memoria e possono attendere le risorse. È possibile scegliere questa configurazione di simultaneità per un backend API che legge e scrive i dati sulle operazioni di creazione, richiamo, aggiornamento ed eliminazione in un database remoto. Mentre alcune richieste sono in attesa di I/O, altre possono essere elaborate senza influire sulla latenza e sulla velocità di trasmissione. | Questa impostazione non è ottimale quando le richieste simultanee competono per CPU, memoria o I/O perché la concorrenza per le risorse può ritardare l'esecuzione e influire negativamente sulla latenza e sulla velocità di trasmissione. |
Simultaneità ottimale, --cn=N |
Scegliere la configurazione di simultaneità ottimale se si conosce la quantità di risorse richieste per una richiesta singola per soddisfare il tempo di risposta desiderato per l'applicazione. Potresti scegliere questa configurazione se
la tua applicazione è un'applicazione di traduzione della lingua naturale, dove il modello di machine learning per la conversione della lingua è 32 GB e un singolo calcolo di traduzione ha bisogno di 0.7 vCPU
per ogni richiesta. Puoi scegliere una configurazione di 9 vCPUs e 32 GB di memoria per istanza. La simultaneità ottimale del contenitore è di circa 13 (9 vCPU/0.7 vCPU). |
Non scegliere la configurazione di simultaneità ottimale se non si conoscono i requisiti di risorsa per l'applicazione. L'impostazione della simultaneità del contenitore errata può portare a una scalabilità troppo aggressiva o troppo lenta, che potrebbe influire sulla latenza, sul tasso di errore e sui costi della tua applicazione. Per ulteriori informazioni, consultare Determinazione della simultaneità per il contenitore dell'applicazione. |
Simultaneità infinita, --cn=0 (disabilitato) |
Disabilitato | La configurazione di simultaneità infinita non è supportata in Code Engine. La configurazione della simultaneità infinita inoltra quante più richieste possibili a una singola istanza dell'applicazione, il che può ritardare il ridimensionamento di ulteriori istanze dell'applicazione. |
Determinazione della simultaneità del tuo contenitore di applicazione
Il valore di simultaneità del contenitore ottimale è determinato dal numero massimo di richieste simultanee che l'applicazione può gestire con una latenza di richiesta accettabile.
La simultaneità del contenitore ha un impatto diretto sulla velocità di riuscita, la latenza e la velocità di trasmissione dell'applicazione. Quando il valore di simultaneità del contenitore è troppo elevato per essere gestito dall'applicazione,
la latenza e la velocità di trasmissione vengono influenzate negativamente e potresti osservare le risposte di errore 502 e 503.
Quando il valore di simultaneità del contenitore è troppo basso per l'applicazione, il sistema ridimensiona l'applicazione più rapidamente e distribuisce la richiesta tra molte istanze dell'applicazione, introducendo ulteriori costi e latenza.
Durante un burst di caricamento, un valore di simultaneità basso può anche portare a risposte 502 temporanee quando i buffer interni del sistema vengono eseguiti.
Per determinare la configurazione di simultaneità del contenitore per la tua applicazione, esamina le richieste e la latenza.
-
Creare un'applicazione e impostarne la simultaneità su
1000(max) e siamin-scalechemax-scalesu1.ibmcloud ce application create --name APPNAME --image APPIMAGE --min-scale=1 --max-scale=1 --concurrency=1000 -
Iniziare inviando una frequenza elevata di richieste. Se si verificano errori
502, diminuire la frequenza fino a quando il risultato non mostra una percentuale di esito positivo del 100%. -
Trova la latenza della richiesta dell'output del passo 2. Se la latenza della richiesta non è accettabile, diminuire ulteriormente la velocità della richiesta fino a quando la latenza della richiesta non risulta accettabile. Notare che la durata della richiesta è importante anche perché fa la differenza se il calcolo della richiesta richiede
2secondi o100millisecondi.La frequenza e la latenza della tua richiesta accettabili variano in base alle tue caratteristiche dell'applicazione e alla tua configurazione di ridimensionamento. Ad esempio, se il calcolo all'interno dell'applicazione richiede circa 100 ms e l'impostazione di simultaneità è 10, un'istanza dell'applicazione è in grado di elaborare circa 100 richieste al secondo con una latenza di circa 100 ms (ignorando la latenza di rete).
-
Per calcolare il valore di simultaneità del contenitore per la tua applicazione, prendi la tariffa dal passo 2 (in
req/s) e dividi per la latenza del passo 3 (in secondi):CC = RATE/LATENCY. Ad esempio, se la frequenza è80richieste al secondo e la latenza è2secondi, la simultaneità risultante è simultanea =80 req/s / 2 s = 40. -
Aggiornare l'applicazione per impostare la simultaneità del contenitore sul valore trovato nel passo precedente ed eseguire nuovamente il carico di lavoro per controllare se la frequenza di riuscita e la latenza sono accettabili.
-
Sperimentare con l'applicazione aumentando il valore di simultaneità del contenitore e osservando il tasso di successo e la latenza.
-
Aggiorna la tua applicazione con il valore di simultaneità del contenitore ottimale e rimuovi i limiti
min-Scaleemax-scaleper consentire all'applicazione di scalare automaticamente.
Osservazione della scalabilità della tua applicazione con la CLI
Puoi osservare il numero di istanze in esecuzione della tua applicazione con la CLI.
-
Creare un'applicazione con il comando
app create.ibmcloud ce application create --name myapp --image icr.io/codeengine/helloworld -
Chiamare l'applicazione. Puoi ottenere l' URL della tua applicazione dall'output del comando
app createoppure puoi eseguireibmcloud ce app get --name myapp --output url.curl https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud -
Eseguire il comando
application getper visualizzare lo stato dell'applicazione. Ricercare il valore perRunning instances. In questo esempio, l'applicazione ha un'istanza in esecuzione1. Ad esempio,ibmcloud ce application get --name myappOutput di esempio
[...] OK Name: myapp [...] URL: https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud Cluster Local URL: http://myapp.4svg40kna19.svc.cluster.local Console URL: https://cloud.ibm.com/codeengine/project/us-south/01234567-abcd-abcd-abcd-abcdabcd1111/application/myapp/configuration Status Summary: Application deployed successfully Environment Variables: Type Name Value Literal CE_API_BASE_URL https://api.private.us-south.codeengine.cloud.ibm.com Literal CE_APP myapp Literal CE_DOMAIN us-south.codeengine.appdomain.cloud Literal CE_PROJECT_ID abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Literal CE_REGION us-south Literal CE_SUBDOMAIN abcdabcdab Image: icr.io/codeengine/helloworld Resource Allocation: CPU: 1 Ephemeral Storage: 400M Memory: 4G Revisions: myapp-ds8fn-1: Age: 6m25s Traffic: 100% Image: icr.io/codeengine/helloworld (pinned to fe0446) Running Instances: 1 Runtime: Concurrency: 100 Maximum Scale: 10 Minimum Scale: 0 Timeout: 300 Conditions: Type OK Age Reason ConfigurationsReady true 6m10s Ready true 5m56s RoutesReady true 5m56s Events: Type Reason Age Source Messages Normal Created 6m28s service-controller Created Configuration "myapp" Normal Created 6m28s service-controller Created Route "myapp" Instances: Name Revision Running Status Restarts Age myapp-ds8fn-1-deployment-79bdd76749-khtmw myapp-ds8fn-1 2/2 Running 0 32sAttendi qualche minuto, poiché la scalabilità della tua applicazione può richiedere alcuni minuti.
-
Eseguire nuovamente il comando
application gete notare che il valore perRunning instancesè stato scalato a zero. Quando l'applicazione gestisce meno richieste della sua simultaneità di destinazione configurata, l'applicazione ridimensiona il numero di istanze in esecuzione fino al numero minimo configurato di istanze. In questo scenario, il numero di istanze in esecuzione scala automaticamente a zero. Quando l'opzione--min-scaleviene impostata su0(valore predefinito), il numero di istanze in esecuzione viene automaticamente ridimensionato a zero.Attendi qualche minuto, poiché la scalabilità della tua applicazione può richiedere alcuni minuti.
ibmcloud ce application get -n myappOutput di esempio
OK Name: myapp [...] URL: https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud Cluster Local URL: http://myapp.4svg40kna19.svc.cluster.local Console URL: https://cloud.ibm.com/codeengine/project/us-south/01234567-abcd-abcd-abcd-abcdabcd1111/application/myapp/configuration Image: icr.io/codeengine/helloworld Resource Allocation: CPU: 1 Ephemeral Storage: 400M Memory: 4G Revisions: myapp-ds8fn-1: Age: 12m Traffic: 100% Image: icr.io/codeengine/helloworld (pinned to 548d5c) Running Instances: 0 Runtime: Concurrency: 100 Maximum Scale: 10 Minimum Scale: 0 Timeout: 300 Conditions: Type OK Age Reason ConfigurationsReady true 3m7s Ready true 2m54s RoutesReady true 2m54s Events: Type Reason Age Source Messages Normal Created 3m21s service-controller Created Configuration "myapp" Normal Created 3m20s service-controller Created Route "myapp" -
Richiamare nuovamente l'applicazione per scalare da zero.
curl https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud -
Eseguire nuovamente il comando
application gete notare che il valore perRunning instancesè aumentato da zero. Ad esempio,ibmcloud ce application get -n myappOutput di esempio
OK Name: myapp [...] URL: https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud Cluster Local URL: http://myapp.4svg40kna19.svc.cluster.local Console URL: https://cloud.ibm.com/codeengine/project/us-south/01234567-abcd-abcd-abcd-abcdabcd1111/application/myapp/configuration Status Summary: Application deployed successfully Environment Variables: Type Name Value Literal CE_API_BASE_URL https://api.private.us-south.codeengine.cloud.ibm.com Literal CE_APP myapp Literal CE_DOMAIN us-south.codeengine.appdomain.cloud Literal CE_PROJECT_ID abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Literal CE_REGION us-south Literal CE_SUBDOMAIN abcdabcdab Image: icr.io/codeengine/helloworld Resource Allocation: CPU: 1 Ephemeral Storage: 400M Memory: 4G Revisions: myapp-00001: Age: 42s Latest: true Traffic: 100% Image: icr.io/codeengine/helloworld (pinned to 1cee99) Running Instances: 1 Runtime: Concurrency: 100 Maximum Scale: 10 Minimum Scale: 0 Scale Down Delay: 0 Timeout: 300 Conditions: Type OK Age Reason ConfigurationsReady true 25s Ready true 12s RoutesReady true 12s Events: Type Reason Age Source Messages Normal Created 44s service-controller Created Configuration "myapp" Normal Created 43s service-controller Created Route "myapp" Instances: Name Revision Running Status Restarts Age myapp-00001-deployment-d59b87654-xkqh7 myapp-00001 3/3 Running 0 43s
Impostazione del numero minimo e massimo di istanze per la tua app
Puoi cambiare il numero di istanze in esecuzione della tua applicazione aggiornando il valore minimo e massimo per il numero di istanze dell'applicazione.
Il valore predefinito per il numero minimo di istanze per l'applicazione è 0. Se la tua applicazione non riceve traffico, viene ridimensionata a 0 e non è in esecuzione alcuna istanza della tua applicazione. In questa
situazione, l'applicazione può essere più lenta a rispondere quando riceve nuovamente il traffico, mentre esegue il ridimensionamento incrementale. Puoi modificare questo comportamento aggiornando la tua applicazione e impostando la scala
minima su 1 nella console o dalla CLI.
Il valore predefinito per il numero massimo di istanze della tua app è 10. Per ulteriori informazioni, vedi Ridimensionamento dei limiti.
Modifica dell'intervallo di ridimensionamento automatico dalla console
Per modificare l'intervallo in cui Code Engine ridimensiona automaticamente il numero di istanze in esecuzione per un'applicazione dalla console, attieniti alla seguente procedura.
- Passa alla tua applicazione.
- Selezionare la scheda " Configurazione ".
- Seleziona la scheda " Risorse e scalabilità ".
- Imposta il numero di istanze minime e massime per la tua app.
- (Facoltativo) Esamina e imposta le impostazioni di simultaneità e sincronizzazione della richiesta per il ridimensionamento automatico della tua applicazione.
- Fai clic su Distribuisci per salvare le modifiche e distribuire la revisione dell'applicazione.
Quando aggiorni la tua applicazione, la tua app crea una nuova revisione e instrada il traffico a tale istanza.
Modifica dell'intervallo di ridimensionamento automatico con la CLI
Per modificare l'intervallo in cui Code Engine ridimensiona automaticamente il numero di istanze in esecuzione per un'applicazione con la CLI, esegui il comando application update con le opzioni --min-scale e --max-scale impostate sul numero di istanze che desideri per la tua applicazione. Puoi facoltativamente impostare le impostazioni di simultaneità e tempificazione della richiesta per
la tua app. Queste opzioni includono --concurrency, --concurrency-target, --request-timeout e --scale-down-delay. Per ulteriori informazioni sull'impostazione di questi valori di scalabilità
automatica, vedi Limiti di scalabilità e Impostazioni di scalabilità automatica per la simultaneità e la sincronizzazione.
Quando aggiorni la tua applicazione, la tua app crea una nuova revisione e instrada il traffico a tale istanza.