Categorias

o-android-13-tem-codinome-interno-vazado-a-aposta-agora-e-a-sobremesa-tiramisu

Android

Games

Notícias

Tutoriais Linux

Vídeos

Dica

26/04/2021 às 13:30

7 min leitura

Avatar Autor
Por Adriano Frare

Configure o PHP-FPM para utilizar pouca memória RAM

Php Fpm 02

Neste artigo iremos ensinar como configurar o PHP-FPM na sua distribuição Linux, de modo a diminuir o consumo de memória RAM .

A maioria dos sites que utilizam o LINUX , acabam configurando o LAMP ( Linux , NGINX/APACHE , MySQL / MariaDB e PHP ), provavelmente está usando o proxy FastCGI no NGINX (como um servidor HTTP) para processamento de PHP. PHP-FPM (um acrônimo de FastCGI Process Manager ) é uma implementação alternativa de PHP FastCGI amplamente usada e de alto desempenho.


Os administradores acabam se deparando com algumas situações, onde todos os nossos sites PHP em um de nossos servidores LAMP tornaram-se lentos e, eventualmente, pararam de responder ao fazer login no servidor. Após análise, descobrimos que o sistema estava com pouca RAM, pois os processos PHP-FPM havia consumido a maior parte da RAM, conforme indicado na imagem a seguir ( relances – ferramenta de monitoramento do sistema ).

$ htop

Php Fpm 01


Neste artigo, mostraremos como evitar que o PHP-FPM consuma muito ou toda a memória do sistema ( RAM ) no Linux. No final deste artigo, você aprenderá como reduzir o consumo de memória do PHP-FPM em 50% ou mais.

Reduza o uso de memória PHP-FPM

Depois de fazer algumas pesquisas na Internet, descobrimos que precisávamos reconfigurar o gerenciador de processos do PHP-FPM e alguns aspectos dele para reduzir o consumo de memória do PHP-FPM no arquivo de configuração do pool.

O pool padrão é www e seu arquivo de configuração está localizado em :

/etc/php-fpm.d/www.conf (no CentOS / RHEL / Fedora ) ou /etc/php/7.4/fpm/pool.d/www.conf ( no Ubuntu / Debian / Mint ).

$ sudo vim /etc/php-fpm.d/www.conf [No CentOS / RHEL / Fedora]

$ sudo vim /etc/php/7.4/fpm/pool.d/www.conf [No Ubuntu / Debian / Mint]

Encontre as seguintes diretivas e defina seus valores de acordo com seu caso de uso. Para diretivas com comentários, você precisa removê-los.

pm = ondemand


pm.max_children = 80

pm.process_idle_timeout = 10s


pm.max_requests = 200


Vamos explicar resumidamente as diretivas acima e seus valores. A diretiva pm determina como o gerenciador de processos controlará o número de processos filhos. O método padrão é dynamic , o que significa que o número de filhos (processos filhos) é definido dinamicamente dependendo de algumas outras diretivas, incluindo pm.max_children, que define o número máximo de filhos que podem estar vivos ao mesmo tempo.

O gerenciador de processos mais ideal é o esquema ondemand , em que nenhum processo filho é criado na inicialização, mas sim gerado sob demanda. Os processos filhos são bifurcados apenas quando novas solicitações se conectarão com base em pm.max_children e pm.process_idle_timeout, que define o número de segundos após os quais um processo inativo será eliminado .

Por último, mas não menos importante, precisamos definir o parâmetro pm.max_requests, que define o número de solicitações que cada processo filho deve executar antes de re-spawn. Observe que este parâmetro também pode ser usado como uma solução alternativa para vazamentos de memória em bibliotecas de terceiros.

Depois de fazer as configurações acima, percebi que o uso de RAM agora está bom em nosso servidor.

Recomendamos que cada administrador avalie a melhor configuração do PHP-FPM e memória RAM para uso no seu servidor, e portanto, realize as configurações mais adequadas pra atender as necessidades de seus usuários.

Segue abaixo mais alguns artigos interessantes para melhorar a administração do seu Linux.

22 dicas de SSH

Como proteger contra ataque de DDOS

Escritor do livro Aplicações Avançadas em LINUX com mais de 20 anos trabalhando com LINUX e UNIX.

Últimos artigos

Newsletter

Receba nossas atualizações!

Newsletter

Receba nossas atualizações!
  • Este campo é para fins de validação e não deve ser alterado.