Por quanto tempo os processos do Apache permanecem vivos?

8

Quando o apache cria um processo para o mod-php, quanto tempo ele permanece vivo? O processo é interrompido assim que a resposta é enviada ou permanecerá ativo até que o navegador receba a resposta completa?

    
por Jamie Clinton 31.05.2011 / 19:42

2 respostas

8

Se você estiver usando mod-php, provavelmente está usando o prefork MPM, que gera processos filhos para manipular solicitações. O número e o tempo de vida desses filhos são regidos por diretivas no arquivo principal apache2.conf (ou httpd.conf , dependendo da sua distribuição).

Procure a parte que se parece com isso (seus valores podem variar):

<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>

O Apache gera StartServers children automaticamente. Esses processos ficarão ociosos até que uma solicitação seja recebida. Se as crianças ficarem ocupadas, ela gerará até MaxClients filhos para lidar com a carga, tentando manter MinSpareServers crianças ociosas para atender a novas solicitações. Quando as coisas se acalmarem, as crianças ociosas serão mortas até que a contagem caia para MaxSpareServers .

O bit que você está perguntando é tratado por MaxRequestsPerChild . Definido como 0, isso significa que as crianças podem viver para sempre, que é o valor padrão na maioria das instalações do apache. Definido em qualquer outra coisa, significa que cada processo filho será morto e reiniciado à força, independentemente da carga atual, uma vez que tenha manipulado esse número de solicitações.

Mais detalhes sobre o prefork MPM aqui: link

    
por 31.05.2011 / 20:11
3

link MaxRequestsPerChild solicitações. O próprio mod_php continuará a manipular cada solicitação de um script PHP até que o script seja encerrado ou o limite de tempo seja excedido.

    
por 31.05.2011 / 20:10