Como depurar um servidor web que não responde

Como depurar um servidor web que não responde

Nós temos umInstância EC2 médiaexecutando o Ubuntu 12.04, servindo cerca de uma dúzia de pequenos aplicativos web PHP via Apache.

Aproximadamente a cada dois dias, o servidor deixa de responder e é necessário reinicializar a instância para restaurar a funcionalidade. Durante esse período, o servidor não pode ser acessado via HTTP ou SSH.

Sempre, a última solicitação registrada do Apache é para um aplicativo PHP que serve um documento PDF de 4 MB. O User Agent sempre identifica o cliente como um iPad (especificamente Mozilla/5.0 (iPad; CPU OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B329 Safari/8536.25) e geralmente tem o mesmo endereço IP e, portanto, provavelmente é o mesmo usuário.

O aplicativo PHP é um aplicativo legado e verifica algumas permissões antes de transmitir o conteúdo de um arquivo do disco para o cliente. Não conseguimos reproduzir esse problema sozinhos, nem usando um iPad, nem acessando o arquivo por qualquer outro meio.

Tentamos algumas soluções de monitoramento para tentar obter uma imagem melhor do que está acontecendo quando o servidor fica inativo, mas nenhuma delas parece mostrar qualquer problema com os recursos do sistema.

Minha pergunta é quais são algumas estratégias que podemos usar para tentar solucionar e, com sorte, resolver esse problema.

Responder1

Comece monitorando os recursos do sistema (carga da CPU, memória, disco), por exemplo, com collectd ou sysstat.

Tenha em mente que estou me arriscando aqui, o problema que você está descrevendo pode resultar do esgotamento de um recurso (provavelmente memória), corra egrep -i 'killed process' /var/log/*para procurar invocações matadoras de OOM.

Os logs do sistema podem conter vestígios da causa ( /var/log/messageslogs de erros do Apache).

Tente habilitar logs mais detalhados e preste muita atenção ao seu sistema ao testá-lo.

informação relacionada