O servidor Apache2 para de responder

2

Estou procurando sugestões sobre onde eu devo ir mais a fundo.

Logo, o servidor Apache2 para de atender solicitações após 2 a 15 horas do início. Como resultado, tenho que fazer service apache2 restart a cada metade do dia.

Versão longa:

  1. Estou executando alguns sites (Apache 2.2.22 Construído em 12 de julho de 2013) de um servidor dedicado (Ubuntu 13.04).
  2. O servidor Apache2 estava se comportando bem por mais de meio ano, e de repente parou de prosseguir com solicitações em todos os sites (com cerca de cinco sites) até que o processo do apache fosse reiniciado.
  3. Não encontrei nenhum registro anormal no / var / log / apache em relação ao problema.
  4. service apache2 status informa que o processo está em execução

Ficará feliz em ouvir suas sugestões e o que devo fazer em minha situação.

ATUALIZAÇÃO:

Executando netstat -an | grep 80 :

tcp6       0      0 :::80                   :::*                    LISTEN
tcp6     325      0 SERV_IP:80       IP_A:35514     CLOSE_WAIT
tcp6     332      0 SERV_IP:80       IP_B:34198     CLOSE_WAIT
tcp6     379      0 SERV_IP:80       IP_C:57859     CLOSE_WAIT
tcp6       0      0 SERV_IP:80       IP_A:35060     CLOSE_WAIT
tcp6     360      0 SERV_IP:80       IP_A:38481     CLOSE_WAIT
tcp6     466      0 SERV_IP:80       IP_B:56324     CLOSE_WAIT
tcp6     361      0 SERV_IP:80       IP_A:53466     CLOSE_WAIT
tcp6       1      0 SERV_IP:80       IP_A:38102     CLOSE_WAIT
tcp6     196      0 SERV_IP:80       IP_E:58125     ESTABLISHED

e mais entradas como estas, cerca de 150 delas.

ps aux | grep apache :

root      2968  0.0  0.0 452240 21116 ?        Ss   16:08   0:01 /usr/sbin/apache2 -k start
www-data  5217  0.0  0.0 463584 23820 ?        S    17:04   0:03 /usr/sbin/apache2 -k start

Existem cerca de 120 das linhas posteriores (www-data), então eu suponho 120 processos apache?

Usando strafe no processo raiz do apache2:

 sudo strace -f -p 2968
Process 2968 attached - interrupt to quit
select(0, NULL, NULL, NULL, {0, 264394}) = 0 (Timeout)
wait4(-1, 0x7fff6d157a6c, WNOHANG|WSTOPPED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0})     = 0 (Timeout)
wait4(-1, 0x7fff6d157a6c, WNOHANG|WSTOPPED, NULL) = 0

Usando um dos processos de www-data:

sudo strace -f -p 8554
Process 8554 attached - interrupt to quit
flock(40, LOCK_EX

Whoa, parece-me que, de alguma forma, os processos do apache ficam presos e, uma vez ultrapassado o limite máximo de conexão, ele pára de criar novas instâncias. Mas por que eles ficam presos?

htop, iotop, jnettop não relatam nenhuma anomalia. (sem sobrecarga)

UPDATE2: O servidor não está mais travando nos últimos dois dias. Portanto, não consigo obter mais informações. Em vez disso, agradeço sua ajuda e aceito a resposta. Uma vez mais informações estão disponíveis, deixarei um link para uma nova pergunta com um corpo melhor construído. Obrigado

    
por alandarev 23.12.2013 / 17:42

1 resposta

2

Não importa qual o "status do serviço apache2", você vê os processos do apache quando faz o ps aux?

Você pode fazer um netstat -n quando o problema ocorre? Talvez você fique sem recursos, por exemplo, descritores de arquivos, você pode ter muitas conexões abertas.

Durante o problema, você tem alta utilização da CPU? Talvez o sistema fique sem memória e esteja se debatendo?

O servidor http responde com a conexão recusada ou a conexão apenas com tempos limite?

No último caso, sugiro fazer strace -f -p [apachepid] e você pode descobrir qual chamada de sistema está bloqueando a solicitação. No primeiro, provavelmente o apache caiu.

Você faz proxy do Tomcat ou de outro servidor de aplicativos ou atende a HTML estático simples?

Você configurou a autenticação? por exemplo, talvez algo dê errado na camada de autenticação

ATUALIZAÇÃO:

Na segunda strace eu vejo este flock (40, LOCK_EX Talvez os processos tentem obter um bloqueio exclusivo em algum lugar? você pode fazer lsof -n -p 8554 (ou qualquer pid tenta se reunir) e ver qual arquivo ele tenta bloquear (40 é o descritor de arquivo). você também pode "ls / proc / 8554 / fd"

    
por 23.12.2013 / 17:54