Apache freezing, Como detectar qual host virtual está sendo atingido?

3

Eu tenho um servidor de produção que nas últimas 24 horas foi reiniciado quatro vezes devido a congelamentos. O ping é bom, mas todos os outros serviços excedem o tempo limite (Apache, SSHd, etc). Eu agora o diagnostiquei para o Apache ficar sem memória devido a uma quantidade exorbitante de processos-filhos bifurcando subitamente segundos após o início do Apache. Parar o Apache logo após a reinicialização mantém o servidor estável novamente.

Minhas duas perguntas são:

  1. Existe uma maneira de detectar qual dos vhosts está sendo martelado de repente sem olhar no log de acesso de cada vhost um por um?

  2. Existe uma maneira de ativar / desativar rapidamente vhosts sem comentar (#) todos eles no httpd.conf?

Alguns detalhes do sistema:

Fedora 10, x86_64, PHP 5, Apache 2.2

    
por mr-euro 05.05.2010 / 13:09

2 respostas

3

Tente configurar uma página de status usando mod_status . Se você puder entrar depois de iniciar seu servidor, você deverá ver uma página como esta , que mostra cada conexão com seu vhost correspondente, e URL.

Se o seu site estiver tão sobrecarregado que você não possa entrar, tente executar netstat -nt | grep :80 ou lsof -ni tcp:80 para ver se um ou dois endereços estão inundando seu site e aplique iptables adequadamente.

    
por 05.05.2010 / 20:18
2

1) Costumo usar lsof para ver quais arquivos / diretórios o apache abriu durante o tempo de alta carga. Então, por exemplo (no debian / ubuntu) você pode executar:

lsof -u www-data

e, em seguida, para obter algo mais útil, pesquise apenas arquivos abertos no local correto (por exemplo, / home) e exclua os arquivos de registro que devem estar sempre abertos.

lsof -u www-data | grep /home | grep -v *.log

Você pode precisar executar isso algumas vezes para ter uma ideia do que está sendo executado com frequência.

2) Se você está executando o debian / ubuntu você pode usar o a2ensite e o a2dissite para adicionar e remover automaticamente vhosts da sua configuração do apache.

    
por 05.05.2010 / 13:25