Por que minha instância do Linux do Amazon EC2 não responde?
Minha instância Linux do Amazon Elastic Compute Cloud (Amazon EC2) parou de responder.
Breve descrição
As instâncias do EC2 deixam de responder pelos seguintes motivos:
- O uso da CPU é consistentemente igual ou próximo a 100% e não permite que o kernel execute operações típicas do sistema operacional (SO).
- A instância ficou sem memória, então o Gerenciador Linux Out of Memory (OOM) encerrou processos como banco de dados, servidor web ou serviço SSH.
Observação: as instâncias do EC2 não alocam espaço de troca por padrão. - O dispositivo raiz está 100% cheio e não permite que outros processos sejam concluídos ou iniciados, e você recebe os erros "No space left on device".
- Sua instância não consegue se comunicar com outros hosts devido a problemas de rede.
- Problemas de operação de E/S fazem com que instruções de leitura e gravação, como a criação de arquivos temporários, leituras de bibliotecas do sistema ou bancos de dados, fiquem bloqueadas.
Os problemas anteriores também podem se acumular. Por exemplo, você fica sem memória, então o Gerenciador OOM encerra um processo chave. Em seguida, um processo que depende do processo interrompido inicia um número maior de ciclos de CPU. Se o processo estiver relacionado ao disco, o ciclo também poderá usar todo o espaço de volume disponível do Amazon Elastic Block Store (Amazon EBS). Ou o problema pode ser transferido para uma instância que espera comunicação da instância que não responde.
Para solucionar problemas da instância que não responde, identifique a causa raiz do problema e, em seguida, adote medidas de solução com base nesse problema.
Resolução
Identificar a causa raiz do problema
Monitorar o uso da CPU com o CloudWatch
Use o agente Amazon CloudWatch para ver tendências no uso da CPU e identificar se o problema é contínuo, espontâneo ou recorrente.
Usar ferramentas de monitoramento do sistema
Se você tiver vários serviços, deverá identificar se o serviço usa recursos em excesso. Use ferramentas como sar ou atop e atopsar para obter estatísticas históricas de uso sobre os processos executados na sua instância. Para obter mais informações sobre como configurar as ferramentas, consulte Como configuro as ferramentas de monitoramento ATOP e SAR em uma instância do EC2 que está executando Amazon Linux, RHEL, CentOS ou Ubuntu?
Verificar os logs do sistema
Verifique os logs do sistema quanto a erros relacionados ao alto uso de recursos para identificar problemas no sistema ou na aplicação.
Execute o comando a seguir para visualizar as mensagens do kernel:
dmesg
Além disso, verifique os arquivos /var/log/syslog ou /var/log/messages para ver se há mensagens do sistema.
Analisar o histórico de comandos
Verifique no arquivo ~/.bash_history um histórico de comandos para identificar problemas como um script inesperado que está sendo executado em segundo plano.
Verificar se há alto uso de memória
Execute o comando a seguir para verificar o uso da memória:
free -h
Na saída, verifique as colunas used e free para identificar o uso da memória da sua instância. Para mais informações sobre o comando free, consulte Dissecting the free command: What the Linux sysadmin needs to know (Dissecando o comando free: o que o administrador de sistemas Linux precisa saber) no site da Red Hat.
Verificar se há alto uso de armazenamento
Se o uso de armazenamento do volume raiz for alto, seu dispositivo poderá estar cheio. Para identificar esse problema, verifique os logs do console da instância.
Solucionar problemas de alto uso da CPU
Identificar o processo que usa alta CPU
Use o comando pidstat ou ps para obter informações mais detalhadas sobre processos, como se o processo é do sistema ou do usuário. Para mais informações sobre os comandos, consulte pidstat e ps na página de manual do Linux.
Verificar se há tarefas programadas
Verifique se as tarefas programadas ou os cron jobs executados na instância causaram o alto uso da CPU. Primeiro, verifique as métricas do CloudWatch da sua instância para identificar o carimbo de data/hora de quando a utilização da CPU esteve alta.
Em seguida, execute o seguinte comando para listar os cron jobs:
sudo crontab -lsudo cat /etc/crontab sudo cat crontab -l
Observação: o comando anterior verifica a configuração crontab para o usuário-raiz. Para verificar se há um usuário específico, adicione -u username ao comando e, em seguida, substitua username pelo nome do usuário.
Na saída do comando, verifique as tarefas executadas no momento em que o uso da CPU estava alto.
Verifique os seguintes logs:
- /var/log/messages/var/log/syslog
- /var/log/dmesg
- /var/log/cron.log
Use o comando grep para filtrar entradas nos logs para cron jobs específicos e verificar se há erros. Para mais informações sobre o comando, consulte grep no site do manual do Linux.
Verificar o tráfego de rede
O alto tráfego de rede pode causar alto uso da CPU, especialmente se a instância gerencia um grande volume de solicitações de rede.
Execute o comando a seguir para monitorar o tráfego da rede:
iftop
Use a saída do comando para identificar oportunidades de otimizar sua configuração de rede. Certifique-se de que sua configuração não limite o tráfego da rede e que o tráfego esteja dentro da largura de banda correta para seu tipo de instância. Para mais informações, consulte Linux interface analytics on-demand with iftop (Análise de interface Linux sob demanda com iftop) no site da Red Hat. Se o tráfego de rede for consistentemente alto, é uma prática recomendada atualizar seu tipo de instância para um tamanho maior.
Verificar a E/S do disco
Uma alta E/S de disco pode causar alto uso da CPU. Para identificar processos que causam alta E/S, execute o seguinte comando:
iostat
Para obter mais informações, consulte I/O reporting from the Linux command line (Relatórios de E/S da linha de comandos do Linux) no site da Red Hat.
Para finalizar um processo desnecessário, execute o comando kill. Para mais informações, consulte kill no site do manual do Linux.
Para solucionar outros problemas de alto uso da CPU, consulte Como soluciono problemas de alta utilização da CPU em uma instância do Linux do Amazon EC2?
Solucionar problemas de alto uso de memória
Para solucionar problemas de alto uso de memória, consulte Como soluciono problemas de alta utilização de memória na minha instância Linux do EC2?
Solucionar problemas de "no space left on device"
Para solucionar problemas de alto uso do dispositivo raiz, use o console de série do EC2 para se conectar à sua instância e excluir arquivos desnecessários. É possível usar o console de série do EC2 para instâncias criadas no AWS Nitro System e com suporte para instâncias bare metal. Você não precisa de uma conexão ativa para se conectar à instância quando usar o Console de Série do EC2. No entanto, você deve seguir os pré-requisitos do console de série do EC2.
Se sua instância estiver inacessível e você ainda não tiver configurado o acesso ao console de série, não será possível usar o Console de Série do EC2. Nesse cenário, use SSH para se conectar à sua instância e, em seguida, aumente o tamanho do volume do Amazon EBS.
Se não for possível usar o console de série ou o SSH, execute uma instância de resgate e use-a para excluir arquivos desnecessários. Para obter instruções, consulte Solucionar o erro "No space left on device" em Como soluciono problemas de uma instância do Linux do EC2 que apresenta falha na verificação de status devido ao uso excessivo de recursos?
Otimizar o código
Se a aplicação causar alto uso da CPU, identifique e elimine gargalos de desempenho em seu código. Use ferramentas como perf ou strace para identificar problemas de código. Para obter instruções, consulte Recording and analyzing performance profiles with perf (Como gravar e analisar perfis de desempenho com perf) e How do I use strace to trace system calls made by a command? (Como uso o strace para rastrear chamadas do sistema feitas por um comando?) no site da Red Hat.
Atualizar a instância
Se seus processos usam consistentemente um grande volume de recursos por motivos válidos, como uma alta ingestão de usuários, aumente o tamanho da instância. Para obter mais informações sobre os requisitos, consulte Quais etapas eu preciso seguir antes de alterar o tipo da minha instância do Linux do EC2?
Use o AWS Compute Optimizer para identificar o tipo e o tamanho corretos da instância para seus requisitos de configuração. Também é possível usar o Amazon EC2 Auto Scaling para escalar horizontalmente.
Configurar regras de auditoria do Linux
Para obter mais visibilidade dos comandos do usuário e das alterações de configuração, configure o sistema Linux Audit para rastrear as alterações.
Atualizar a configuração para evitar o uso excessivo de recursos no futuro
Antes de implantar uma nova aplicação em produção, crie um ambiente de teste. Use o ambiente para comparar a aplicação e determinar a computação, a memória, a capacidade de volume do EBS e o tráfego de rede necessários. Em seguida, implante sua aplicação com base nos requisitos de referência. Para obter as práticas recomendadas para criar tolerância a falhas, consulte Projete as interações em um sistema distribuído para evitar falhas.
Verifique o alto desempenho dos arquivos de configuração, das consultas ao banco de dados e do código que são executados na sua instância. Se sua aplicação usa muitos bancos de dados, é uma prática recomendada usar o cache para reduzir o número de consultas ao banco de dados.
Verifique se seu software está atualizado com os patches de segurança e correções de erros mais recentes. Software desatualizado pode causar problemas de desempenho que causam alto uso da CPU.
Se sua aplicação recebe alto volume de tráfego, use um balanceador de carga para distribuir o tráfego em várias instâncias do EC2. Um balanceador de carga reduz o uso da CPU em instâncias individuais.
Monitore continuamente o uso de recursos das suas instâncias. Crie alarmes do CloudWatch para identificar automaticamente instâncias com risco de uso excessivo de recursos.
- Tópicos
- Compute
- Tags
- LinuxAmazon EC2
- Idioma
- Português

This article was reviewed and updated on 2026-02-24.
Conteúdo relevante
feita há um ano
feita há um ano