Surveiller l'utilisation et la disponibilité de la mémoire pour l'exécution simultanée de fonctions
Découvrez comment surveiller l'utilisation et la disponibilité de la mémoire pour l'exécution simultanée de fonctions par OCI Functions.
OCI Functions a une limite pour la quantité totale de mémoire disponible pour l'exécution simultanée de toutes les fonctions d'une région. La limite est nommée total-concurrency-mb et indique la quantité maximale de mémoire pouvant être allouée pour l'exécution simultanée de fonctions.
La limite de mémoire total-concurrency-mb a une valeur par défaut, comme indiqué dans Limites de fonction. La valeur par défaut a peut-être déjà été augmentée dans votre location, peut-être en réponse à des demandes de support qui ont été journalisées à des occasions précédentes lorsque la capacité de mémoire a été dépassée.
Vous pouvez utiliser la console pour visualiser la valeur en cours de la limite de mémoire total-concurrency-mb dans une région (reportez-vous à Visualisation de la limite de mémoire en cours pour l'exécution de fonctions simultanées).
Lorsque la limite de mémoire total-concurrency-mb est atteinte, les erreurs HTTP-429 sont renvoyées en réponse aux appels de fonction. Lorsque vous constatez qu'OCI Functions a besoin de plus de mémoire pour l'exécution simultanée de fonctions, vous pouvez soumettre une demande d'augmentation de la limite de mémoire total-concurrency-mb (reportez-vous à Demande d'augmentation de limite de service).
Au lieu d'attendre que la limite de mémoire totale simultanée soit atteinte, puis de répondre à l'exigence, vous pouvez utiliser Oracle Cloud Infrastructure Monitoring et la mesure AllocatedTotalConcurrency
pour surveiller la quantité de mémoire disponible pour l'exécution simultanée de fonctions. La valeur de la mesure AllocatedTotalConcurrency
correspond à la quantité de mémoire allouée. La quantité de mémoire utilisée en fait pour l'exécution simultanée de fonctions est toujours inférieure ou égale à la valeur de la mesure AllocatedTotalConcurrency
. Pour plus d'informations, voir Affichage de la quantité de mémoire allouée récemment pour l'exécution de fonctions simultanées.
Vous pouvez également utiliser la mesure AllocatedTotalConcurrency
pour créer une alarme afin de vous avertir si l'allocation de mémoire d'exécution de fonction simultanée dépasse un seuil que vous définissez. Pour plus d'informations, reportez-vous à Création d'une alarme de seuil d'allocation de mémoire d'exécution de fonction simultanée.
Afficher la limite de mémoire en cours pour l'exécution simultanée de fonctions
Pour afficher la limite de mémoire actuelle pour l'exécution simultanée de fonctions, procédez comme suit :
-
Ouvrez le menu de navigation et sélectionnez Gouvernance et administration. Sous Gestion des locations, sélectionnez Limites, quotas et utilisation.
- Sélectionnez Fonctions dans la liste Service.
-
Sélectionnez la région dans la liste Portée.
-
Sélectionnez le compartiment racine dans la liste Compartiment.
La limite total-concurrency-mb indique la limite de mémoire en cours pour l'exécution simultanée de fonctions.
- (Facultatif) Pour demander de la mémoire supplémentaire pour l'exécution simultanée de fonctions, sélectionnez le menu en regard de la limite total-concurrency-mb, sélectionnez Ouvrir la demande d'assistance et suivez les instructions.
Affichage de la quantité de mémoire récemment allouée pour l'exécution simultanée de fonctions
Pour afficher la quantité de mémoire récemment allouée à l'exécution simultanée de fonctions, procédez comme suit :
-
Ouvrez le menu de navigation et sélectionnez Observation et gestion. Sous Surveillance, sélectionnez Explorateur de mesures.
- Utilisez les champs Heure de début et Heure de fin pour indiquer une période représentative à analyser.
- Dans le panneau Requête 1, créez une requête comme suit :
- Pour Compartiment, sélectionnez le compartiment racine.
- Pour espace de noms de mesure, sélectionnez oci_faas.
- Sélectionnez l'option Mode avancé et entrez l'une des requêtes suivantes dans l'éditeur de code de requête :
- Pour afficher la quantité totale de mémoire allouée pour l'exécution simultanée de fonctions pour toutes les fonctions de la location à des intervalles de 1 minute, au cours de la période indiquée, entrez la requête suivante :
AllocatedTotalConcurrency[1m].groupBy(resourceId).max().grouping().sum()
- Pour afficher la quantité totale de mémoire allouée à l'exécution simultanée de fonctions pour toutes les fonctions d'une même application à des intervalles de 1 minute, au cours de la période que vous avez indiquée, entrez l'interrogation suivante :
AllocatedTotalConcurrency[1m]{resourceId = "<application-OCID>"}.max()
où <application-OCID> est l'OCID d'une application. Par exemple :
AllocatedTotalConcurrency[1m]{resourceId = "ocid1.fnapp.oc1.phx.aaaaaaaaaf______r3ca"}.max()
- Pour afficher la quantité totale de mémoire allouée pour l'exécution simultanée de fonctions pour toutes les fonctions de la location à des intervalles de 1 minute, au cours de la période indiquée, entrez la requête suivante :
-
Sélectionnez Mettre à jour le graphique.
Le graphique est mis à jour et indique la quantité de mémoire allouée pour l'exécution simultanée de fonctions, au cours de la période sélectionnée.
Créer une alarme de seuil d'allocation de mémoire d'exécution de fonction simultanée
Pour créer une alarme qui s'exécute lorsque l'allocation de mémoire d'exécution de fonction simultanée dépasse un seuil que vous définissez :
-
Ouvrez le menu de navigation et sélectionnez Observation et gestion. Sous Surveillance, sélectionnez Définitions d'alarme.
- Sélectionnez Créer une alarme.
- Dans Nom d'alarme, entrez un nom explicite pour l'alarme. Evitez de saisir des informations confidentielles.
- Sélectionnez l'option Passer en mode avancé.
- Dans la zone Détails de mesure, indiquez la mesure à évaluer pour l'alarme, comme suit :
- Pour Compartiment, sélectionnez le compartiment racine.
- Pour espace de noms de mesure, sélectionnez oci_faas.
- Dans la zone Règle de déclencheur, indiquez la condition à remplir pour que l'alarme se déclenche :
- Délai de déclencheur en minutes : entrez le nombre de minutes pendant lesquelles la condition doit être remplie pour que l'alarme se déclenche.
- Gravité de l'alarme : sélectionnez l'importance à accorder à une notification indiquant que l'alarme a été déclenchée.
-
Editeur de code de requête : entrez une requête pour définir une condition qui, lorsqu'elle est satisfaite, déclenche le déclenchement de l'alarme, comme suit :
- Si vous souhaitez que l'alarme se déclenche lorsque l'allocation de mémoire pour l'exécution simultanée de fonctions pour toutes les fonctions de la location dépasse une certaine quantité, entrez la requête suivante :
AllocatedTotalConcurrency[1m].groupBy(resourceId).max().grouping().sum() > <memory-threshold>
où <memory-threshold> est une quantité de mémoire (dans MiB) à utiliser comme seuil, au-delà de laquelle l'alarme doit se déclencher.
Par exemple, vous pouvez déclencher une alarme lorsque la quantité de mémoire allouée pour l'exécution simultanée de fonctions dépasse 70 % de la mémoire totale disponible pour l'exécution simultanée de fonctions. Si la mémoire totale pour l'exécution simultanée de fonctions est de 60 Go (soit 61 440 MiB), entrez l'interrogation suivante :
AllocatedTotalConcurrency[1m].groupBy(resourceId).max().grouping().sum() > 43008
- Si vous souhaitez que l'alarme se déclenche lorsque l'allocation de mémoire pour l'exécution simultanée de fonctions pour toutes les fonctions d'une même application dépasse une certaine quantité, entrez l'interrogation suivante :
AllocatedTotalConcurrency[1m]{resourceId = "<application-OCID>"}.max() > <memory-threshold>
où :
- <application-OCID> est l'OCID de l'application.
- <memory-threshold> représente la quantité de mémoire (dans MiB) à utiliser comme seuil, au-delà de laquelle l'alarme doit être déclenchée.
Par exemple, vous pouvez déclencher une alarme lorsque la quantité de mémoire allouée pour l'exécution simultanée de fonctions pour toutes les fonctions d'une même application dépasse 10 % de la mémoire totale disponible pour l'exécution simultanée de fonctions. Si la mémoire totale disponible pour l'exécution simultanée de fonctions est de 60 Go (soit 61 440 MiB), entrez l'interrogation suivante :
AllocatedTotalConcurrency[1m]{resourceId = "ocid1.fnapp.oc1.phx.aaaaaaaaaf______r3ca"}.max() > 6144
- Si vous souhaitez que l'alarme se déclenche lorsque l'allocation de mémoire pour l'exécution simultanée de fonctions pour toutes les fonctions de la location dépasse une certaine quantité, entrez la requête suivante :
- Dans la zone Définir les notifications d'alarme, procédez comme suit :
- Pour Destination, indiquez où les notifications sont envoyées lors du déclenchement de l'alarme :
- Service de destination : sélectionnez Notifications.
- Compartiment : sélectionnez le compartiment contenant les ressources émettant les mesures évaluées par l'alarme. Le compartiment sélectionné est également l'emplacement de stockage de l'alarme.
- Sujet : thème à utiliser pour les notifications. Chaque sujet prend en charge des protocoles d'abonnement, tels que PagerDuty. S'il n'existe pas encore de sujet approprié, sélectionnez Créer un sujet et définissez un nouveau sujet. Pour référence, reportez-vous à Création d'une alarme de base.
- Dans Regroupement de messages, sélectionnez l'une des options suivantes :
- Regrouper les notifications des flux de données de mesure : permet de suivre collectivement le statut de mesure sur tous les flux de données de mesure. Envoyez un message lorsque le statut de mesure change sur tous les flux de données de mesure.
- Séparer les notifications par flux de données de mesure : permet de suivre individuellement le statut de mesure par flux de données de mesure. Envoyez un message lorsque le statut de mesure de chaque flux de données de mesure change. Pour obtenir un exemple, reportez-vous à Scénario : séparation des messages par flux de données de mesure.
- Dans Format de message, sélectionnez l'une des options suivantes :
- Envoyer les messages formatés : présentation simplifiée et conviviale. Afin d'afficher les protocoles d'abonnement et les types de message pris en charge pour les messages formatés (options autres que Données brutes), reportez-vous à Formatage convivial.
- Envoyer des messages JSON lisibles (texte brut avec des sauts de ligne) : message JSON avec de nouvelles lignes et des retraits.
- Envoyer les messages bruts : objet BLOB JSON brut.
- Pour supprimer les évaluations et les notifications pour une durée spécifiée, sélectionnez Supprimer les notifications. Cette option est utile pour éviter les notifications d'alarme pendant les périodes de maintenance système. Indiquez une heure de début, de fin et une description facultative. Reportez-vous à Bonnes pratiques pour les alarmes et à Suppression d'une seule alerte.
- Pour enregistrer l'alarme sans commencer à évaluer les données de mesure, désélectionnez la case Activer cette alarme ?.
- Pour Destination, indiquez où les notifications sont envoyées lors du déclenchement de l'alarme :
- Sélectionnez Enregistrer l'alarme.