Surveiller l'utilisation et la disponibilité de la mémoire pour les accès simultanés provisionnés

Découvrez comment surveiller l'utilisation et la disponibilité de la mémoire pour les accès simultanés provisionnés par OCI Functions.

OCI Functions a une limite pour la quantité totale de mémoire disponible pour les accès simultanés provisionnés pour toutes les fonctions d'une région. La limite est nommée provisioned-concurrency-mb et indique la quantité maximale de mémoire pouvant être allouée pour la simultanéité d'accès aux données provisionnée.

La limite de mémoire provisionnée-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 provisionnée-concurrency-mb dans une région (reportez-vous à Visualisation de la limite de mémoire en cours pour les accès simultanés provisionnés).

Si OCI Functions a besoin de plus de mémoire pour la simultanéité provisionnée afin d'éviter la latence initiale lors de l'appel de fonctions, vous pouvez soumettre une demande visant à augmenter la limite de mémoire provisionnée-concurrency-mb (reportez-vous à Demande d'augmentation de limite de service).

Au lieu d'attendre que la limite de mémoire provisionnée-concurrency-mb soit atteinte, puis de répondre à l'exigence, vous pouvez utiliser Oracle Cloud Infrastructure Monitoring et la mesure AllocatedProvisionedConcurrency pour surveiller la quantité de mémoire disponible pour la simultanéité provisionnée qui a été allouée. La valeur de la mesure AllocatedProvisionedConcurrency correspond à la quantité de mémoire allouée. La quantité de mémoire utilisée en fait pour l'accès simultané provisionné est toujours inférieure ou égale à la valeur de la mesure AllocatedProvisionedConcurrency. 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 AllocatedProvisionedConcurrency pour créer une alarme afin de vous avertir si l'allocation de mémoire de simultanéité provisionné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 de simultanéité provisionnée.

Affichage de la limite de mémoire en cours pour les accès simultanés provisionnés

Pour afficher la limite de mémoire actuelle pour la simultanéité provisionnée, procédez comme suit :

  1. Ouvrez le menu de navigation et sélectionnez Gouvernance et administration. Sous Gestion des locations, sélectionnez Limites, quotas et utilisation.

  2. Sélectionnez Fonctions dans la liste Service.
  3. Sélectionnez la région dans la liste Portée.

  4. Sélectionnez le compartiment racine dans la liste Compartiment.

    La limite provisioned-concurrency-mb indique la limite de mémoire en cours pour les accès simultanés provisionnés.

  5. (Facultatif) Pour demander de la mémoire supplémentaire pour la simultanéité provisionnée, sélectionnez le menu Actions (trois points) en regard de la limite provisioned-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 la simultanéité provisionnée

Pour afficher la quantité de mémoire récemment allouée pour la simultanéité provisionnée, procédez comme suit :

  1. Ouvrez le menu de navigation et sélectionnez Observation et gestion. Sous Surveillance, sélectionnez Explorateur de mesures.

  2. Utilisez les champs Heure de début et Heure de fin pour indiquer une période représentative à analyser.
  3. Dans le panneau Requête 1, créez une requête comme suit :
    1. Pour Compartiment, sélectionnez le compartiment racine.
    2. Pour espace de noms de mesure, sélectionnez oci_faas.
    3. Sélectionnez l'option Mode avancé et entrez l'une des requêtes suivantes dans l'éditeur de code de requête :
      • Afin d'afficher la quantité totale de mémoire allouée pour la simultanéité provisionnée pour toutes les fonctions de la location à des intervalles de 5 minutes, au cours de la période indiquée, entrez la requête suivante :
        AllocatedProvisionedConcurrency[5m].groupBy(resourceId).max().grouping().sum()
      • Pour afficher la quantité totale de mémoire allouée pour la simultanéité provisionnée pour une fonction spécifique à des intervalles de 5 minutes, au cours de la période que vous avez indiquée, entrez la requête suivante :
        AllocatedProvisionedConcurrency[5m]{resourceId = "<function-OCID>"}.max()

        <function-OCID> est l'OCID d'une fonction. Par exemple :

        AllocatedProvisionedConcurrency[5m]{resourceId = "ocid1.fnfunc.oc1.phx.aaaa____uxoa"}.max()
  4. Sélectionnez Mettre à jour le graphique.

    Le graphique est mis à jour et indique la quantité de mémoire allouée pour la simultanéité d'accès aux données provisionnée, au cours de la période sélectionnée.

Création d'une alarme de seuil d'allocation de mémoire simultanée provisionnée

Pour créer une alarme qui se déclenche lorsque l'allocation de mémoire de simultanéité provisionnée dépasse un seuil que vous définissez :

  1. Ouvrez le menu de navigation et sélectionnez Observation et gestion. Sous Surveillance, sélectionnez Définitions d'alarme.

  2. Sélectionnez Créer une alarme.
  3. Dans Nom d'alarme, entrez un nom explicite pour l'alarme. Evitez de saisir des informations confidentielles.
  4. Sélectionnez l'option Passer en mode avancé.
  5. Dans la zone Détails de mesure, indiquez la mesure à évaluer pour l'alarme, comme suit :
    1. Pour Compartiment, sélectionnez le compartiment racine.
    2. Pour espace de noms de mesure, sélectionnez oci_faas.
  6. 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 la simultanéité provisionnée dépasse une certaine quantité, entrez la requête suivante :
        AllocatedProvisionedConcurrency[5m].grouping().sum() > <memory-threshold>

        <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 la simultanéité provisionnée dépasse 70 % de la mémoire totale disponible pour la simultanéité provisionnée. Si la mémoire totale pour la simultanéité provisionnée est de 40 Go (soit 40 960 MiB), entrez la requête suivante :

        AllocatedProvisionedConcurrency[5m].grouping().sum() > 28672
      • Si vous souhaitez que l'alarme se déclenche lorsque l'allocation de mémoire pour la simultanéité provisionnée pour une fonction spécifique dépasse une certaine quantité, entrez la requête suivante :
        AllocatedProvisionedConcurrency[5m]{resourceId = "<function-OCID>"}.max() > <memory-threshold>
        où :
        • <function-OCID> est l'OCID de la fonction.
        • <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 la simultanéité provisionnée pour une fonction unique dépasse 10 % de la mémoire totale disponible pour la simultanéité provisionnée. Si la mémoire totale disponible pour la simultanéité provisionnée est de 40 Go (soit 40 960 MiB), entrez la requête suivante :

        AllocatedProvisionedConcurrency[5m]{resourceId = "ocid1.fnfunc.oc1.phx.aaaa____uxoa"}.max() > 4096
  7. Sélectionnez l'option Passer en mode de base.
  8. Dans la zone Définir les notifications d'alarme, procédez comme suit :
    1. 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.
    2. 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.
    3. 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.
    4. 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.
    5. Pour enregistrer l'alarme sans commencer à évaluer les données de mesure, désélectionnez la case Activer cette alarme ?.
  9. Sélectionnez Enregistrer l'alarme.