Métricas de utilização do serviço do Amazon ECS - Amazon Elastic Container Service

Métricas de utilização do serviço do Amazon ECS

As métricas de utilização do serviço estão disponíveis para utilização de CPU, memória e, quando há um volume do EBS anexado às tarefas, do sistema de arquivos do EBS. As métricas no nível de serviço são compatíveis com tarefas hospedadas em instâncias do Amazon EC2 e no Fargate.

Utilização de CPU e memória no nível de serviço

A utilização de CPU e memória é medida como a porcentagem de CPU e memória usada pelas tarefas do Amazon ECS que pertencem a um serviço em um cluster quando comparada à CPU e à memória especificadas na definição de tarefa do serviço.

(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)

A cada minuto, o agente de contêiner do Amazon ECS calcula o número de unidades de CPU e MiB de memória que estão sendo usados ​​no momento para cada tarefa pertencente ao serviço. Essas informações são relatadas ao Amazon ECS. A quantidade total de CPU e de memória utilizada para todas as tarefas pertencentes ao serviço em execução no cluster é calculada e esses números são informados ao CloudWatch como uma porcentagem do total de recursos especificados para o serviço na definição de tarefa do serviço. Se você especificar um limite flexível (memoryReservation), ele será usado para calcular a quantidade de memória reservada. Caso contrário, o limite rígido (memory) será usado. Para obter mais informações sobre limites rígidos e flexíveis, consulte Tamanho da tarefa.

Por exemplo, a definição de tarefa para um serviço especifica um total de 512 unidades de CPU e 1.024 MiB de memória (com o parâmetro memory de limite fixo) para todos os contêineres. O serviço tem uma contagem desejada de 1 tarefa em execução, o serviço fica em execução em um cluster com 1 instância de contêiner c4.large (com 2.048 unidades de CPU e 3.768 MiB de memória total), e não há nenhuma outra tarefa em execução no cluster. Embora a tarefa especifique 512 unidades de CPU, porque é a única tarefa em execução em uma instância de contêiner com 2.048 unidades de CPU, ela pode usar até quatro vezes o valor especificado (2.048/512). No entanto, a memória especificada de 1.024 MiB é um limite rígido e não pode ser excedido. Nesse caso, a utilização de memória do serviço não pode exceder 100%.

Se o exemplo anterior tivesse usado o limite flexível memoryReservation, em vez do parâmetro memory de limite fixo, as tarefas do serviço poderiam usar mais que os 1.024 MiB de memória especificados, conforme necessário. Nesse caso, a utilização de memória do serviço poderia exceder 100%.

Se a aplicação tiver um aumento repentino na utilização da memória por um curto período de tempo, você não verá a utilização da memória de serviço aumentando porque o Amazon ECS coleta vários pontos de dados a cada minuto e, em seguida, os agrega a um ponto de dados enviado ao CloudWatch.

Se essa tarefa estiver executando trabalho que use muito a CPU em um período e estiver usando todas as 2.048 unidades de CPU e 512 MiB de memória disponíveis, o serviço informará a utilização de 400% da CPU e a utilização de 50% da memória. Se a tarefa estiver inativa e usando 128 unidades de CPU e 128 MiB de memória, o serviço informará a utilização de 25% da CPU e utilização de 12,5% da memória.

nota

Neste exemplo, a utilização da CPU só ultrapassará 100% quando as unidades de CPU forem definidas no nível do contêiner. Se você definir unidades de CPU no nível da tarefa, a utilização não ultrapassará o limite definido no nível da tarefa.

Utilização do sistema de arquivos do EBS no nível de serviço

A utilização do sistema de arquivos do EBS no nível de serviço é medido como o total do sistema de arquivos do EBS em uso pelas tarefas que pertencem ao serviço, dividido pelo total de armazenamento do sistema de arquivos do EBS alocado para todas as tarefas que pertencem ao serviço.

(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)

Contagem de tarefas RUNNING de serviço

É possível usar as métricas do CloudWatch para ver o número de tarefas nos serviços que estão no estado RUNNING. Por exemplo, você pode definir um alarme do CloudWatch para essa métrica emitir um alerta se o número de tarefas em execução no serviço ficar abaixo de um valor especificado.

Contagem de tarefas RUNNING do serviço no Amazon ECS CloudWatch Container Insights

Uma métrica de “Número de tarefas em execução” (RunningTaskCount) está disponível por cluster e por serviço quando você utiliza o Amazon ECS CloudWatch Container Insights. É possível usar o Container Insights para todos os novos clusters criados ao escolher a configuração da conta containerInsights, em clusters individuais, ativando as configurações de cluster durante a criação do cluster ou em clusters existentes usando a API UpdateClusterSettings. As métricas coletadas pelo CloudWatch Container Insights são cobradas como métricas personalizadas. Para obter mais informações sobre os preços do CloudWatch, consulte Preço do CloudWatch.

Para obter mais informações, consulte Métricas do Amazon ECS Container Insights, no Guia do Usuário do Amazon CloudWatch.