Como faço para solucionar problemas de uma instância do Apache2 sem resposta usando 100% da CPU?

1

Eu estou rodando um servidor Debian 7 com o Kolab Groupware instalado e nada mais. Ele funciona perfeitamente bem normalmente, mas aleatoriamente (sempre quando eu não estou olhando, é claro) o uso da CPU irá aumentar para 100% e ficar lá, o Apache não responderá, e eu tenho que matar o -3 apache2.prefork. Tenho certeza que isso é algo que eu fiz desde que eu não encontrei mais ninguém com um problema semelhante com o Kolab. Mais algumas informações:

  • SSL é necessário e a conexão com a porta 80 é redirecionada imediatamente para o site SSL
  • Por "Sem resposta", quero dizer que tentar acessar qualquer página fica em "Estabelecendo conexão segura" até o tempo limite do navegador.
  • Isso inclui a página feita por mod_status, então a solução fornecida em esta questão não funcionará
  • Nada é gravado nos logs. É configurado da maneira usual, com um access.log, error.log e outro_vhosts_access.log, e todos estão vazios. O conteúdo mais recente é os logs rolados do dia anterior, que mostram apenas o uso normal e nada suspeito
  • Parece não haver ninguém conectado a ele, então duvido que esteja sobrecarregado
  • Está sendo executado em uma VM. Originalmente, a VM tinha apenas uma CPU, então achei que talvez isso fosse um engarrafamento e adicionei outra CPU. No entanto, isso ainda acontece, mas, curiosamente, só vai aumentar um do CPU para 100%, indicando que é provável algum tipo de loop infinito, até onde eu saiba.
  • Todo o resto do servidor que não interage com o Apache continua funcionando bem.
  • Eu escrevi um pequeno trabalho no cron para checar o uso da CPU e me mandar um e-mail quando picos, o que significa que consegui pegá-lo minutos depois, mas ainda não consegui encontrar nada nos logs (incluindo o syslog) indicaria porque.
  • Não parece ser periódico, aconteceu em diferentes momentos do dia, quando as pessoas estão usando ou quando está ocioso. Não há trabalhos agendados que eu possa encontrar que correspondam ao pico.

Eu acho que provavelmente consigo descobrir se eu sabia como o PHP está rodando sem usar HTTP (S) para fazê-lo ou ter o PHP compilado com símbolos de depuração. Alguém sabe uma maneira de fazer isso?

    
por PLavigne 09.07.2015 / 16:12

0 respostas