Tentando diminuir o número do processo do apache 2

1

Eu estou no Debian 6 LAMP com o apache mpm_prefork

Eu tenho

Timeout 20
KeepAlive On
MaxKeepAliveRequests 80
KeepAliveTimeout 2

<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    ServerLimit      500
    MaxClients            500
    MaxRequestsPerChild   1500
</IfModule>

com 4 GB de RAM. O problema é que o Apache2 inicia muitos processos. Sempre que eu faço top , vejo a maior parte do tempo apenas 1 em execução, enquanto o número de processos do apache2 em suspensão aumenta com o tempo (agora em 437 processos e contando)

Posso saber Por que o apache2 inicia um novo processo para usar o que já está aberto? E como posso dizer ao apache para não abrir tantos processos?

Obrigado

    
por dynamic 22.03.2011 / 12:12

1 resposta

4

Você disse ao Apache que deseja poder atender 500 clientes simultaneamente e ter um limite rígido no pool de processos do cliente de 500.

Como o Apache recebe solicitações, ele começa a expandir seu pool de processos até chegar perto do limite.

Como você está usando um servidor preforking, cada processo só lida com um único thread de solicitação, portanto, o Apache precisa manter um grande número de processos suspensos para lidar com o número de clientes simultâneos que você especificou. Estes comem muita memória.

Você pode alternar para um modelo MPM de encadeamento, reduzir o valor de MaxClients ou aumentar a quantidade de RAM. Veja o link e o link .

    
por 22.03.2011 / 12:41