Solução de problemas de congelamento misterioso de servidor no Amazon EC2

Solução de problemas de congelamento misterioso de servidor no Amazon EC2

Eu tenho uma instância do Amazon EC2 executando LAMP no Ubuntu Natty/11.04. Em três ocasiões distintas nos últimos meses, duas das quais nas últimas duas semanas, o servidor simplesmente... parou. Ele não responde e para de responder às tentativas de conexão (SSH ou não), mas o painel de controle do EC2 ainda o relata como em execução. Cada vez que tive que reiniciar a instância por meio do console, com consequente perda de dados.

Então, agora estou tentando diagnosticar o problema, mas não consigo encontrar nada e preciso de conselhos sobre o que mais verificar. O Syslog não contém nada suspeito - em cada ocasião, a última coisa que aconteceu foi o munin executando seu cronjob normal de cinco minutos, embora como eu não saiba exatamente quando a máquina parou de funcionar, não posso dizer o quão próximo o cron log está ao ponto de congelar. Depois disso, é como se a máquina simplesmente não estivesse funcionando até o ponto em que foi reiniciada, após o qual o syslog contém o que me parece uma saída normal do dmesg.

Parece não haver correlação entre o volume de tráfego e o tempo desses congelamentos. Cada ocasião foi muito distante dos horários de pico de tráfego.

O que mais posso observar para tentar descobrir o que está causando esses problemas? Qual pode ser o problema?

ADENDO: O servidor não estava sob carga pesada em nenhuma ocasião quando caiu. O uso de CPU e memória estava bem e com segurança abaixo dos limites. Havia bastante espaço livre em disco (dezenas de gigabytes). Também não há nada de estranho nos logs do Apache ou do MySQL, eles simplesmente param de operar naquele momento. Esta é uma instância de CPU média/alta.

Responder1

A primeira coisa que você deve fazer é configurar algum monitoramento para avisar quando o servidor parar de responder. Você pode fazer isso usando pingdom e/ou cloudwatch para verificar o tempo de atividade do serviço e estatísticas do sistema, como CPU e RAM. Ambos têm planos gratuitos para contas pequenas. Isso permitirá que você tenha uma ideia de quando ele cair e facilitará a busca pelos registros sobre o que estava acontecendo naquele momento. Normalmente algo assim pode ser causado pelo sistema não ter recursos suficientes, você não menciona qual é o tamanho da sua instância, mas algo como um micro pode estar apenas atrelando 100% da CPU por um simples cron job e nesse ponto o servidor simplesmente trava .

Verifique também outros logs ao lado do syslog, verifique todos os logs do aplicativo para ver se algum deles está gerando um erro antes que o sistema fique inativo.

Responder2

Pode ser uma NIC ruim na máquina host.

informação relacionada