Evita a alta média de carga causada pelo apache

0

Eu tenho um servidor remoto executando o Apache com alguns sites. Às vezes, a média de carga aumenta muito e o servidor da Web não responde

Eu acho que é causada pelo apache, mas não posso verificar porque a sessão ssh é fechada automaticamente quando eu log in Eu só posso resolvê-lo reiniciando o servidor (na verdade, eu tenho que ligar para o provedor para reiniciá-lo manualmente ).

Uma vez que é reiniciado, posso verificar no Cacti que a média de carga foi muito alta (mais de 100).

Alguém pode explicar minha maneira de encontrar e resolver o problema? Talvez eu precise de um gatilho ou algo assim para reiniciar o Apache quando a média de carga aumenta, eu não sei.

Obrigado em avançado.

    
por isma 04.02.2013 / 17:55

1 resposta

0

A primeira coisa que você precisa fazer é monitorar o que está acontecendo, voltar e atualizar sua pergunta quando tiver mais detalhes.

Use um pequeno script que consultará o carregamento do sistema e da memória a cada poucos segundos e salve essas informações em um arquivo. Talvez algo assim:

#!/bin/sh
while true
do
    echo "-------'date'--------"
    echo "\t\t%MEM\t%CPU"
    ps ax -o comm,%mem,%cpu | sort -nk3 | tail -n 3
    sleep 30
done

O script imprimirá as estatísticas de uso dos três processos mais pesados da CPU e, em seguida, dos três processos mais pesados de memória. Ele irá esperar por 30 segundos (você pode mudar isso dando um número diferente para sleep ) e fazer tudo de novo. Sua saída é assim no meu sistema:

$ ./monitor.sh
-------Mon Feb  4 20:00:51 CET 2013--------
                %MEM %CPU
java             9.1  3.6
Xorg             3.3  4.9
firefox          8.1 12.2
        ---     
Xorg             3.3  4.9
firefox          8.1 12.2
java             9.1  3.6

Salve este script como monitor.sh e torne-o executável e execute-o em segundo plano enquanto redireciona sua saída para um arquivo:

chmod 744 monitor.sh
./monitor.sh > usage.log &

Você pode monitorar o progresso executando tail -f usage.log .

Deixe isso funcionar por um tempo e verifique o que estava acontecendo na próxima vez em que seu servidor não responder. Tenha cuidado, porém, o script está imprimindo 9 linhas a cada 30 segundos. Se você deixar isso funcionar por muito tempo, você receberá um arquivo bem grande. Lembre-se de pará-lo quando tiver coletado as informações necessárias.

    
por 04.02.2013 / 20:05