Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Scalabilità delle istanze gestite Lambda
Le istanze gestite Lambda non sono scalabili all'arrivo delle chiamate e non supportano gli avviamenti a freddo. Al contrario, è scalabile in modo asincrono utilizzando segnali di consumo delle risorse. Le istanze gestite attualmente sono scalabili in base all'utilizzo delle risorse della CPU e alla saturazione di più valute.
Principali differenze:
-
Lambda (impostazione predefinita): scala quando non esiste un ambiente di esecuzione libero per gestire una chiamata in entrata (avvio a freddo)
-
Istanze gestite Lambda: scalabilità asincrona in base all'utilizzo delle risorse della CPU e alla saturazione multiconcorrenza degli ambienti di esecuzione
Se il traffico raddoppia più che nel giro di 5 minuti, potresti riscontrare rallentamenti man mano che Lambda ridimensiona le istanze e gli ambienti di esecuzione per soddisfare la domanda.
Il ciclo di vita della scalabilità
Lambda Managed Instances utilizza un'architettura distribuita per gestire la scalabilità:
Componenti:
-
Istanze gestite: esegui nel tuo account nelle sottoreti che fornisci
-
Router e scaler: componenti Lambda condivisi che indirizzano le chiamate e gestiscono la scalabilità
-
Lambda Agent: viene eseguito su ogni istanza gestita per gestire il ciclo di vita dell'ambiente di esecuzione e monitorare il consumo di risorse
Come funziona:
-
Quando pubblichi una versione della funzione con un provider di capacità, Lambda avvia Managed Instances nel tuo account. Per impostazione predefinita, ne avvia tre per la resilienza AZ e avvia tre ambienti di esecuzione prima di contrassegnare la versione della funzione come ATTIVA.
-
Ogni istanza gestita può eseguire ambienti di esecuzione per più funzioni mappate allo stesso provider di capacità.
-
Man mano che il traffico fluisce verso l'applicazione, gli ambienti di esecuzione consumano risorse. L'agente Lambda invia una notifica allo Scaler, che decide se scalare nuovi ambienti di esecuzione o istanze gestite.
-
Se Router tenta di inviare una chiamata a un ambiente di esecuzione con un elevato consumo di risorse, l'agente Lambda su quell'istanza gli notifica di riprovare su un'altra istanza.
-
Quando il traffico diminuisce, Lambda Agent invia una notifica a Scaler, che decide di ridimensionare gli ambienti di esecuzione e scalare nelle istanze gestite.
Regolazione del comportamento di scalabilità
È possibile personalizzare il comportamento di scalabilità delle istanze gestite tramite quattro controlli:
Controlli a livello di funzione
1. Memoria delle funzioni e v CPUs
Scegli la dimensione della memoria e l'allocazione della vCPU per la tua funzione. La dimensione minima della funzione supportata è 2 GB e 1 vCPU.
Considerazioni:
-
Scegli un'impostazione di memoria e vCPU che supporti le esecuzioni simultanee della tua funzione
-
Non è possibile configurare una funzione con meno di 1 vCPU, poiché le funzioni in esecuzione su istanze gestite dovrebbero supportare carichi di lavoro multi-concorrenti.
-
Non puoi scegliere meno di 2 GB perché corrisponde al rapporto 2 a 1 tra memoria e vCPU delle istanze c, che hanno il rapporto più basso
-
Per le applicazioni Python, potrebbe essere necessario scegliere un rapporto più elevato tra memoria e vCPUs, ad esempio 4 a 1 o 8 a 1, a causa del modo in cui Python gestisce la multi-concorrenza
-
Se si eseguono operazioni che richiedono un uso intensivo della CPU o si eseguono operazioni di I/O limitate, è consigliabile scegliere più di una vCPU
2. Simultaneità massima
Imposta la concorrenza massima per ambiente di esecuzione.
Comportamento predefinito: Lambda sceglie impostazioni predefinite ragionevoli che bilanciano il consumo di risorse e la velocità effettiva, adatte a un'ampia varietà di applicazioni.
Linee guida per la regolazione:
-
Aumentare la concorrenza: se le chiamate alle funzioni utilizzano pochissima CPU, è possibile aumentare la concorrenza massima fino a un massimo di 64 per vCPU
-
Riduzione della concorrenza: se l'applicazione consuma una grande quantità di memoria e pochissima CPU, è possibile ridurre la concorrenza massima
Importante: poiché le istanze gestite Lambda sono pensate per applicazioni multi-concorrenti, gli ambienti di esecuzione con una concorrenza molto bassa possono presentare problemi di scalabilità.
Controlli a livello di provider di capacità
3. Obiettivo di utilizzo delle risorse
Scegli il tuo obiettivo per il consumo di utilizzo della CPU.
Comportamento predefinito: Lambda mantiene un margine di manovra sufficiente per raddoppiare il traffico entro 5 minuti senza acceleratori.
Opzioni di ottimizzazione:
-
Se il carico di lavoro è molto costante o se l'applicazione non è sensibile alle limitazioni, è possibile impostare l'obiettivo su un livello elevato per ottenere un maggiore utilizzo e ridurre i costi
-
Se si desidera mantenere un margine di manovra sufficiente in caso di picchi di traffico, è possibile impostare obiettivi di risorse a un livello basso, il che richiederà una maggiore capacità
4. Selezione del tipo di istanza
Imposta i tipi di istanza consentiti o esclusi.
Comportamento predefinito: Lambda sceglie i tipi di istanza migliori per il tuo carico di lavoro. Ti consigliamo di lasciare che le istanze gestite da Lambda scelgano i tipi di istanza per te, poiché limitare il numero di tipi di istanze possibili può comportare una minore disponibilità.
Configurazione personalizzata:
-
Requisiti hardware specifici: imposta i tipi di istanze consentiti su un elenco di istanze compatibili. Ad esempio, se disponi di un'applicazione che richiede un'elevata larghezza di banda di rete, puoi selezionare diversi tipi di istanze n
-
Ottimizzazione dei costi: per gli ambienti di test o sviluppo, puoi scegliere tipi di istanze più piccoli, come i tipi di istanze m7a.large
Fasi successive
-
Consulta le guide specifiche per il runtime per la gestione della concorrenza multipla
-
Configura la connettività VPC per i tuoi provider di capacità
-
Monitora le metriche di scalabilità per ottimizzare il comportamento di scalabilità