Ir para o conteúdo

Como soluciono problemas de altos tempos de resposta no ECS?

4 minuto de leitura
0

Quero solucionar problemas de altos tempos de resposta e latências com minhas tarefas do Amazon Elastic Container Service (Amazon ECS).

Resolução

Verificar as métricas de nível de serviço do Amazon ECS

Com a maior utilização da CPU e da memória, pode haver altas latências de resposta nas tarefas do Amazon ECS. Use as métricas do Amazon CloudWatch para visualizar a utilização da CPU e da memória a nível de serviço. Se você ativou o CloudWatch Container Insights, verifique a utilização da CPU e da memória a nível de contêiner. Se você não ativou o Container Insights, consulte Como configuro o CloudWatch Container Insights para monitorar minhas tarefas do Amazon ECS e minha instância de contêiner?

Se os contêineres da sua aplicação precisarem executar workloads com uso intensivo de CPU, faça o upgrade para uma tarefa maior que inclua mais CPUs virtuais (vCPUs) e memória. Ou ative o Application Auto Scaling.

Tarefas do Amazon ECS no tipo de inicialização do Amazon EC2

Verifique a utilização de CPU e memória da instância do Amazon Elastic Cloud Compute (Amazon EC2) em suas tarefas do Amazon ECS que usam o tipo de inicialização do Amazon EC2.

Use as métricas do CloudWatch para monitorar o desempenho de rede da sua instância do Amazon EC2. Se a largura de banda da rede da instância exceder a largura de banda de referência da instância disponível, use um tipo de instância maior com alta largura de banda de referência.

Use a métrica CPUUtilization do CloudWatch para monitorar a utilização de CPU da instância. Além disso, faça login na sua instância para verificar a utilização da memória. Se a utilização de CPU ou de memória for alta, adicione mais instâncias ao cluster para distribuir as tarefas em várias instâncias. Ou altere a instância para um tipo de instância maior.

Verifique os logs da aplicação para determinar se há uma alta latência de resposta de um serviço downstream. É uma prática recomendada ativar o AWS X-Ray para solucionar problemas de latência.

Medir a latência de resposta

Se o serviço do Amazon ECS estiver por trás de um Application Load Balancer, use a métrica TargetResponseTime do CloudWatch para medir o tempo de resposta. Essa métrica estabelece o tempo médio de resposta para solicitações que são roteadas pelo Application Load Balancer. Se o valor for alto, pode haver atrasos na aplicação ou na infraestrutura de backend.

Para medir a latência de resposta diretamente do contêiner, faça login no contêiner da aplicação. Para tarefas do tipo de inicialização do Amazon EC2, execute o comando -it container id do Docker para fazer login no contêiner. Para tarefas que usam o tipo de inicialização do Fargate, use o ECS exec para fazer login no contêiner.

Em seguida, execute o seguinte comando para medir a latência da resposta:

curl -kso /dev/null -w "\n===============\n
| Connect: %{time_connect}\n
| App connect: %{time_appconnect}\n
| Pre-transfer: %{time_pretransfer}\n
| Time to First Byte (TTFB): %{time_starttransfer}\n
| Total: %{time_total}\n
| HTTP Code: %{http_code}\n===============\n" http://localhost:port/endpoint

Observação: substitua port pela porta do contêiner e endpoint pelo endpoint.

Na saída do comando anterior, o campo Tempo até o primeiro byte (TTFB) mostra o tempo necessário para o primeiro byte chegar. A saída também inclui o tempo de processamento do servidor. Se o tempo de processamento for alto, isso quer dizer que a aplicação está demorando mais para processar a solicitação.

Informações relacionadas

Como soluciono problemas de alta utilização da CPU em uma tarefa do Amazon ECS no AWS Fargate?

Como posso monitorar a alta utilização de memória para tarefas do Amazon ECS no Fargate?

Como calculo o uso total da rede para minhas instâncias do EC2 e determino qual instância usou mais largura de banda em um intervalo de datas?

AWS OFICIALAtualizada há um ano