Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Überwachen der Gleichzeitigkeit
Lambda gibt CloudWatch Amazon-Metriken aus, um Sie bei der Überwachung der Parallelität Ihrer Funktionen zu unterstützen. In diesem Thema werden diese Metriken und ihre Interpretation erläutert.
Sections
Allgemeine Metriken für Gleichzeitigkeit
Verwenden Sie die folgenden Metriken, um die Gleichzeitigkeit Ihrer Lambda-Funktionen zu überwachen. Die Granularität für jede Metrik ist 1 Minute.
-
ConcurrentExecutions
– Die Anzahl der aktiven gleichzeitigen Aufrufe zu einem bestimmten Zeitpunkt. Lambda gibt diese Metrik für alle Funktionen, Versionen und Aliasse aus. Für jede Funktion in der Lambda-Konsole zeigt Lambda das Diagramm fürConcurrentExecutions
nativ auf der Registerkarte Überwachung unter Metriken an. Sehen Sie sich diese Metrik an mit. MAX -
UnreservedConcurrentExecutions
– Die Anzahl der aktiven gleichzeitigen Aufrufe, die nicht reservierte Gleichzeitigkeit verwenden. Lambda gibt diese Metriken for alle Funktionen in einer Region aus. Diese Metrik anzeigen mit MAX. -
ClaimedAccountConcurrency
– Die Menge an Gleichzeitigkeit, die für On-Demand-Aufrufe nicht verfügbar ist.ClaimedAccountConcurrency
entsprichtUnreservedConcurrentExecutions
plus dem Betrag der zugewiesenen Gleichzeitigkeit (d. h. der gesamten reservierten Gleichzeitigkeit plus der gesamten bereitgestellten Gleichzeitigkeit). Wenn das Kontogleichzeitigkeitslimit fürClaimedAccountConcurrency
überschritten wird, können Sie ein höheres Kontogleichzeitigkeitslimit beantragen. Diese Metrik anzeigen mit MAX. Weitere Informationen finden Sie unter Die Metrik ClaimedAccountConcurrency.
Metriken für Provisioned Concurrency
Verwenden Sie die folgenden Metriken, um Lambda-Funktionen mit bereitgestellter Gleichzeitigkeit zu überwachen. Die Granularität für jede Metrik ist 1 Minute.
-
ProvisionedConcurrentExecutions
– Die Anzahl der Instances der Ausführungsumgebung, die einen Aufruf bei bereitgestellter Gleichzeitigkeit aktiv verarbeiten. Lambda gibt diese Metrik für jede Funktionsversion und jeden Alias aus, wobei die bereitgestellte Gleichzeitigkeit konfiguriert ist. Diese Metrik anzeigen mit MAX.
ProvisionedConcurrentExecutions
entspricht nicht der Gesamtzahl der bereitgestellten Gleichzeitigkeit, die Sie zuweisen. Nehmen wir zum Beispiel an, Sie weisen einer Funktionsversion 100 Einheiten der bereitgestellten Gleichzeitigkeit zu. Wenn in einer bestimmten Minute höchstens 50 dieser 100 Ausführungsumgebungen Aufrufe gleichzeitig verarbeitet haben, dann ist der Wert von MAX(ProvisionedConcurrentExecutions
) 50.
-
ProvisionedConcurrencyInvocations
– Die Häufigkeit, mit der Lambda Ihren Funktionscode mit bereitgestellter Gleichzeitigkeit aufruft. Lambda gibt diese Metrik für jede Funktionsversion und jeden Alias aus, wobei die bereitgestellte Gleichzeitigkeit konfiguriert ist. Sehen Sie sich diese Metrik an mit. SUM
ProvisionedConcurrencyInvocations
unterscheidet sich von ProvisionedConcurrentExecutions
dadurch, dass ProvisionedConcurrencyInvocations
die Gesamtzahl der Aufrufe zählt, während ProvisionedConcurrentExecutions
die Anzahl der aktiven Umgebungen zählt. Um diesen Unterschied zu verstehen, betrachten Sie das folgende Szenario:
In diesem Beispiel nehmen wir an, dass Sie 1 Aufruf pro Minute erhalten und jeder Aufruf 2 Minuten dauert. Jeder orangefarbene horizontale Balken steht für eine einzelne Anfrage. Nehmen wir an, dass Sie dieser Funktion 10 Einheiten der bereitgestellten Gleichzeitigkeit zuweisen, sodass jede Anforderung mit bereitgestellter Gleichzeitigkeit ausgeführt wird.
Zwischen den Minuten 0 und 1 trifft Request 1
ein. In Minute 1 ist der Wert für MAX(ProvisionedConcurrentExecutions
) 1, da in der letzten Minute höchstens eine Ausführungsumgebung aktiv war. Der Wert für SUM(ProvisionedConcurrencyInvocations
) ist ebenfalls 1, da in der letzten Minute eine neue Anfrage eingegangen ist.
Zwischen den Minuten 1 und 2 trifft Request 2
ein, während Request 1
weiterläuft. In Minute 2 ist der Wert für MAX(ProvisionedConcurrentExecutions
) 2, da in der letzten Minute höchstens 2 Ausführungsumgebungen aktiv waren. Der Wert für SUM(ProvisionedConcurrencyInvocations
) ist jedoch 1, da in der letzten Minute nur eine neue Anfrage eingegangen ist. Dieses Verhalten der Metrik setzt sich bis zum Ende des Beispiels fort.
-
ProvisionedConcurrencySpilloverInvocations
– Die Häufigkeit, mit der Lambda Ihre Funktion bei standardmäßiger (reservierter oder nicht reservierter) Gleichzeitigkeit aufruft, wenn die gesamte bereitgestellte Gleichzeitigkeit verwendet wird. Lambda gibt diese Metrik für jede Funktionsversion und jeden Alias aus, wobei die bereitgestellte Gleichzeitigkeit konfiguriert ist. Sehen Sie sich diese Metrik an mit SUM. Der Wert vonProvisionedConcurrencyInvocations
+ProvisionedConcurrencySpilloverInvocations
sollte der Gesamtzahl der Funktionsaufrufe (d. h. derInvocations
-Metrik) entsprechen.ProvisionedConcurrencyUtilization
– Der prozentuale Anteil der bereitgestellten Gleichzeitigkeit, der genutzt wird (d. h. der Wert vonProvisionedConcurrentExecutions
geteilt durch die Gesamtmenge der bereitgestellten Gleichzeitigkeit). Lambda gibt diese Metrik für jede Funktionsversion und jeden Alias aus, wobei die bereitgestellte Gleichzeitigkeit konfiguriert ist. Diese Metrik anzeigen mit MAX.
Nehmen wir zum Beispiel an, Sie teilen einer Funktionsversion 100 Einheiten der bereitgestellten Gleichzeitigkeit zu. Wenn in einer bestimmten Minute maximal 60 dieser 100 Ausführungsumgebungen Aufrufe gleichzeitig verarbeitet haben, dann ist der Wert von MAX(ProvisionedConcurrentExecutions
) 60 und der Wert von MAX(ProvisionedConcurrencyUtilization
) ist 0,6.
Ein hoher Wert für ProvisionedConcurrencySpilloverInvocations
kann darauf hinweisen, dass Sie zusätzliche bereitgestellte Gleichzeitigkeit für Ihre Funktion zuteilen müssen. Alternativ können Sie Application Auto Scaling konfigurieren, um die automatische Skalierung der bereitgestellten Gleichzeitigkeit auf der Grundlage von vordefinierten Schwellenwerten zu steuern.
Umgekehrt können konstant niedrige Werte für ProvisionedConcurrencyUtilization
darauf hindeuten, dass Sie Ihrer Funktion zu viel bereitgestellte Gleichzeitigkeit zugeteilt haben.
Die Metrik ClaimedAccountConcurrency
Lambda verwendet die Metrik ClaimedAccountConcurrency
, um zu ermitteln, wie viel Gleichzeitigkeit in Ihrem Konto für On-Demand-Aufrufe verfügbar ist. Lambda berechnet ClaimedAccountConcurrency
mit der folgenden Formel:
ClaimedAccountConcurrency = UnreservedConcurrentExecutions + (allocated concurrency)
UnreservedConcurrentExecutions
ist die Anzahl der aktiven gleichzeitigen Aufrufe, die nicht reservierte Gleichzeitigkeit verwenden. Die zugewiesene Gleichzeitigkeit ist die Summe der folgenden beiden Teile (wobei RC
für „reservierte Gleichzeitigkeit“ und PC
für „bereitgestellte Gleichzeitigkeit“ steht):
-
Die gesamte
RC
aller Funktionen in einer Region. -
Die gesamte
PC
aller Funktionen in einer Region, diePC
verwenden, ohne Funktionen, dieRC
verwenden.
Anmerkung
Sie können einer Funktion nicht mehr PC
als RC
zuweisen. Somit ist die RC
einer Funktion immer größer oder gleich der PC
. Um den Beitrag zur zugewiesenen Gleichzeitigkeit für solche Funktionen mit PC
und RC
zu berechnen, berücksichtigt Lambda nur RC
, welches das Maximum der beiden ist.
Lambda verwendet die Metrik ClaimedAccountConcurrency
anstelle von ConcurrentExecutions
, um zu ermitteln, wie viel Gleichzeitigkeit für On-Demand-Aufrufe verfügbar ist. Die Metrik ConcurrentExecutions
ist zwar nützlich, um die Anzahl der aktiven gleichzeitigen Aufrufe nachzuverfolgen, spiegelt jedoch nicht immer die tatsächliche Verfügbarkeit von Gleichzeitigkeit wider. Das liegt daran, dass Lambda bei der Bestimmung der Verfügbarkeit auch die reservierte und die bereitgestellte Gleichzeitigkeit berücksichtigt.
Stellen Sie sich zur Veranschaulichung von ClaimedAccountConcurrency
ein Szenario vor, in dem Sie sehr viel reservierte und bereitgestellte Gleichzeitigkeit für Ihre Funktionen konfigurieren, die weitgehend ungenutzt bleiben. Gehen Sie im folgenden Beispiel nun davon aus, dass Ihr Kontogleichzeitigkeitslimit 1 000 beträgt und dass Ihr Konto über zwei Hauptfunktionen verfügt: function-orange
und function-blue
. Sie weisen function-orange
600 reservierte Gleichzeitigkeitseinheiten zu. Sie weisen function-blue
200 bereitgestellte Gleichzeitigkeitseinheiten zu. Nehmen wir an, dass Sie im Laufe der Zeit zusätzliche Funktionen bereitstellen und das folgende Datenverkehrsmuster beobachten:
Im vorherigen Diagramm stehen die schwarzen Linien für die tatsächliche Nutzung der Gleichzeitigkeit im Zeitverlauf, und die rote Linie für den Wert ClaimedAccountConcurrency
im Zeitverlauf. In diesem Szenario beträgt der Wert von ClaimedAccountConcurrency
mindestens 800, obwohl die tatsächliche Gleichzeitigkeitsauslastung aller Funktionen gering ist. Das liegt daran, dass Sie insgesamt 800 Gleichzeitigkeitseinheiten für function-orange
und function-blue
zugewiesen haben. Aus Sicht von Lambda haben Sie diese Gleichzeitigkeit zur Nutzung „beansprucht“, sodass Ihnen praktisch nur noch 200 Gleichzeitigkeitseinheiten für andere Funktionen zur Verfügung stehen.
Für dieses Szenario beträgt die zugewiesene Gleichzeitigkeit in der ClaimedAccountConcurrency
-Formel 800. Daraus können wir den Wert von ClaimedAccountConcurrency
an verschiedenen Stellen im Diagramm ableiten:
-
Bei
t1
,ClaimedAccountConcurrency
ist der Wert 800 (800 + 0UnreservedConcurrentExecutions
). -
Bei
t2
,ClaimedAccountConcurrency
ist der Wert 900 (800 + 100UnreservedConcurrentExecutions
). -
Bei
t3
,ClaimedAccountConcurrency
ist der Wert wieder 900 (800 + 100UnreservedConcurrentExecutions
).
Einrichtung der ClaimedAccountConcurrency
Metrik in CloudWatch
Lambda gibt die ClaimedAccountConcurrency
Metrik in aus. CloudWatch Verwenden Sie diese Metrik zusammen mit dem Wert von SERVICE_QUOTA(ConcurrentExecutions)
, um die prozentuale Nutzung der Gleichzeitigkeit in Ihrem Konto zu ermitteln, wie in der folgenden Formel dargestellt:
Utilization = (ClaimedAccountConcurrency/SERVICE_QUOTA(ConcurrentExecutions)) * 100%
Der folgende Screenshot zeigt, wie Sie diese Formel grafisch darstellen können. CloudWatch Die grüne claim_utilization
-Linie steht für die Gleichzeitigkeitsauslastung in diesem Konto, die bei etwa 40 % liegt:
Der vorherige Screenshot enthält auch einen CloudWatch Alarm, der in den ALARM
Status wechselt, wenn die Parallelitätsauslastung 70% übersteigt. Sie können die ClaimedAccountConcurrency
-Metrik zusammen mit ähnlichen Alarmen verwenden, um proaktiv zu bestimmen, wann Sie möglicherweise ein höheres Kontengleichzeitigkeitslimit beantragen müssen.