Control del uso y la disponibilidad de memoria para la ejecución simultánea de funciones
Descubra cómo supervisar el uso y la disponibilidad de la memoria para la ejecución simultánea de funciones por parte de OCI Functions.
OCI Functions tiene un límite para la cantidad total de memoria disponible para la ejecución simultánea de todas las funciones de una región. El límite se denomina total-concurrency-mb y especifica la cantidad máxima de memoria que se puede asignar para la ejecución simultánea de la función.
El límite de memoria total-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 total-concurrency-mb en una región (consulte Visualización del límite de memoria actual para la ejecución de funciones simultáneas).
Cuando se alcanza el límite de memoria total-concurrency-mb, se devuelven errores HTTP-429 en respuesta a las llamadas a la función. Cuando tenga en cuenta que OCI Functions necesita más memoria para la ejecución simultánea de funciones, puede enviar una solicitud para aumentar el límite de memoria total de simultaneidad-mb (consulte Solicitud de un aumento del límite de servicio).
En lugar de esperar a que se alcance el límite de memoria total-concurrency-mb y, a continuación, cumplir el requisito, puede utilizar Oracle Cloud Infrastructure Monitoring y la métrica AllocatedTotalConcurrency
para supervisar la cantidad de memoria disponible para la ejecución de funciones simultáneas asignada. Tenga en cuenta que el valor de la métrica AllocatedTotalConcurrency
es la cantidad de memoria asignada. La cantidad de memoria realmente utilizada para la ejecución de funciones simultáneas es siempre menor o igual que el valor de la métrica AllocatedTotalConcurrency
. 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 AllocatedTotalConcurrency
para crear una alarma que le notifique si la asignación de memoria de ejecución de función simultánea supera un umbral definido. Para obtener más información, consulte Creación de una alarma de umbral de asignación de memoria de ejecución de función simultánea.
Visualización del límite de memoria actual para la ejecución simultánea de funciones
Para ver el límite de memoria actual para la ejecución simultánea de funciones:
-
Abra el menú de navegación y seleccione Gobernanza y administración. En Gestión de arrendamiento, seleccione Límites, cuotas y uso.
- Seleccione Funciones de la lista Servicio.
-
Seleccione la región en la lista Ámbito.
-
Seleccione el compartimento raíz en la lista Compartimento.
El límite total-concurrency-mb muestra el límite de memoria actual para la ejecución de la función simultánea.
- (Opcional) Para solicitar memoria adicional para la ejecución de funciones simultáneas, seleccione el junto al límite de total-concurrency-mb, seleccione Abrir solicitud de soporte y siga las instrucciones.
Visualización de la cantidad de memoria asignada recientemente para la ejecución simultánea de funciones
Para ver la cantidad de memoria asignada recientemente para la ejecución simultánea de funciones:
-
Abra el menú de navegación y seleccione Observación y gestión. En Supervisión, seleccione Explorador de métricas.
- Utilice los campos hora de inicio y hora de finalización para especificar un período de tiempo representativo que analizar.
- En el panel Consulta 1, cree una consulta de la siguiente manera:
- En Compartimento, seleccione el compartimento raíz.
- Para Espacio de nombre de métrica, seleccione oci_faas.
- 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 ejecución simultánea de funciones para todas las funciones del arrendamiento a intervalos de 1 minuto, durante el período de tiempo especificado, introduzca la siguiente consulta:
AllocatedTotalConcurrency[1m].groupBy(resourceId).max().grouping().sum()
- Para mostrar la cantidad total de memoria asignada para la ejecución simultánea de funciones para todas las funciones de una sola aplicación en intervalos de 1 minuto, durante el período de tiempo especificado, introduzca la siguiente consulta:
AllocatedTotalConcurrency[1m]{resourceId = "<application-OCID>"}.max()
donde <application-OCID> es el OCID de una aplicación. Por ejemplo:
AllocatedTotalConcurrency[1m]{resourceId = "ocid1.fnapp.oc1.phx.aaaaaaaaaf______r3ca"}.max()
- Para mostrar la cantidad total de memoria asignada para la ejecución simultánea de funciones para todas las funciones del arrendamiento a intervalos de 1 minuto, durante el período de tiempo especificado, introduzca la siguiente consulta:
-
Seleccione Actualizar gráfico.
El gráfico se actualiza y muestra la cantidad de memoria asignada para la ejecución simultánea de funciones durante el período de tiempo seleccionado.
Creación de una alarma de umbral de asignación de memoria de ejecución de función simultánea
Para crear una alarma que se active cuando la asignación de memoria de ejecución de función simultánea exceda un umbral que defina:
-
Abra el menú de navegación y seleccione Observación y gestión. En Supervisión, seleccione Definiciones de alarma.
- Seleccione Crear alarma.
- En Nombre de alarma, introduzca un nombre significativo para la alarma. Evite introducir información confidencial.
- Seleccione la opción Switch to Advanced Mode.
- En el área Detalles de métrica, especifique la métrica que se va a evaluar para la alarma, de la siguiente forma:
- En Compartimento, seleccione el compartimento raíz.
- Para Espacio de nombre de métrica, seleccione oci_faas.
- 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 ejecución simultánea de funciones para todas las funciones del arrendamiento supere una cantidad determinada, introduzca la siguiente consulta:
AllocatedTotalConcurrency[1m].groupBy(resourceId).max().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 ejecución de funciones simultáneas supere el 70% de la memoria total disponible para la ejecución de funciones simultáneas. Si la memoria total para la ejecución simultánea de funciones es de 60 GB (es decir, 61.440 MiB), introduzca la siguiente consulta:
AllocatedTotalConcurrency[1m].groupBy(resourceId).max().grouping().sum() > 43008
- Si desea que la alarma se dispare cuando la asignación de memoria para la ejecución simultánea de funciones para todas las funciones de una sola aplicación exceda una cantidad determinada, introduzca la siguiente consulta:
AllocatedTotalConcurrency[1m]{resourceId = "<application-OCID>"}.max() > <memory-threshold>
donde:
- <application-OCID> es el OCID de la aplicació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 ejecución de funciones simultáneas para todas las funciones de una sola aplicación supere el 10% de la memoria total disponible para la ejecución de funciones simultáneas. Si la memoria total disponible para la ejecución simultánea de funciones es de 60 GB (es decir, 61.440 MiB), introduzca la siguiente consulta:
AllocatedTotalConcurrency[1m]{resourceId = "ocid1.fnapp.oc1.phx.aaaaaaaaaf______r3ca"}.max() > 6144
- Si desea que la alarma se dispare cuando la asignación de memoria para la ejecución simultánea de funciones para todas las funciones del arrendamiento supere una cantidad determinada, introduzca la siguiente consulta:
- Seleccione la opción Cambiar a modo básico.
- En el área Definir notificaciones de alarma:
- 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.
- 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.
- 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.
- 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.
- Para guardar la alarma sin empezar a evaluar los datos de métrica, desactive la casilla de control ¿Activar esta alarma?.
- En Destino, especifique dónde se envían las notificaciones cuando se activa la alarma:
- Seleccione Guardar alarma.