O servidor Apache2 para de responder

O servidor Apache2 para de responder

Estou procurando sugestões sobre onde devo me aprofundar.

Em breve, o servidor Apache2 para de atender solicitações após 2 a 15 horas após ser iniciado. Como resultado, tenho que fazer service apache2 restartcada meio dia.

Versão longa:

  1. Estou executando alguns sites (Apache 2.2.22 construído em 12 de julho de 2013) a partir de um servidor dedicado (Ubuntu 13.04).
  2. O servidor Apache2 estava se comportando bem por mais de meio ano, agora de repente ele para de processar solicitações em todos os sites (tendo cerca de 5 sites) até que o processo do Apache seja reiniciado.
  3. Não consegui encontrar nenhum log anormal em /var/log/apache em relação ao problema.
  4. service apache2 statusrelata que o processo está em execução

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

ATUALIZAR:

Correndo 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 essas, 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 linhas posteriores (www-data), então presumo 120 processos apache?

Usando strafeno 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 em um dos processos www-data:

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

Uau, parece-me que de alguma forma os processos do Apache travaram e, uma vez excedido o limite máximo de conexão, ele para 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. Assim que mais informações estiverem disponíveis, deixarei um link para uma nova pergunta com corpo melhor construído. Obrigado

Responder1

Não importa quais relatórios de "status do serviço apache2", você vê processos do apache quando faz ps aux?

Você pode fazer um netstat -n quando o problema ocorrer? Talvez você fique sem recursos, por exemplo, descritores de arquivo, 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 conexão recusada ou a conexão atinge o tempo limite?

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

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

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

ATUALIZAR:

No segundo strace eu vejo este rebanho(40,LOCK_EX Talvez os processos tentem obter um bloqueio exclusivo em algum lugar? você pode fazer lsof -n -p 8554 (ou qualquer pid que tente flocar) e ver qual arquivo ele tenta bloquear (40 é o descritor do arquivo). você também pode "ls /proc/8554/fd"

informação relacionada