Porque usar o PHP-FPM com o Apache2 em seu Web Host | Morettic

Porque usar o PHP-FPM com o Apache2 em seu Web Host

porLuis Augusto Moretto

Porque usar o PHP-FPM com o Apache2 em seu Web Host

Seu site WordPress já sofreu de lentidão inesperada? processos do php que consomem mais memória do que os recursos disponíveis em sua cloud? Por isso vamos apresentar neste post o PHP-FPM para melhorar a performance de seu site!

Como funciona o PHP-FPM?

PHP-FPM é um gerenciador de processos para gerenciar o FastCGI SAPI (Server API) em PHP.

É um serviço e não um módulo. Este serviço é executado completamente independente do servidor web em um processo à parte e é suportado por qualquer servidor web compatível com FastCGI (Fast Common Gateway Interface).

PHP-FPM é consideravelmente mais rápido que os outros métodos de se processar scripts php, e também é escalável, ou seja é possível construir clusters e expandir a capacidade do php de receber requisições.

Instruções em memória com PHP-FPM

Com o PHP-FPM os elementos e as instruções invocadas são guardados em memória, ou seja, é a implementação de uma cache ao nível do servidor para ser reutilizada diretamente se o pedido for novamente executado (Veja também OPcache) .

Por esse motivo, o arquivo PHP é requisitado bem menos vezes, o que se traduz num decréscimo da carga de máquina (load average) e de uma melhor disponibilidade de recursos para que possa efetuar outros trabalhos.

MPM PreFork X MPM Event

A configuração default do Apache PHP é baseada no modelo MPM PreFork e em um processo computacional. O MPM Prefork executa o Apache em um único processo de servidor pai principal. 

Esse pai é responsável por gerenciar quaisquer servidores filhos adicionais que compõem seu pool de servidores. Ao usar o MPM Prefork, cada servidor filho processa apenas uma única solicitação.

O MPM Event usa um thread do Listener dedicado em cada processo filho. Esse segmento de escuta é responsável por direcionar solicitações de entrada para um segmento de trabalho disponível. 

Com o MPM Event rodando é possível ativar o PHP FPM no Apache2. Com isso teremos diversas threads processando em paralelo as requisições do seu servidor com o ganho de performance de até 300%!