Todos os produtos
Search
Central de documentação

:Solução de problemas de carga alta em instâncias Linux

Última atualização: Jul 03, 2026

Sintomas

  • Resposta lenta: Comandos do protocolo Secure Shell (SSH) apresentam atrasos. O acesso a sites ou APIs está lento ou atinge o tempo limite.

  • Métricas elevadas: As métricas de CPU, memória e I/O de disco excedem consistentemente 80%.

  • Interrupção de serviço: O sistema encerra processos críticos devido a um erro de falta de memória (OOM) e a instância reinicia automaticamente.

  • Falha de login: Conexões SSH são recusadas.

Causas

  • Problemas na aplicação: O código da aplicação apresenta gargalos de desempenho ou vazamentos de memória.

  • Picos de tráfego: O acesso simultâneo supera a capacidade de processamento da instância.

  • Gargalo de I/O: As operações de leitura e gravação no disco estão saturadas, causando alto iowait da CPU.

Soluções

Etapa 1: Use o htop para identificar rapidamente processos anômalos

  1. Faça login em uma instância ECS usando uma conexão VNC.

    1. Acesse ECS console - Instances. No canto superior esquerdo, selecione a região e o grupo de recursos da instância de destino.

    2. Acesse a página de detalhes da instância desejada. Clique em Connect e selecione VNC. Insira suas credenciais para fazer login na instância ECS.

  2. Instale e execute o htop.

    sudo yum install -y htop
    htop
  3. Analise a saída na interface do htop.

    • Para localizar processos com alto consumo de CPU, pressione a tecla F6 e ordene por PERCENT_CPU em ordem decrescente.

    • Para encontrar processos com alto consumo de memória, pressione a tecla F6 e ordene por PERCENT_MEM em ordem decrescente.

Etapa 2: Use o sar para diagnosticar gargalos de recursos

Após usar o htop para identificar um sintoma, utilize o sar para obter dados quantitativos e confirmar se o gargalo é de CPU, memória ou I/O.

  1. Instale e ative o sysstat.

    sudo yum install -y sysstat
    systemctl start sysstat && systemctl enable sysstat
  2. Execute uma análise direcionada.

    • Analise o uso da CPU (sar -u) para confirmar onde o tempo da CPU é consumido.

      # Collect data once per second for a total of 5 times
      sar -u 1 5
      • %user elevado: Indica problema na aplicação.

      • %system elevado: Indica chamadas frequentes ao kernel ou de I/O.

      • %iowait consistentemente maior que 20%: Indica gargalo de I/O de disco.

    • Avalie a carga do sistema (sar -q) para medir o nível de ocupação do sistema.

      # Collect data once every 2 seconds for a total of 5 times
      sar -q 2 5
      • ldavg-1 maior que o número de núcleos da CPU: O sistema está sobrecarregado.

      • runq-sz elevado: Muitos processos aguardam na fila pela CPU.

    • Verifique a atividade de memória e swap (sar -r e sar -W) para determinar se a memória está esgotada.

      # Analyze memory usage
      sar -r 1 3
      # Analyze swap activity (Swap)
      sar -W 1 3
      • pswpin/s ou pswpout/s consistentemente maior que 0: A memória física é insuficiente e o sistema usa o disco como swap, degradando o desempenho.

    • Examine o I/O de disco (sar -d) para identificar gargalos de desempenho do disco.

      # Collect data once per second for a total of 3 times to analyze a specific disk
      sar -d 1 3
      • %util próximo de 100%: O I/O do disco está saturado.

      • await maior que 20 ms: O tempo de processamento das solicitações de I/O é excessivo.

Etapa 3: Aplique soluções e otimizações direcionadas

  • Para processos de aplicação com alto consumo de CPU:

    • Otimização de código: Utilize ferramentas como perf (C/C++) e jstack (Java) para identificar e otimizar trechos de código críticos.

    • Otimização de lógica: Verifique e corrija operações ineficientes, como loops infinitos e consultas SQL com varredura completa de tabelas.

  • Em casos de memória insuficiente ou troca frequente (swapping):

    • Investigue vazamentos: Empregue ferramentas como valgrind (C/C++) e jmap (Java) para analisar vazamentos de memória.

    • Ajuste configurações: Configure parâmetros de memória da aplicação, como -Xms e -Xmx para uma Java Virtual Machine (JVM).

    • Atualize recursos: Aumente a memória física alterando o tipo da instância. Para mais informações, consulte Visão geral das alterações de tipo de instância.

  • I/O de disco elevado: Para mais informações, consulte Solucionar problemas de carga alta de I/O de disco em sistemas Linux.

Próximas etapas

  • Configurar monitoramento e alertas: Defina limiares de alerta para métricas essenciais, como CPU, memória, carga e disco, para receber avisos antecipados.

  • Planejar o Auto Scaling: Para cargas de trabalho com flutuações, como aplicações web, configure políticas de Auto Scaling para adicionar ou remover instâncias automaticamente conforme as mudanças no tráfego.