Quando o apache bifurca um processo para o mod-php, por quanto tempo ele permanece vivo? O processo morre assim que a resposta é enviada ou permanece ativo até que o navegador receba a resposta completa?
Quando o apache bifurca um processo para o mod-php, por quanto tempo ele permanece vivo? O processo morre assim que a resposta é enviada ou permanece ativo até que o navegador receba a resposta completa?
Respostas:
Se você estiver usando o mod-php, provavelmente preforkusará o MPM, que gera processos filhos para lidar com solicitações. O número e a vida útil dessas crianças, conforme regido pelas diretivas em seu 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 StartServerscrianças automaticamente. Esses processos ficarão inativos até que uma solicitação seja recebida. Se as crianças ficarem ocupadas, elas aparecerão MaxClientspara lidar com a carga, tentando manter MinSpareServersas crianças inativas para receber novas solicitações. Quando as coisas se acalmarem, as crianças ociosas serão mortas até que a contagem diminua MaxSpareServers.
O que você está perguntando é tratado MaxRequestsPerChild. Definido como 0, isso significa que os filhos podem viver para sempre, que é o valor padrão na maioria das instalações do apache. Definido como qualquer outra coisa, significa que cada processo filho será forçado a ser morto e reiniciado, independentemente da carga atual, uma vez que ele tenha tratado esse número de solicitações.
Mais detalhes sobre o MPM prefork aqui: http://httpd.apache.org/docs/2.2/mod/prefork.html
O httpd não bifurca um processo para o mod_php. Ele bifurca um processo para si mesmo, com o mod_php incorporado. A criança permanecerá viva até que tenha cumprido os MaxRequestsPerChildpedidos. O próprio mod_php continuará manipulando cada solicitação de um script PHP até que o script saia ou o limite de tempo seja excedido.