Métricas de uso de los servicios de Amazon ECS - Amazon Elastic Container Service

Métricas de uso de los servicios de Amazon ECS

Las métricas de uso del servicio están disponibles para la CPU, la memoria y, si hay un volumen de EBS asociado a sus tareas, para el uso del sistema de archivos de EBS. Las métricas de servicio se admiten para servicios con tareas alojadas en instancias de Amazon EC2 y Fargate.

Uso de CPU y memoria por servicio

El uso de CPU y memoria se mide como el porcentaje de CPU y de memoria utilizado por las tareas de Amazon ECS que pertenecen al servicio de un clúster, en comparación con la CPU y la memoria que se especifican en la definición de tarea del servicio.

(Total CPU units used by tasks in service) x 100 Service CPU utilization = ---------------------------------------------------------------------------- (Total CPU units specified in task definition) x (number of tasks in service)
(Total MiB of memory used by tasks in service) x 100 Service memory utilization = -------------------------------------------------------------------------------- (Total MiB of memory specified in task definition) x (number of tasks in service)

Cada minuto, el agente de contenedor de Amazon ECS calcula el número de unidades de CPU y MiB de memoria que se están utilizando actualmente para cada tarea del servicio, y esta información se reenvía a Amazon ECS. Se calcula la cantidad total de CPU y memoria utilizada para todas las tareas del servicio que se ejecutan en el clúster y dichas cifras se notifican a CloudWatch como un porcentaje de los recursos totales que se han especificado para el servicio en la definición de tarea de este. Si especifica un límite flexible (memoryReservation), se utiliza para calcular la cantidad de memoria reservada. De lo contrario, se utiliza el límite máximo (memory). Para obtener más información acerca de los límites máximos y flexibles, consulte Tamaño de tarea.

Por ejemplo, la definición de tareas para un servicio especifica un total de 512 unidades de CPU y 1 024 MiB de memoria (con el parámetro memory de límite estricto) para todos sus contenedores. El servicio tiene un recuento deseado de una tarea en ejecución, el servicio se ejecuta en un clúster con una instancia de contenedor c4.large (con 2 048 unidades de CPU y 3 768 MiB de memoria total) y en el clúster no se está ejecutando ninguna otra tarea. Aunque la tarea especifica 512 unidades de CPU, porque es la única tarea en ejecución en una instancia de contenedor con 2 048 unidades de CPU, puede utilizar hasta cuatro veces la cantidad especificada (2 048 / 512). Sin embargo, la memoria especificada de 1 024 MiB es un límite fijo y no se puede superar, de modo que, en este caso, la utilización de memoria del servicio no puede superar el 100%.

Si el ejemplo anterior utilizara el parámetro de límite flexible memoryReservation en lugar del límite invariable memory, las tareas del servicio podrían utilizar más de 1024 MiB de memoria especificada si fuera necesario. En este caso, el uso de memoria del servicio podría superar el 100%.

Si la aplicación presenta un aumento repentino en la utilización de la memoria durante un breve período de tiempo, no verá que la utilización de la memoria del servicio aumente porque Amazon ECS recopila varios puntos de datos cada minuto y, a continuación, los agrega a un punto de datos que se envía a CloudWatch.

Si esta tarea realiza un trabajo con uso intensivo de la CPU durante un período y utiliza todas las 2 048 unidades de CPU disponibles y 512 MiB de memoria, entonces el servicio registra una utilización de la CPU del 400% y una utilización de memoria del 50%. Si la tarea está inactiva y utiliza 128 unidades de CPU y 128 MiB de memoria, el servicio registra una utilización de la CPU del 25% y un uso de memoria del 12,5%.

nota

En este ejemplo, la utilización de la CPU solo superará el 100 % cuando las unidades de CPU se definan en el nivel de contenedor. Si define unidades de CPU en el nivel de tarea, la utilización no superará el límite definido de nivel de tarea.

Uso del sistema de archivos de EBS por servicio

El uso del sistema de archivos de EBS por servicio se mide como la cantidad total del sistema de archivos de EBS que utilizan las tareas que pertenecen al servicio, dividida por la cantidad total de almacenamiento del sistema de archivos de EBS que se asigna a todas las tareas que pertenecen al servicio.

(Total GB of EBS filesystem used by tasks in the service x 100) Service EBS filesystem utilization = ----------------------------------------------------------------- (Total GB of EBS filesystem allocated to tasks in the service)

Recuento de tareas RUNNING del servicio

Puede utilizar las métricas de CloudWatch para consultar el número de tareas de los servicios que tienen el estado RUNNING. Por ejemplo, puede definir una alarma de CloudWatch para esta métrica a fin de que le alerte si el número de tareas en ejecución en el servicio cae por debajo de un valor especificado.

Recuento de tareas RUNNING del servicio en Amazon ECS CloudWatch Container Insights

Un “número de tareas en ejecución” (RunningTaskCount) está disponible por clúster y servicio cuando utiliza Amazon ECS CloudWatch Container Insights. Puede usar Container Insights para todos los nuevos clústeres creados mediante la configuración de la cuenta de containerInsights, en clústeres individuales al habilitar la configuración del clúster durante la creación de este o en clústeres existentes mediante la API UpdateClusterSettings. Las métricas recopiladas por CloudWatch Container Insights se cobran como métricas personalizadas. Para obtener más información acerca de los precios de CloudWatch, consulte Precios de CloudWatch.

Para ver esta métrica, consulte Métricas de Amazon ECS Container Insights en la Guía del usuario de Amazon CloudWatch.