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 i parametri di CloudWatch Amazon per aiutarti a monitorare la concorrenza per le tue funzioni. Questo argomento illustra questi parametri e spiega come interpretarli.
Sections
Parametri generici di simultaneità
Per monitorare la simultaneità delle funzioni Lambda, utilizza i seguenti parametri. La granularità di ogni parametro è di 1 minuto.
-
ConcurrentExecutions
: il numero di chiamate simultanee attive in un determinato momento. Lambda emette questo parametro per tutte le funzioni, gli alias e le versioni. Per qualsiasi funzione nella console Lambda, Lambda visualizza il grafico diConcurrentExecutions
in modo nativo nella scheda Monitoraggio, sotto Parametri. Visualizza questa metrica utilizzando. MAX -
UnreservedConcurrentExecutions
: il numero di chiamate simultanee attive che utilizzano la simultaneità non riservata. Lambda emette questo parametro per tutte le funzioni in una regione. Visualizza questa metrica utilizzando. MAX -
ClaimedAccountConcurrency
: la quantità di simultaneità che non è disponibile per le invocazioni on demand.ClaimedAccountConcurrency
corrisponde aUnreservedConcurrentExecutions
più la quantità di simultaneità allocata (ovvero la simultaneità totale riservata più la simultaneità totale fornita). SeClaimedAccountConcurrency
supera il limite di simultaneità dell'account, puoi richiedere un limite di simultaneità più elevato. Visualizza questa metrica utilizzando. MAX Per ulteriori informazioni, consulta Lavorare con il parametro ClaimedAccountConcurrency.
Parametri della simultaneità con provisioning
Per monitorare le funzioni Lambda che utilizzano la simultaneità fornita, utilizza i seguenti parametri. 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 questo parametro per ogni versione e alias di funzione per cui sia configurata la simultaneità fornita. Visualizza questa metrica utilizzando. MAX
ProvisionedConcurrentExecutions
non è uguale al numero totale di unità di simultaneità fornita allocate. Ad esempio, si supponga di allocare 100 unità di simultaneità fornita a una versione di funzione. In un dato minuto, se almeno 50 di questi 100 ambienti di esecuzione gestivano le chiamate contemporaneamente, il valore di MAX(ProvisionedConcurrentExecutions
) è 50.
-
ProvisionedConcurrencyInvocations
: il numero di volte in cui Lambda richiama il codice di funzione tramite la simultaneità fornita. Lambda emette questo parametro per ogni versione e alias di funzione per cui sia configurata la simultaneità fornita. Visualizza questa metrica 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:
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 simultaneità fornita a questa funzione, in modo che ogni richiesta venga eseguita in base alla simultaneità 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 un ambiente di esecuzione. Il valore per SUM(ProvisionedConcurrencyInvocations
) è anch'esso 1, poiché 1 nuova richiesta è arrivata nell'ultimo minuto.
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 1 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 con la simultaneità (riservata o fornita) standard quando è in uso tutta la simultaneità fornita. Lambda emette questo parametro per ogni versione e alias di funzione per cui sia configurata la simultaneità fornita. Visualizza questa metrica utilizzando SUM. Il valore diProvisionedConcurrencyInvocations
+ProvisionedConcurrencySpilloverInvocations
deve essere uguale al numero totale di chiamate delle funzioni (cioè il parametroInvocations
).ProvisionedConcurrencyUtilization
: la percentuale di simultaneità fornita in uso (ossia il valore diProvisionedConcurrentExecutions
diviso per la quantità totale di simultaneità fornita allocata). Lambda emette questo parametro per ogni versione e alias di funzione per cui sia configurata la simultaneità fornita. Visualizza questa metrica utilizzando. MAX
Ad esempio, si supponga di allocare 100 unità di simultaneità fornita a una versione di funzione. In un dato minuto, se almeno 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 di ProvisionedConcurrencySpilloverInvocations
può indicare che è necessario allocare simultaneità fornita aggiuntiva per la funzione. In alternativa, è possibile configurare Application Auto Scaling per gestire il dimensionamento automatico della simultaneità fornita in base a soglie predefinite.
Viceversa, valori costantemente bassi di ProvisionedConcurrencyUtilization
possono indicare che hai allocato una quantità eccessiva di simultaneità fornita per la funzione.
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 valore
RC
totale in tutte le funzioni di una Regione. -
Il valore
PC
totale in tutte le funzioni di una Regione che utilizzanoPC
, escluse le funzioni che utilizzanoRC
.
Nota
Non puoi allocare più PC
di RC
per una funzione. Pertanto, il valore RC
di una funzione è sempre maggiore o uguale al suo valore PC
. Per calcolare il contributo alla simultaneità allocata per tali funzioni con sia PC
che RC
, Lambda considera solo RC
, che è il valore massimo tra i 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à.
Per illustrare il funzionamento di ClaimedAccountConcurrency
, immaginiamo uno scenario in cui configuri una grande quantità di simultaneità riservata e simultaneità fornita nelle funzioni che rimane per buona parte inutilizzata. Nell'esempio seguente, supponiamo che il limite di simultaneità dell'account sia 1.000 e che vi siano due funzioni principali nell'account: function-orange
e function-blue
. Assegni 600 unità di simultaneità riservata per function-orange
. Assegni 200 unità di simultaneità fornita per function-blue
. Supponiamo che, nel corso del tempo, implementi ulteriori funzioni e osservi lo schema di traffico seguente:
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 tutto lo scenario, il valore minimo di ClaimedAccountConcurrency
è 800, nonostante lo scarso utilizzo effettivo di simultaneità nelle funzioni. Questo perché hai assegnato 800 unità totali di simultaneità per function-orange
e function-blue
. Dal punto di vista di Lambda, hai "rivendicato" questa simultaneità per l'uso, quindi ti rimangono in effetti solo 200 unità di simultaneità per le altre funzioni.
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 + 0UnreservedConcurrentExecutions
). -
In
t2
,ClaimedAccountConcurrency
è 900 (800 + 100UnreservedConcurrentExecutions
). -
In
t3
,ClaimedAccountConcurrency
è di nuovo 900 (800 + 100UnreservedConcurrentExecutions
).
Configurazione della ClaimedAccountConcurrency
metrica in 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%:
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.