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:
- Estou executando alguns sites (Apache 2.2.22 Construído em 12 de julho de 2013) de um servidor dedicado (Ubuntu 13.04).
- 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.
- Não encontrei nenhum registro anormal no / var / log / apache em relação ao problema.
-
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