O servidor trava uma vez por hora, mas nada de especial está sendo executado naquele momento

2

Hoje meu servidor Ubuntu 12.04 começou a bater uma vez por hora. Na verdade, é certo no minuto: 32, a cada hora. Parece ser uma falha real do kernel, ou seja, não há nada em / var / log / syslog, ele simplesmente pára. Eu até escrevi um roteiro que imprimia a hora a cada segundo para tentar descobrir a hora exata, e vi como o próximo acidente estava chegando, e o melhor que posso dizer é que é cerca de 32 minutos e 13 segundos depois da hora.

Mas eu não tenho trabalhos CRON em execução naquele momento, nada. Os que eu tenho são os mesmos scripts em Perl que eu tenho rodado há anos e que não fazem nada de especial. Eu não mudei nada no servidor em provavelmente semanas, e definitivamente nada importante. Eu passei por todas as fontes de tarefas agendadas que posso encontrar. Nada de especial acontece naquele momento, exceto que o servidor falha sem deixar vestígios do motivo.

Quando ele falha, eu não tenho escolha a não ser reiniciá-lo através do site da empresa de hospedagem, que tem sido a minha solução até agora, mas agora são quatro horas e eu tenho que dormir um pouco. Mas se eu fizer isso, meu site vai cair dentro de uma hora. Qualquer ajuda seria apreciada, a) como encontrar esta tarefa que está rodando e causando o travamento, se é o que é, ou b) como rastrear o que está acontecendo quando ele não aparece no syslog ou no dmesg.

RESOLVIDO . Entrei em contato com meu host. Aparentemente eles instalaram um novo software de monitoramento de servidores que sinalizou o meu como usando muita E / S de disco. Em vez de me dizer, este software deles simplesmente matou meu servidor. Corre a cada hora a: 32 minutos.

    
por felwithe 07.09.2016 / 10:12

3 respostas

0

Pode haver algum outro motivo.

  1. Existe algum aplicativo específico (servidor da web) em execução que consuma mais memória (ou seja, em caso de ajuste / otimização incorretos, não é possível liberar memória)

  2. Tente capturar todos os processos que consomem mais cpu e memory a cada minuto (pode ajudar no seu cenário encontrar a causa) - escrever algum script para capturar essas informações (redirecionar a saída para um arquivo) e configure-o em crontab .

por 07.09.2016 / 11:47
0
  • Você deve tentar o processo de eliminação. Então, cerca de 30 minutos após a hora, pare o cron. Sim, eu sei que você não acha que é o cron, mas ainda assim faz. Se ele não trava aos 32 minutos, então o foi cron , e você pode tentar eliminar metade dos scripts cron que são executados naquele momento até encontrar o problemático. Se ainda travar com o cron desabilitado, então, da próxima vez, aos 30 minutos, você também desabilitará metade dos daemons que estiver executando, até encontrar o problemático. (Se o sistema ainda travar em 32 mesmo quando tudo estiver desabilitado, ou se o seu sistema tiver sido hackeado, ou se você tiver problemas de energia elétrica naquele momento, ou se você for VM e host físico fizer algo nesse momento )

  • instale o console serial (melhor) ou netconsole (mais fácil). Dessa forma, quando ele falhar, você poderá obter um log em outra máquina.

  • como um alívio temporário, instale o pacote watchdog com softdog module (ou melhor ainda um hardware, se o seu hardware suportar). Isso não corrigirá o problema, mas poderá permitir algum tempo de espera até que você o corrija

É provável que alguns dos seus antigos scripts "sempre funcionaram corretamente" estejam enfrentando algum problema com novos dados, ou há muito dele, então eles consomem todos os recursos. Você deve sempre configurar ulimit restrições para que isso não aconteça. Também é possível que os scripts acessem a área danificada do disco ou tentem acessar algum outro hardware problemático e que isso cause a falha. Console serial deve dizer ...

    
por 07.09.2016 / 13:36
-3

Tente este relógio -n 10 top # (a cada 10 segundos repita os comandos).

Atenciosamente

    
por 07.09.2016 / 11:56