Debian - Apache 2.2 & mod_php - uso de memória

1

Eu tenho um problema de memória com meus servidores (Debian 6.0) onde está instalado o Apache httpd 2.2, mod_php e APC.

Na verdade, parece que o httpd aloca toda a memória disponível (4GB) quando está esperando muito por uma resposta do Mongodb (30 segundos de tempo limite). Ok, eu sei, 30 segundos de tempo limite é muito alto. Essa longa espera leva o servidor front-end a começar a trocar memória, a média de carga alcança valores muito altos (em torno de 200) até que o hw esteja completamente travado.

Suponho que o problema esteja na configuração atual do httpd, porque MaxClients está definido como 200 e o limite de memória do PHP é 128MB. No pior dos casos, precisamos apenas de cada mecanismo PHP com pelo menos 25 GB de RAM, mas temos 4 GB.

  • 128 megabytes * 200 = 25 gigabytes

Minha humilde opinião é a seguinte: tendo 4GB, se encolhermos o memory_limit do php para 96MB, devemos suportar cerca de 48 garfos (ou seja, MaxClients 48). Mesmo porque um httpd Apache bifurca um novo filho, a maior parte da memória é compartilhada com o processo pai.

  • Memória total de 4 GB = filho Apache 96 MB * 48 MaxClients

Mas como saber exatamente quanta memória é compartilhada por todos os filhos do httpd e quanto é alocado por cada processo httpd do apache?

E falando sobre PHP e APC, mesmo nesse caso, como saber quanta memória é compartilhada e quanto é alocada por cada mecanismo?

    
por freedev 08.04.2013 / 01:16

0 respostas