Speicherauslastung und Verfügbarkeit für die Ausführung gleichzeitiger Funktionen überwachen
Erfahren Sie, wie Sie die Nutzung und Verfügbarkeit des Speichers für die gleichzeitige Funktionsausführung durch OCI Functions überwachen.
OCI Functions hat einen Grenzwert für den gesamten Arbeitsspeicher, der für die gleichzeitige Ausführung aller Funktionen in einer Region verfügbar ist. Das Limit wird als total-concurrency-mb bezeichnet und gibt die maximale Speichermenge an, die für die gleichzeitige Funktionsausführung zugewiesen werden kann.
Das Speicherlimit für "Total-Concurrency-mb" hat einen Standardwert, wie unter Funktionslimits dargestellt. Der Standardwert wurde möglicherweise bereits in Ihrem Mandanten erhöht, möglicherweise als Reaktion auf Supportanfragen, die bei früheren Gelegenheiten protokolliert wurden, als die Speicherkapazität überschritten wurde.
Mit der Konsole können Sie den aktuellen Wert des Speichergrenzwerts für die gleichzeitige Gesamtwährung in einer Region anzeigen (siehe Aktuelles Speicherlimit für die Ausführung nebenläufiger Funktionen anzeigen).
Wenn das Speicherlimit für "sum-concurrency-mb" erreicht ist, werden HTTP-429-Fehler als Antwort auf Funktionsaufrufe zurückgegeben. Wenn Sie feststellen, dass OCI Functions mehr Arbeitsspeicher für die Ausführung gleichzeitiger Funktionen benötigt, können Sie eine Anforderung zur Erhöhung des Speicherlimits für Nebenläufigkeit und MB weiterleiten (siehe Erhöhung des Servicelimits beantragen).
Anstatt darauf zu warten, dass das Speicherlimit für "concurrency-mb" insgesamt erreicht wird, und dann die Anforderung zu erfüllen, können Sie mit Oracle Cloud Infrastructure Monitoring und der Metrik AllocatedTotalConcurrency
überwachen, wie viel Arbeitsspeicher für die Ausführung gleichzeitiger Funktionen zugewiesen wurde. Beachten Sie, dass der Wert der Metrik AllocatedTotalConcurrency
der Betrag des zugewiesenen Speichers ist. Der Arbeitsspeicher, der eigentlich für die Ausführung gleichzeitiger Funktionen verwendet wird, ist immer kleiner oder gleich dem Wert der Metrik AllocatedTotalConcurrency
. Weitere Informationen finden Sie unter Speicherbetrag anzeigen, der zuletzt für die Ausführung von Hintergrundfunktionen zugewiesen wurde.
Sie können auch die Metrik AllocatedTotalConcurrency
verwenden, um einen Alarm zu erstellen, der Sie benachrichtigt, wenn die Speicherzuweisung für die nebenläufige Funktionsausführung einen von Ihnen definierten Schwellenwert überschreitet. Weitere Informationen finden Sie unter Schwellenwertalarm für die Speicherzuweisung bei gleichzeitiger Funktionsausführung erstellen.
Aktuelles Speicherlimit für die Ausführung gleichzeitiger Funktionen anzeigen
So zeigen Sie den aktuellen Speichergrenzwert für die Ausführung gleichzeitiger Funktionen an:
-
Öffnen Sie das Navigationsmenü , und wählen Sie Governance und Administration aus. Wählen Sie unter Mandantenverwaltung die Option Limits, Quota und Nutzung aus.
- Wählen Sie aus der Liste Service die Option Funktionen.
-
Wählen Sie die Region in der Liste Geltungsbereich aus.
-
Wählen Sie das Root Compartment in der Compartment-Liste aus.
Das Limit total-concurrency-mb zeigt das aktuelle Speicherlimit für die Ausführung gleichzeitiger Funktionen an.
- (Optional) Um zusätzlichen Speicher für die Ausführung gleichzeitiger Funktionen anzufordern, wählen Sie das neben dem Limit total-concurrency-mb aus, wählen Sie Supportanfrage öffnen aus, und befolgen Sie die Anweisungen.
Zuletzt für die Ausführung von Hintergrundfunktionen zugewiesene Speichermenge anzeigen
So zeigen Sie die Speichermenge an, die zuletzt für die Ausführung gleichzeitiger Funktionen zugewiesen wurde:
-
Öffnen Sie das Navigationsmenü , und wählen Sie Observability and Management aus. Wählen Sie unter Monitoring die Option Metrik-Explorer aus.
- In den Feldern Startzeit und Endzeit können Sie einen repräsentativen Zeitraum für die Analyse angeben.
- Erstellen Sie im Bereich Abfrage 1 eine Abfrage wie folgt:
- Wählen Sie unter Compartment das Root Compartment aus.
- Wählen Sie unter Metrik-Namespace die Option oci_faas aus.
- Wählen Sie die Option Erweiterter Modus aus, und geben Sie eine der folgenden Abfragen im Abfragecodeeditor ein:
- Geben Sie die folgende Abfrage ein, um die Gesamtmenge des Speichers anzuzeigen, der während der angegebenen Zeitperiode für die gleichzeitige Funktionsausführung für alle Funktionen im Mandanten in Intervallen von 1 Minute zugewiesen wurde:
AllocatedTotalConcurrency[1m].groupBy(resourceId).max().grouping().sum()
- Geben Sie die folgende Abfrage ein, um die Gesamtmenge des Speichers anzuzeigen, der während der angegebenen Zeitperiode für die Ausführung gleichzeitiger Funktionen für alle Funktionen in einer einzelnen Anwendung in Intervallen von 1 Minute zugewiesen wurde:
AllocatedTotalConcurrency[1m]{resourceId = "<application-OCID>"}.max()
Dabei ist <application-OCID> die OCID einer Anwendung. Beispiel:
AllocatedTotalConcurrency[1m]{resourceId = "ocid1.fnapp.oc1.phx.aaaaaaaaaf______r3ca"}.max()
- Geben Sie die folgende Abfrage ein, um die Gesamtmenge des Speichers anzuzeigen, der während der angegebenen Zeitperiode für die gleichzeitige Funktionsausführung für alle Funktionen im Mandanten in Intervallen von 1 Minute zugewiesen wurde:
-
Wählen Sie Diagramm aktualisieren aus.
Das Diagramm wird aktualisiert und zeigt die Speichermenge an, die während des ausgewählten Zeitraums für die gleichzeitige Funktionsausführung zugewiesen wurde.
Schwellenwertalarm für nebenläufige Funktionsausführung für Speicherzuweisung erstellen
So erstellen Sie einen Alarm, der ausgelöst wird, wenn die Speicherzuweisung für die gleichzeitige Funktionsausführung einen von Ihnen definierten Schwellenwert überschreitet:
-
Öffnen Sie das Navigationsmenü , und wählen Sie Observability and Management aus. Wählen Sie unter Monitoring die Option Alarmdefinitionen aus.
- Wählen Sie Alarm erstellen aus.
- Geben Sie unter Alarmname einen aussagekräftigen Namen für den Alarm ein. Geben Sie keine vertraulichen Informationen ein.
- Wählen Sie die Option In den erweiterten Modus wechseln.
- Geben Sie im Bereich Metrikdetails die Metrik an, die für den Alarm ausgewertet werden soll:
- Wählen Sie unter Compartment das Root Compartment aus.
- Wählen Sie unter Metrik-Namespace die Option oci_faas aus.
- Geben Sie im Bereich Triggerregel die Bedingung an, die erfüllt werden muss, damit der Alarm ausgelöst wird:
- Triggerverzögerung in Minuten: Geben Sie die Anzahl der Minuten ein, die der Zustand aufrechterhalten werden muss, damit der Alarm ausgelöst wird.
- Alarmschweregrad: Wählen Sie die Wichtigkeit aus, die einer Benachrichtigung zugewiesen werden soll, dass der Alarm ausgelöst wurde.
-
Abfragecodeeditor: Geben Sie wie folgt eine Abfrage ein, um eine Bedingung zu definieren, die bei Erfüllung den Alarm ausgelöst:
- Wenn der Alarm ausgelöst werden soll, wenn die Speicherzuweisung für die Ausführung gleichzeitiger Funktionen für alle Funktionen im Mandanten einen bestimmten Betrag überschreitet, geben Sie die folgende Abfrage ein:
AllocatedTotalConcurrency[1m].groupBy(resourceId).max().grouping().sum() > <memory-threshold>
wobei <memory-threshold> eine Arbeitsspeichermenge (in MiB) ist, die als Schwellenwert verwendet werden soll, über dem der Alarm ausgelöst werden soll.
Beispiel: Sie möchten einen Alarm auslösen, wenn der für die Ausführung nebenläufiger Funktionen zugewiesene Arbeitsspeicher 70% des für die Ausführung nebenläufiger Funktionen verfügbaren Gesamtspeichers überschreitet. Wenn der Gesamtspeicher für die nebenläufige Funktionsausführung 60 GB beträgt (d.h. 61.440 MiB), geben Sie die folgende Abfrage ein:
AllocatedTotalConcurrency[1m].groupBy(resourceId).max().grouping().sum() > 43008
- Wenn der Alarm ausgelöst werden soll, wenn die Speicherzuweisung für die Ausführung gleichzeitiger Funktionen für alle Funktionen in einer einzelnen Anwendung einen bestimmten Betrag überschreitet, geben Sie die folgende Abfrage ein:
AllocatedTotalConcurrency[1m]{resourceId = "<application-OCID>"}.max() > <memory-threshold>
Hierbei gilt:
- <application-OCID> ist die OCID der Anwendung.
- <memory-threshold> ist eine Arbeitsspeichermenge (in MiB), die als Schwellenwert verwendet werden soll, über dem der Alarm ausgelöst werden soll.
Beispiel: Sie möchten einen Alarm auslösen, wenn die Speichermenge, die für die gleichzeitige Funktionsausführung für alle Funktionen in einer einzelnen Anwendung zugewiesen ist, 10% des Gesamtspeichers überschreitet, der für die nebenläufige Funktionsausführung verfügbar ist. Wenn der Gesamtspeicher, der für die Ausführung gleichzeitiger Funktionen verfügbar ist, 60 GB beträgt (d.h. 61.440 MiB), geben Sie die folgende Abfrage ein:
AllocatedTotalConcurrency[1m]{resourceId = "ocid1.fnapp.oc1.phx.aaaaaaaaaf______r3ca"}.max() > 6144
- Wenn der Alarm ausgelöst werden soll, wenn die Speicherzuweisung für die Ausführung gleichzeitiger Funktionen für alle Funktionen im Mandanten einen bestimmten Betrag überschreitet, geben Sie die folgende Abfrage ein:
- Wählen Sie die Option In den Basismodus wechseln.
- Gehen Sie im Bereich Alarmbenachrichtigungen definieren wie folgt vor:
- Geben Sie unter Ziel an, wo Benachrichtigungen gesendet werden, wenn der Alarm ausgelöst wird:
- Zielservice: Wählen Sie "Benachrichtigungen" aus.
- Compartment: Wählen Sie das Compartment mit den Ressourcen aus, die die vom Alarm ausgewerteten Metriken ausgeben. Das ausgewählte Compartment ist auch der Speicherort des Alarms.
- Thema: Das für Benachrichtigungen zu verwendende Thema. Jedes Thema unterstützt mindestens ein Abonnementprotokoll, z.B. PagerDuty. Wenn noch kein geeignetes Thema vorhanden ist, wählen Sie Thema erstellen aus, und definieren Sie ein neues Thema. Weitere Informationen finden Sie unter Grundlegenden Alarm erstellen.
- Wählen Sie unter Nachrichtengruppierung eine der folgenden Optionen aus:
- Benachrichtigungen über Metrikstreams hinweg gruppieren: Metrikstatus in allen Metrikstreams zusammen verfolgen. Eine Nachricht senden, wenn sich der Metrikstatus in allen Metrikstreams ändert.
- Benachrichtigungen nach Metrikstream aufteilen: Metrikstatus nach Metrikstream einzeln verfolgen. Eine Nachricht senden, wenn sich der Metrikstatus für einzelne Metrikstreams ändert. Ein Beispiel finden Sie unter Szenario: Nachrichten nach Metrikstream aufteilen.
- Wählen Sie unter Nachrichtenformat eine der folgenden Optionen aus:
- Formatierte Nachrichten senden: Vereinfachtes, benutzerfreundliches Layout. Informationen zum Anzeigen unterstützter Abonnementprotokolle und Nachrichtentypen für formatierte Nachrichten (außer Raw) finden Sie unter Benutzerfreundliche Formatierung.
- Pretty JSON-Nachrichten senden (Raw-Text mit Zeilenumbrüchen): JSON mit neuen Zeilen und Einzügen.
- RAW-Nachrichten senden: JSON-RAW-Blob.
- Um Auswertungen und Benachrichtigungen für einen bestimmten Zeitraum zu unterdrücken, wählen Sie Benachrichtigungen unterdrücken aus. Diese Option eignet sich zur Vermeidung von Alarmbenachrichtigungen während Systemwartungsarbeiten. Geben Sie eine Startzeit, eine Endzeit und eine optionale Beschreibung an. Siehe Best Practices für Alarme und Einzelnen Alarm unterdrücken.
- Um den Alarm zu speichern, ohne mit der Auswertung von Metrikdaten zu beginnen, deaktivieren Sie das Kontrollkästchen Diesen Alarm aktivieren?.
- Geben Sie unter Ziel an, wo Benachrichtigungen gesendet werden, wenn der Alarm ausgelöst wird:
- Wählen Sie Alarm speichern aus.