[MASOCH-L] Apache 2 MPM: prefork vs worker
Lao DanTong
danton at inexo.com.br
Wed Mar 30 10:52:55 -03 2005
On Wed, 30 Mar 2005, Marcelo Coelho wrote:
> O benchmark que fiz demonstrou que o prefork é mais rápido, porém como este
> modo inicia um processo httpd para cada conexão, isso deve carregar o
> sistema de acordo com o número de acessos simultâneos. O consumo de memória
> de cada processo não é pequeno, ainda mais quando o httpd carrega módulos
> DSO, por exemplo o mod_php4.
bem, a coisa não é bem assin nos unixen modernos, que usam um truque
chamado 'copy on write', que faz o fork não só ser rápido como não copiar
realmente todo o espaço de memória do processo, só o que vier a ser
modificado. o Linux faz isso desde há muito tempo, não sei quanto ao
FreeBSD, mas a idéia é tão boa que eles não iam deixar de adotar.
> Já o worker, por utilizar threads, compartilha recursos e o consumo de
> memória é bem menor. Em contra partida, todos os módulos precisam ser
> compilados como thread safe (não vejo isso como um problema), mas a
> documentação do Apache alerta de que todos os módulos utilizados precisam
> ser thread-safe, inclusive módulos do PHP/Zend.
pois é, no linux threads e processos não tem grande diferença de
performance. os módulos do PHP/Zend devem ser thread safe, eles rodam no
windows, não? o que a turma levanta a lebre é quanto às várias bibliotecas
das quais o PHP é só um front-end, p.ex. libmysqlclient, ou libpng, mas
acho que é muita farofa para pouco churrasco, o mais provável é que
funcione sem problema.
> A questão é: o que vale mais a pena? Ter a velocidade já comprovada pelo
> prefork, mesmo com o alto consumo de recursos do sistema, ou utilizar o
> worker, que possui performance inferior, mas que teoricamente poupará
> recursos do sistema?
acho que teu benchmark respondeu: no Linux certamente prefork. no FreeBSD
precisa ver a estratégia dele no que toca à criação e cópia de espaço de
processos, se usar 'copy-on-write' prefork nele também. no windows é
melhor desinstalar e usar um dos dois já citados ;-)
More information about the masoch-l
mailing list