O servidor responde a pings, mas não aceita conexões SSH até a reinicialização. 0% de CPU

3

Eu tenho um servidor da Web que ocasionalmente para de funcionar totalmente. Não há aumento nos pedidos da Web, no uso da CPU, no uso da memória, no uso do disco ou no uso da rede que leva à falha. Apenas todos os gráficos de uso caem para 0 e o servidor se torna praticamente inacessível. Eu ainda posso pingar o servidor e, na verdade, posso obter uma conexão nas portas 80 e 22, mas nunca recebo nenhuma resposta além de uma resposta de ping.

A reinicialização do servidor causa uma recuperação completa. Esse tipo de acidente acontece em um intervalo de 18 a 36 horas. Esta é uma máquina virtual rodando o Ubuntu 11.04 (com PHP 5.3, Apache, JVM) no EC2 da Amazon. Eu criei dezenas de servidores com o mesmo resultado, por isso não é um problema de hardware. Eu tentei reconstruir a imagem do meu servidor a partir do zero com o Ubuntu 10.10, e isso não teve efeito.

O que eu posso tentar diagnosticar este problema?

EDIT, mais detalhes: Eu tenho uma tarefa cron executando como root uma vez por minuto que registra a saída do status detalhado do Apache (quais URLs estão sendo executados, por quanto tempo, etc.). O último log antes do travamento parece normal, e o trabalho cron não é executado quando ocorre o travamento (de acordo com /var/log/auth.log).

EDIT, para maior clareza: eu posso fazer telnet para a porta 22, mas não SSH para ela. Eu posso fazer telnet para a porta 80, mas não há resposta alguma para um HTTP GET.

    
por Ben Dilts 09.08.2011 / 17:36

3 respostas

2

Você tem um problema com o aplicativo Java. Faça 2-3 dumps de thread com kill -3 <jvm_pid> . Você pode encontrar os dumps de segmento no arquivo /proc/<jvm_pid>/fd/1 . Envie os dumps de encadeamento para o desenvolvedor de Java para procurar encadeamentos presos ou bloqueados.

A mesma coisa pode acontecer com o PHP também. Verifique o status do apache para ver quantas conexões você tem e em qual estado e em qual página elas estão.

Editar: Como uma solução feia, você pode reiniciar o processo java em vez de reiniciar a VM.

    
por 09.08.2011 / 17:58
1

Você deve verificar o sar - esperamos que ele já esteja rodando e coletando muitas estatísticas do sistema a cada poucos minutos.

Veja algumas informações sobre como ativar o sar no ubuntu .

Quando estiver ativado, você poderá executar sar -A para ver as estatísticas que foram coletadas. Espero que existam algumas informações que apontem na direção certa, por exemplo, ele deve mostrar se a sua máquina está subitamente usando muita memória virtual.

dmesg output pode ser muito útil aqui também - talvez um problema estranho de driver esteja fazendo com que a máquina pare de responder?

    
por 09.08.2011 / 21:29
0

Você tem o nscd instalado e em uso? no passado, causou tais congelamentos estranhos para mim, se nscd morreu, mas deixou seu pid ao redor.

    
por 09.08.2011 / 18:38