Supervisión del uso y la disponibilidad de memoria para la simultaneidad aprovisionada

Descubra cómo supervisar el uso y la disponibilidad de la memoria para la simultaneidad aprovisionada por OCI Functions.

OCI Functions tiene un límite para la cantidad total de memoria disponible para la simultaneidad aprovisionada para todas las funciones de una región. El límite se denomina provisioned-concurrency-mb y especifica la cantidad máxima de memoria que se puede asignar para la simultaneidad aprovisionada.

El límite de memoria provisioned-concurrency-mb tiene un valor por defecto, como se muestra en Límites de función. Es posible que el valor por defecto ya se haya aumentado en su arrendamiento, tal vez en respuesta a solicitudes de soporte que se registraron en ocasiones anteriores cuando se superó la capacidad de memoria.

Puede utilizar la consola para ver el valor actual del límite de memoria provisioned-concurrency-mb en una región (consulte Visualización del límite de memoria actual para la simultaneidad aprovisionada).

Si OCI Functions necesita más memoria para la simultaneidad aprovisionada a fin de evitar la latencia inicial al llamar a funciones, puede enviar una solicitud para aumentar el límite de memoria de MB de simultaneidad aprovisionada (consulte Solicitud de un aumento del límite de servicio).

En lugar de esperar a que se alcance el límite de memoria provisioned-concurrency-mb y, a continuación, cumplir el requisito, puede utilizar Oracle Cloud Infrastructure Monitoring y la métrica AllocatedProvisionedConcurrency para supervisar la cantidad de memoria disponible para la simultaneidad aprovisionada que se ha asignado. Tenga en cuenta que el valor de la métrica AllocatedProvisionedConcurrency es la cantidad de memoria asignada. La cantidad de memoria que se utiliza realmente para la simultaneidad aprovisionada siempre es menor o igual que el valor de la métrica AllocatedProvisionedConcurrency. Para obtener más información, consulte Visualización de la cantidad de memoria asignada recientemente para la ejecución de funciones simultáneas.

También puede utilizar la métrica AllocatedProvisionedConcurrency para crear una alarma que le notifique si la asignación de memoria de simultaneidad aprovisionada supera un umbral definido. Para obtener más información, consulte Creación de una alarma de umbral de asignación de memoria de simultaneidad aprovisionada.

Visualización del límite de memoria actual para la simultaneidad aprovisionada

Para ver el límite de memoria actual para la simultaneidad aprovisionada:

  1. Abra el menú de navegación y seleccione Gobernanza y administración. En Gestión de arrendamiento, seleccione Límites, cuotas y uso.

  2. Seleccione Funciones de la lista Servicio.
  3. Seleccione la región en la lista Ámbito.

  4. Seleccione el compartimento raíz en la lista Compartimento.

    El límite provisioned-concurrency-mb muestra el límite de memoria actual para la simultaneidad aprovisionada.

  5. (Opcional) Para solicitar memoria adicional para la simultaneidad aprovisionada, seleccione el menú Acciones Menú Acciones junto al límite de provisioned-concurrency-mb, seleccione Abrir solicitud de soporte y siga las instrucciones.

Visualización de la cantidad de memoria asignada recientemente para la simultaneidad aprovisionada

Para ver la cantidad de memoria asignada recientemente para la simultaneidad aprovisionada:

  1. Abra el menú de navegación y seleccione Observación y gestión. En Supervisión, seleccione Explorador de métricas.

  2. Utilice los campos hora de inicio y hora de finalización para especificar un período de tiempo representativo que analizar.
  3. En el panel Consulta 1, cree una consulta de la siguiente manera:
    1. En Compartimento, seleccione el compartimento raíz.
    2. Para Espacio de nombre de métrica, seleccione oci_faas.
    3. Seleccione la opción Modo avanzado e introduzca una de las siguientes consultas en el editor de código de consulta:
      • Para mostrar la cantidad total de memoria asignada para la simultaneidad aprovisionada para todas las funciones del arrendamiento a intervalos de 5 minutos, durante el período de tiempo especificado, introduzca la siguiente consulta:
        AllocatedProvisionedConcurrency[5m].groupBy(resourceId).max().grouping().sum()
      • Para mostrar la cantidad total de memoria asignada para la simultaneidad aprovisionada para una función específica en intervalos de 5 minutos, durante el período de tiempo especificado, introduzca la siguiente consulta:
        AllocatedProvisionedConcurrency[5m]{resourceId = "<function-OCID>"}.max()

        donde <function-OCID> es el OCID de una función. Por ejemplo:

        AllocatedProvisionedConcurrency[5m]{resourceId = "ocid1.fnfunc.oc1.phx.aaaa____uxoa"}.max()
  4. Seleccione Actualizar gráfico.

    El gráfico se actualiza y muestra la cantidad de memoria que se ha asignado para la simultaneidad aprovisionada durante el período de tiempo seleccionado.

Creación de una alarma de umbral de asignación de memoria de simultaneidad aprovisionada

Para crear una alarma que se dispara cuando la asignación de memoria de simultaneidad aprovisionada supera un umbral que se define:

  1. Abra el menú de navegación y seleccione Observación y gestión. En Supervisión, seleccione Definiciones de alarma.

  2. Seleccione Crear alarma.
  3. En Nombre de alarma, introduzca un nombre significativo para la alarma. Evite introducir información confidencial.
  4. Seleccione la opción Switch to Advanced Mode.
  5. En el área Detalles de métrica, especifique la métrica que se va a evaluar para la alarma, de la siguiente forma:
    1. En Compartimento, seleccione el compartimento raíz.
    2. Para Espacio de nombre de métrica, seleccione oci_faas.
  6. En el área Regla de disparador, especifique la condición que se debe cumplir para que se dispare la alarma:
    • Minutos de retraso del disparador: introduzca el número de minutos que se debe mantener la condición para que se dispare la alarma.
    • Gravedad de alarma: seleccione la importancia que se debe asignar a una notificación de que la alarma se ha disparado.
    • Editor de códigos de consulta: introduzca una consulta para definir una condición que, cuando se cumpla, haga que se dispare la alarma, de la siguiente manera:

      • Si desea que la alarma se dispare cuando la asignación de memoria para la simultaneidad aprovisionada supere una cantidad determinada, introduzca la siguiente consulta:
        AllocatedProvisionedConcurrency[5m].grouping().sum() > <memory-threshold>

        donde <memory-threshold> es una cantidad de memoria (en MiB) que se utilizará como umbral, por encima del cual desea que se dispare la alarma.

        Por ejemplo, puede que desee que se dispare una alarma cuando la cantidad de memoria asignada para la simultaneidad aprovisionada supere el 70% de la memoria total disponible para la simultaneidad aprovisionada. Si la memoria total para la simultaneidad aprovisionada es de 40 GB (es decir, 40 960 MiB), introduzca la siguiente consulta:

        AllocatedProvisionedConcurrency[5m].grouping().sum() > 28672
      • Si desea que la alarma se dispare cuando la asignación de memoria para la simultaneidad aprovisionada para una función específica exceda una cantidad determinada, introduzca la siguiente consulta:
        AllocatedProvisionedConcurrency[5m]{resourceId = "<function-OCID>"}.max() > <memory-threshold>
        donde:
        • <function-OCID> es el OCID de la función
        • <memory-threshold> es una cantidad de memoria (en MiB) que se utilizará como umbral, por encima del cual desea que se dispare la alarma.

        Por ejemplo, puede que desee que se dispare una alarma cuando la cantidad de memoria asignada para la simultaneidad aprovisionada para una sola función supere el 10% de la memoria total disponible para la simultaneidad aprovisionada. Si la memoria total disponible para la simultaneidad aprovisionada es de 40 GB (es decir, 40 960 MiB), introduzca la siguiente consulta:

        AllocatedProvisionedConcurrency[5m]{resourceId = "ocid1.fnfunc.oc1.phx.aaaa____uxoa"}.max() > 4096
  7. Seleccione la opción Cambiar a modo básico.
  8. En el área Definir notificaciones de alarma:
    1. En Destino, especifique dónde se envían las notificaciones cuando se activa la alarma:
      • Servicio Destination: seleccione Notifications.
      • Compartimiento: seleccione el compartimento que contiene los recursos que emiten las métricas evaluadas por la alarma. El compartimento seleccionado también es la ubicación de almacenamiento de la alarma.
      • Tema: tema que se usará para las notificaciones. Cada tema soporta uno o más protocolos de suscripción, como PagerDuty. Si aún no existe un tema adecuado, seleccione Crear un tema y defina un nuevo tema. Para obtener referencia, consulte Creación de una alarma básica.
    2. En Agrupación de mensajes, seleccione una de las siguientes opciones:
      • Notificaciones de grupo en los flujos de métricas: realice un seguimiento conjunto del estado de las métricas en todos los flujos de métricas. Envíe un mensaje cuando cambie el estado de métrica en todos los flujos de métricas.
      • Dividir notificaciones por flujo de métrica: haga un seguimiento individual del estado de las métricas por flujo de métricas. Envíe un mensaje cuando cambie el estado de métrica de cada flujo de métricas. Para ver un ejemplo, consulte Escenario: división de mensajes por flujo de métricas.
    3. En Formato de mensaje, seleccione una de las siguientes opciones:
      • Enviar mensajes con formato: diseño simplificado y fácil de usar. Para ver los protocolos de suscripción soportados y los tipos de mensaje de los mensajes con formato (opciones distintas de Sin formato), consulte Formato sencillo.
      • Enviar mensajes JSON bonitos (texto raw con saltos de línea): JSON con nuevas líneas y sangrías.
      • Enviar mensajes sin formato: blob JSON sin formato.
    4. Para suprimir evaluaciones y notificaciones durante un período de tiempo especificado, seleccione Suprimir notificaciones. Esta opción es útil para evitar notificaciones de alarma durante períodos de mantenimiento del sistema. Especifique una hora de inicio, de finalización y una descripción opcional. Consulte Mejores prácticas para las alarmas y Suppressing a Single Alarm.
    5. Para guardar la alarma sin empezar a evaluar los datos de métrica, desactive la casilla de control ¿Activar esta alarma?.
  9. Seleccione Guardar alarma.