Ao executar aplicações no Amazon Elastic Container Service (Amazon ECS), percebo um alto uso de recursos.
Resolução
Observação: se você receber mensagens de erro ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Monitore as principais métricas
Use o Amazon CloudWatch para rastrear métricas de nível de serviço do ECS. Para obter informações mais detalhadas sobre o uso de recursos, ative o Container Insights ou o Container Insights com observabilidade aprimorada e verifique as métricas de utilização da CPU e uso da memória.
Analise os CloudWatch Logs
Execute um exemplo de consulta para analisar seus logs em busca de alto uso de recursos, eventos de falta de memória (OOM) ou erros da aplicação. Otimize a definição da tarefa com base nos problemas encontrados. Para obter mais informações, consulte Como analisar dados de log com o CloudWatch Logs Insights.
Para verificar a utilização da memória, execute a consulta a seguir:
stats avg(MemoryUtilized) by bin (30m) as period, TaskDefinitionFamily, TaskDefinitionRevision
| filter Type = "Task" | sort period desc, TaskDefinitionFamily | limit 10
Solucionar problemas de paradas inesperadas de tarefas
Se sua tarefa do ECS parar inesperadamente, use a API DescribeTasks para verificar stoppedReason e o exitCode do contêiner para determinar a causa. Para obter mais informações, consulte Por que minha tarefa do Amazon ECS foi interrompida?
Use o ECS Exec
Use o ECS Exec da AWS CLI para executar comandos dentro de seus contêineres para visualizar informações de uso de recursos.
Solucionar possíveis problemas
Em caso de vazamentos de memória, verifique os logs e processos do aplicativo para localizar a origem de tal vazamento.
Para um alto uso da CPU, aumente a alocação da CPU da tarefa ou atualize para um tipo de instância maior.
Para problemas de espaço em disco, execute o comando a seguir para identificar arquivos maiores que 50 MB:
find / -type f -size +50000k -exec ls -lh {} \; 2>/dev/null
Para aumentar seu espaço em disco, consulte Como aumentar o espaço em disco para meu contêiner do Amazon ECS no AWS Fargate?
Execute testes e otimize a alocação de recursos
Para determinar a alocação ideal de recursos para seus aplicativos, use ferramentas para realizar testes. Em seguida, atualize suas definições de tarefas e configurações de serviço com base nos resultados. Modifique a capacidade da CPU e memória em suas definições de tarefas com base em seus padrões de uso. Use o Application Auto Scaling para gerenciar com eficiência as mudanças nos workloads.
Verifique a capacidade da instância
Certifique-se de que suas instâncias de contêiner tenham recursos suficientes para suas tarefas. Use provedores de capacidade para ajustar automaticamente a capacidade do seu cluster.
Configure os alarmes do CloudWatch
Crie alarmes para métricas, como utilização da CPU, uso da memória e taxas de erro da aplicação. Configure as notificações para alertá-lo quando os limites forem excedidos.
Informações relacionadas
Como faço para montar um sistema de arquivos do Amazon EFS em um contêiner ou tarefa do Amazon ECS em execução no AWS Fargate?
Container Insights com observabilidade aprimorada agora disponível no Amazon ECS
Métricas do Amazon ECS CloudWatch
Monitore o Amazon ECS usando o CloudWatch