Não consigo colocar meu servidor web online novamente. O servidor continua destruindo e sou forçado a desligá-lo para reinicializar.
Estou em um host compartilhado, então é ainda mais difícil encontrar o culpado.
Como posso descobrir qual página específica (ou, pelo menos, qual host virtual) está enlouquecendo com o uso da CPU?
Estou no CentOS com um Apahce+MySQL+PHP bastante padrão.
Obrigado!
Responder1
Provavelmente a melhor ideia é instalar o apachetop.https://code.google.com/p/apachetop/, você também pode usar o status do servidor Apache, mas o apachetop o tornará muito mais legível.
Responder2
Uma página realmente não tem nada a ver com esse problema.
O comando a seguir deve gerar uma lista de pids para httpd classificados por porcentagem de CPU com o diretório de trabalho atual em que o trabalhador httpd está.
É claro que isso pressupõe que o httpd seja o culpado.
IFS=" "; ps -A ho pcpu,comm,pid | grep httpd | sort -k1n \
while read pcpu comm pid; do \
echo -n "${pcpu"}: "l pwdx "${pid}";
done
Recebo uma saída semelhante a;
0.0: 1850: /
0.0: 1852: /
0.0: 1854: /
0.0: 1853: /
0.0: 1855: /
0.0: 1856: /
0.0: 1857: /
0.0: 1858: /
Isso funciona porque o Apache mudará os diretórios para a raiz do documento dos hosts virtuais antes de realizar qualquer trabalho dentro do host virtual. Portanto, qualquer host virtual que tenha essa raiz de documento é o culpado.
Se você tiver mais de um host virtual usando a mesma raiz de documento, precisará investigar ambos os vhosts para ver o que eles estão fazendo.
Como não tenho trabalhadores do Apache ocupando tempo de CPU, todos eles são 0,0 e, portanto, nenhum pedido está ocorrendo.
Se o problema for realmente uma consulta SQL, não espere que isso mostre nada.