View a markdown version of this page

Monitoraggio della simultaneità - AWS Lambda

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à.

Monitoraggio della simultaneità

Lambda emette parametri CloudWatch Amazon per aiutarti a monitorare la concorrenza per le tue funzioni di evento Lambda. Questo argomento illustra questi parametri e spiega come interpretarli.

Parametri generici di simultaneità

Utilizza le seguenti metriche per monitorare la concorrenza per le funzioni degli eventi Lambda. La granularità di ogni parametro è di 1 minuto.

  • ConcurrentExecutions: il numero di chiamate simultanee attive in un determinato momento. Lambda emette questa metrica per tutte le funzioni di evento, le versioni e gli alias. Per qualsiasi funzione evento nella console Lambda, Lambda visualizza il grafico in ConcurrentExecutions modo nativo nella scheda Monitoraggio, in Metriche. Visualizza questo parametro utilizzando MAX.

  • UnreservedConcurrentExecutions: il numero di chiamate simultanee attive che utilizzano la simultaneità non riservata. Lambda emette questa metrica in tutte le funzioni di evento in una regione. Visualizza questo parametro utilizzando MAX.

  • ClaimedAccountConcurrency: la quantità di simultaneità che non è disponibile per le invocazioni on demand. ClaimedAccountConcurrency corrisponde a UnreservedConcurrentExecutions più la quantità di simultaneità allocata (ovvero la simultaneità totale riservata più la simultaneità totale fornita). Se ClaimedAccountConcurrency supera il limite di simultaneità dell'account, puoi richiedere un limite di simultaneità più elevato.

    Visualizza questo parametro utilizzando MAX. Per ulteriori informazioni, consulta Lavorare con il parametro ClaimedAccountConcurrency.

Parametri della simultaneità fornita

Utilizza le seguenti metriche per monitorare le funzioni degli eventi Lambda utilizzando la concorrenza fornita. La granularità di ogni parametro è di 1 minuto.

  • ProvisionedConcurrentExecutions: il numero di istanze dell'ambiente di esecuzione che stanno attivamente elaborando una chiamata con la simultaneità fornita. Lambda emette questa metrica per ogni versione e alias di Event Function con la concorrenza fornita configurata. Visualizza questo parametro utilizzando MAX.

ProvisionedConcurrentExecutions non è uguale al numero totale di unità di simultaneità fornita allocate. Ad esempio, supponiamo di allocare 100 unità di concorrenza assegnata a una versione di Event Function. In un dato minuto, se al massimo 50 di questi 100 ambienti di esecuzione gestivano le chiamate simultaneamente, il valore di MAX (ProvisionedConcurrentExecutions) è 50.

  • ProvisionedConcurrencyInvocations— Il numero di volte in cui Lambda richiama il codice della funzione evento utilizzando la concorrenza fornita. Lambda emette questa metrica per ogni versione e alias di Event Function con la concorrenza fornita configurata. Visualizza questo parametro utilizzando SUM.

ProvisionedConcurrencyInvocations differisce da ProvisionedConcurrentExecutions per il fatto che ProvisionedConcurrencyInvocations conta il numero totale di chiamate, mentre ProvisionedConcurrentExecutions conta il numero di ambienti attivi. Per comprendere questa distinzione, esamina i seguenti scenari:

ProvisionedConcurrentExecutionsConfronto tra e. ProvisionedConcurrencyInvocations

In questo esempio, supponiamo di ricevere 1 chiamata al minuto e che ogni chiamata richieda 2 minuti per essere completata. Ogni barra orizzontale arancione rappresenta una singola richiesta. Si supponga di allocare 10 unità di concorrenza assegnata a questa funzione di evento, in modo che ogni richiesta venga eseguita in base alla concorrenza fornita.

Tra i minuti 0 e 1, arriva la Request 1. Al minuto 1, il valore di MAX (ProvisionedConcurrentExecutions) è 1, poiché nell'ultimo minuto era attivo al massimo 1 ambiente di esecuzione. Anche il valore di SUM (ProvisionedConcurrencyInvocations) è 1, poiché nell'ultimo minuto è arrivata una nuova richiesta.

Tra i minuti 1 e 2, arriva la Request 2 mentre la Request 1 è ancora in esecuzione. Al minuto 2, il valore di MAX (ProvisionedConcurrentExecutions) è 2, poiché nell'ultimo minuto erano attivi al massimo 2 ambienti di esecuzione. Tuttavia, il valore di SUM (ProvisionedConcurrencyInvocations) è 1, poiché nell'ultimo minuto è arrivata solo una nuova richiesta. I parametri continuano a comportarsi in questo modo fino alla fine dell'esempio.

  • ProvisionedConcurrencySpilloverInvocations— Il numero di volte in cui Lambda richiama la funzione evento in modalità simultanea standard (riservata o non riservata) quando è in uso tutta la concorrenza fornita. Lambda emette questa metrica per ogni versione e alias di Event Function con la concorrenza fornita configurata. Visualizza questo parametro utilizzando SUM. Il valore di ProvisionedConcurrencyInvocations + ProvisionedConcurrencySpilloverInvocations deve essere uguale al numero totale di invocazioni di Event Function (ovvero la metrica). Invocations

    ProvisionedConcurrencyUtilization: la percentuale di simultaneità fornita in uso (ossia il valore di ProvisionedConcurrentExecutions diviso per la quantità totale di simultaneità fornita allocata). Lambda emette questa metrica per ogni versione e alias di Event Function con la concorrenza fornita configurata. Visualizza questo parametro utilizzando MAX.

Ad esempio, supponiamo di fornire 100 unità di concorrenza assegnata a una versione di Event Function. In un dato minuto, se al massimo 60 di questi 100 ambienti di esecuzione gestivano le chiamate contemporaneamente, il valore di MAX (ProvisionedConcurrentExecutions) è 60 e il valore di MAX (ProvisionedConcurrencyUtilization) è 0,6.

Un valore elevato per ProvisionedConcurrencySpilloverInvocations potrebbe indicare che è necessario allocare una concorrenza aggiuntiva fornita per la funzione evento. In alternativa, è possibile configurare Application Auto Scaling per gestire il dimensionamento automatico della simultaneità fornita in base a soglie predefinite.

Al contrario, valori costantemente bassi di ProvisionedConcurrencyUtilization potrebbero indicare che è stata allocata eccessivamente la concorrenza fornita per la funzione evento.

Lavorare con il parametro ClaimedAccountConcurrency

Lambda utilizza il parametro ClaimedAccountConcurrency per determinare la quantità di simultaneità disponibile nell'account per le invocazioni on demand. Lambda calcola ClaimedAccountConcurrency utilizzando la formula seguente:

ClaimedAccountConcurrency = UnreservedConcurrentExecutions + (allocated concurrency)

UnreservedConcurrentExecutions corrisponde al numero di invocazioni simultanee attive che utilizzano la simultaneità non riservata. La simultaneità allocata è la somma delle due parti seguenti (sostituendo RC come "simultaneità riservata" e PC come "simultaneità fornita"):

  • Il totale di tutte le funzioni di RC evento in una regione.

  • Il totale di PC tutte le funzioni di evento in una regione che utilizzanoPC, escluse le funzioni di evento che utilizzanoRC.

Nota

Non puoi allocare PC più RC di una funzione evento. Pertanto, una funzione evento RC è sempre maggiore o uguale alla suaPC. Per calcolare il contributo alla concorrenza allocata per tali funzioni evento con entrambi PC e, RC Lambda considera soloRC, che è il massimo dei due.

Per determinare la quantità di simultaneità disponibile per le invocazioni on demand, Lambda utilizza il parametro ClaimedAccountConcurrency anziché ConcurrentExecutions. Sebbene sia utile per tenere traccia del numero di invocazioni simultanee attive, il parametro ConcurrentExecutions non sempre riflette la disponibilità di simultaneità effettiva. Questo perché Lambda considera anche la simultaneità riservata e la simultaneità fornita per determinare la disponibilità.

A titolo illustrativoClaimedAccountConcurrency, prendiamo in considerazione uno scenario in cui si configura una forte concorrenza riservata e una concorrenza fornita tra le funzioni evento, che rimangono in gran parte inutilizzate. Nell'esempio seguente, supponiamo che il limite di concorrenza del tuo account sia 1.000 e che nel tuo account siano presenti due funzioni di evento principali: e. function-orange function-blue Assegni 600 unità di simultaneità riservata per function-orange. Assegni 200 unità di simultaneità fornita per function-blue. Supponiamo che, nel tempo, implementiate funzioni per eventi aggiuntive e osserviate il seguente schema di traffico:

Un grafico che mostra come Lambda determina. ClaimedAccountConcurrency

Nel diagramma precedente, le linee nere indicano l'uso effettivo della simultaneità nel tempo, mentre la linea rossa indica il valore di ClaimedAccountConcurrency nel tempo. In questo scenario, ClaimedAccountConcurrency è pari al minimo a 800, nonostante il basso utilizzo effettivo della concorrenza tra le funzioni degli eventi. Questo perché hai assegnato 800 unità totali di simultaneità per function-orange e function-blue. Dal punto di vista di Lambda, hai «rivendicato» questa concorrenza per l'uso, quindi hai effettivamente solo 200 unità di concorrenza rimanenti per le altre funzioni di evento.

In questo scenario, la concorrenza allocata è 800 nella formula ClaimedAccountConcurrency. Possiamo quindi ricavare il valore di ClaimedAccountConcurrency in corrispondenza di vari punti del diagramma:

  • In t1, ClaimedAccountConcurrency è 800 (800 + 0 UnreservedConcurrentExecutions).

  • In t2, ClaimedAccountConcurrency è 900 (800 + 100 UnreservedConcurrentExecutions).

  • In t3, ClaimedAccountConcurrency è di nuovo 900 (800 + 100 UnreservedConcurrentExecutions).

Configurazione della metrica in ClaimedAccountConcurrency CloudWatch

Lambda emette la metrica inClaimedAccountConcurrency. CloudWatch Utilizza questo parametro insieme al valore di SERVICE_QUOTA(ConcurrentExecutions) per ottenere la percentuale di utilizzo della simultaneità nel tuo account, come mostrato nella formula seguente:

Utilization = (ClaimedAccountConcurrency/SERVICE_QUOTA(ConcurrentExecutions)) * 100%

La schermata seguente illustra come inserire graficamente questa formula. CloudWatch La linea claim_utilization verde rappresenta l'utilizzo della simultaneità nell'account, che è pari a circa il 40%:

Utilizzo della ClaimedAccountConcurrency metrica in. CloudWatch

La schermata precedente include anche un CloudWatch allarme che entra in ALARM stato quando l'utilizzo della concorrenza supera il 70%. Puoi utilizzare il parametro ClaimedAccountConcurrency insieme ad allarmi simili per determinare in modo proattivo quando potrebbe essere necessario richiedere un limite di simultaneità dell'account più elevato.