Sobrecarga de muitos processos php-fpm no Linux?

2

Estou migrando a configuração de um servidor web que executa aplicativos PHP usando PHP-FPM por trás do nginx. O servidor tem cerca de 40-50 (e crescendo) vhosts nele. O servidor é uma única VM da CPU com 1 GB de RAM. Embora isso não seja uma grande quantidade de recursos para brincar, eu tenho muitos deles por trás de um balanceador de carga, preferindo dimensionar horizontalmente em vez de verticalmente.

A configuração anterior tinha todos os vhosts sendo executados fora de um único conjunto PHP-FPM, rodando sob o mesmo usuário. Max-children tinha cerca de 20 anos, e o servidor parecia lidar com a carga jogada (no total, cerca de 100.000 acessos por dia - não mega tráfego).

Pensando na segregação desses sites, estou considerando migrar para um modelo em que cada vhost tenha seu próprio conjunto PHP-FPM em execução em um usuário específico para esse site e, em seguida, fazendo o cromador desse conjunto para o docroot do vhost. No entanto, mesmo em configurações conservadoras de pool de crianças (inicial = 2), haverá aproximadamente 100 processos FPM quando ociosos.

Minha pergunta é: isso vai causar um problema? Há algum problema de memória inerente ao girar vários processos?

Pergunta final sobre bônus: qualquer ulimit sugere php-fpm se eu seguir essa abordagem?

    
por growse 27.12.2012 / 18:54

1 resposta

1

Eu estive olhando a mesma coisa.

Acontece que a solução é o gerenciador de processos sob demanda para o FPM. Basta definir:

pm = ondemand

Permite 0 processos FPM filhos, se não houver ocorrências. Eles são criados para cada pool quando o pool recebe hits e são fechados após um tempo limite.

    
por 01.02.2013 / 00:19