{"id":7358,"date":"2026-09-25T18:48:53","date_gmt":"2026-09-25T21:48:53","guid":{"rendered":"https:\/\/helpsysadmin.com.br\/blog\/?p=7358"},"modified":"2026-09-25T18:48:57","modified_gmt":"2026-09-25T21:48:57","slug":"php-fpm-tuning-vps-servidor-dedicado","status":"publish","type":"post","link":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/","title":{"rendered":"PHP-FPM Tuning para VPS e Servidor Dedicado"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">O <strong>PHP-FPM tuning<\/strong> \u00e9 uma das etapas mais importantes para melhorar o desempenho de servidores <a href=\"https:\/\/helpsysadmin.com.br\/blog\/como-instalar-crowdsec\/\" data-internallinksmanager029f6b8e52c=\"1\" title=\"Como instalar Crowdsec\" target=\"_blank\" rel=\"noopener\">Linux<\/a> que executam WordPress, WooCommerce, aplica\u00e7\u00f5es PHP, Laravel, Magento, Drupal e outros sistemas baseados em PHP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Um servidor pode possuir v\u00e1rios n\u00facleos de CPU e muita mem\u00f3ria RAM e, mesmo assim, apresentar lentid\u00e3o, erros 502, filas de requisi\u00e7\u00f5es e consumo excessivo de recursos quando o PHP-FPM est\u00e1 configurado de maneira inadequada.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O problema geralmente n\u00e3o est\u00e1 simplesmente na vers\u00e3o do PHP. Em muitos ambientes, o gargalo aparece na forma como os processos PHP s\u00e3o criados, mantidos, reutilizados e limitados.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Neste guia, vamos analisar como realizar <strong>PHP-FPM tuning<\/strong> em VPS e servidores dedicados, incluindo:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>pm<\/code><\/li>\n\n\n\n<li><code>pm.max_children<\/code><\/li>\n\n\n\n<li><code>pm.start_servers<\/code><\/li>\n\n\n\n<li><code>pm.min_spare_servers<\/code><\/li>\n\n\n\n<li><code>pm.max_spare_servers<\/code><\/li>\n\n\n\n<li><code>pm.max_requests<\/code><\/li>\n\n\n\n<li><code>request_terminate_timeout<\/code><\/li>\n\n\n\n<li>consumo de mem\u00f3ria<\/li>\n\n\n\n<li>CPU<\/li>\n\n\n\n<li>PHP-FPM status<\/li>\n\n\n\n<li>slowlog<\/li>\n\n\n\n<li>OPcache<\/li>\n\n\n\n<li>Nginx<\/li>\n\n\n\n<li>Apache<\/li>\n\n\n\n<li>502 Bad Gateway<\/li>\n\n\n\n<li>dimensionamento de workers<\/li>\n\n\n\n<li>monitoramento<\/li>\n\n\n\n<li>ajustes para WordPress<\/li>\n\n\n\n<li>diferen\u00e7as entre VPS e servidor dedicado<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">A ideia n\u00e3o \u00e9 simplesmente copiar uma configura\u00e7\u00e3o pronta, mas entender <strong>como dimensionar o PHP-FPM de acordo com os recursos reais do servidor e o comportamento da aplica\u00e7\u00e3o<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 id=\"h-o-que-e-php-fpm\" class=\"wp-block-heading\">O que \u00e9 PHP-FPM?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">PHP-FPM significa <strong>PHP FastCGI Process Manager<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ele \u00e9 respons\u00e1vel por executar processos PHP e disponibiliz\u00e1-los para servidores web como Nginx ou Apache.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Em uma arquitetura t\u00edpica, temos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Cliente\n   \u2193\nNginx \/ Apache\n   \u2193\nPHP-FPM\n   \u2193\nPHP\n   \u2193\nWordPress \/ Laravel \/ Aplica\u00e7\u00e3o\n   \u2193\nMariaDB \/ MySQL \/ Redis<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Quando um usu\u00e1rio acessa uma p\u00e1gina din\u00e2mica, o servidor web encaminha a requisi\u00e7\u00e3o para o PHP-FPM.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O PHP-FPM utiliza processos ou workers para executar o c\u00f3digo PHP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se existem poucos workers dispon\u00edveis, requisi\u00e7\u00f5es ficam esperando.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se existem workers demais, o servidor pode come\u00e7ar a consumir mem\u00f3ria excessivamente e entrar em press\u00e3o de RAM ou swap.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c9 exatamente nesse ponto que o <strong>PHP-FPM tuning<\/strong> se torna importante.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-por-que-o-php-fpm-precisa-ser-ajustado\" class=\"wp-block-heading\">Por que o PHP-FPM precisa ser ajustado?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A configura\u00e7\u00e3o padr\u00e3o do PHP-FPM n\u00e3o necessariamente corresponde ao ambiente onde o servidor ser\u00e1 utilizado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Um VPS com:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>2 vCPUs<\/li>\n\n\n\n<li>4 GB RAM<\/li>\n\n\n\n<li>3 sites WordPress<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">possui necessidades completamente diferentes de um servidor dedicado com:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>16 cores<\/li>\n\n\n\n<li>64 GB RAM<\/li>\n\n\n\n<li>100 sites<\/li>\n\n\n\n<li>WooCommerce<\/li>\n\n\n\n<li>aplica\u00e7\u00f5es PHP<\/li>\n\n\n\n<li>banco de dados local<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Um valor de <code>pm.max_children<\/code> adequado para um servidor pode ser completamente inadequado para outro.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por isso, o princ\u00edpio mais importante \u00e9:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>N\u00e3o dimensione PHP-FPM apenas pela quantidade de RAM dispon\u00edvel. Analise mem\u00f3ria, CPU, carga, tempo de execu\u00e7\u00e3o das requisi\u00e7\u00f5es e comportamento da aplica\u00e7\u00e3o.<\/strong><\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-onde-fica-a-configuracao-do-php-fpm\" class=\"wp-block-heading\">Onde fica a configura\u00e7\u00e3o do PHP-FPM?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A localiza\u00e7\u00e3o depende da distribui\u00e7\u00e3o Linux e da vers\u00e3o do PHP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Em sistemas baseados em Debian ou Ubuntu, exemplos comuns incluem:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/php\/8.2\/fpm\/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">ou:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/php\/8.3\/fpm\/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Em distribui\u00e7\u00f5es baseadas em RHEL, AlmaLinux, Rocky Linux ou CentOS, podem existir caminhos como:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/php-fpm.conf<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">e:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/php-fpm.d\/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Para descobrir o arquivo carregado pelo PHP-FPM:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>php-fpm8.3 -i | grep \"Loaded Configuration\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dependendo da distribui\u00e7\u00e3o, o bin\u00e1rio pode ser:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>php-fpm<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">ou:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>php-fpm8.2<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tamb\u00e9m \u00e9 poss\u00edvel verificar o servi\u00e7o:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl status php8.3-fpm<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">ou:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl status php-fpm<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-entendendo-o-parametro-pm\" class=\"wp-block-heading\">Entendendo o par\u00e2metro <code>pm<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O par\u00e2metro mais importante para come\u00e7ar o <strong>PHP-FPM tuning<\/strong> \u00e9:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pm =<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ele define como os processos PHP ser\u00e3o gerenciados.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Os modos principais s\u00e3o:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pm = static<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>pm = dynamic<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">e:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pm = ondemand<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Cada um possui caracter\u00edsticas diferentes.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-php-fpm-com-pm-dynamic\" class=\"wp-block-heading\">PHP-FPM com <code>pm = dynamic<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O modo <code>dynamic<\/code> mant\u00e9m uma quantidade vari\u00e1vel de processos PHP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Exemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pm = dynamic\npm.max_children = 30\npm.start_servers = 5\npm.min_spare_servers = 5\npm.max_spare_servers = 15<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Nesse modelo, o PHP-FPM cria processos conforme a necessidade, mantendo processos dispon\u00edveis para atender novas requisi\u00e7\u00f5es.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c9 uma op\u00e7\u00e3o bastante utilizada em servidores web.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pode funcionar muito bem em:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>WordPress<\/li>\n\n\n\n<li>WooCommerce<\/li>\n\n\n\n<li>sites corporativos<\/li>\n\n\n\n<li>APIs<\/li>\n\n\n\n<li>aplica\u00e7\u00f5es PHP<\/li>\n\n\n\n<li>servidores com tr\u00e1fego vari\u00e1vel<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-php-fpm-com-pm-ondemand\" class=\"wp-block-heading\">PHP-FPM com <code>pm = ondemand<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">No modo <code>ondemand<\/code>, os processos s\u00e3o criados somente quando existe demanda.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Exemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pm = ondemand\npm.max_children = 30\npm.process_idle_timeout = 10s\npm.max_requests = 500<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Isso pode ser interessante para servidores com muitos sites e tr\u00e1fego irregular.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por exemplo, imagine um servidor com dezenas de pequenos sites:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Site A \u2192 pouco tr\u00e1fego\nSite B \u2192 pouco tr\u00e1fego\nSite C \u2192 pouco tr\u00e1fego\n...\nSite Z \u2192 picos ocasionais<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Manter workers permanentemente ativos para todos os pools pode desperdi\u00e7ar mem\u00f3ria.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nesse cen\u00e1rio, <code>ondemand<\/code> pode ser \u00fatil.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-php-fpm-com-pm-static\" class=\"wp-block-heading\">PHP-FPM com <code>pm = static<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">No modo <code>static<\/code>, o n\u00famero de processos \u00e9 definido diretamente por:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pm.max_children<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Exemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pm = static\npm.max_children = 40<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Nesse modelo, o PHP-FPM mant\u00e9m a quantidade configurada de workers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pode ser interessante em ambientes previs\u00edveis e com bastante mem\u00f3ria dispon\u00edvel.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por\u00e9m, utilizar valores muito altos sem dimensionamento pode causar problemas graves.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-o-parametro-mais-importante-pm-max-children\" class=\"wp-block-heading\">O par\u00e2metro mais importante: <code>pm.max_children<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pm.max_children<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">define o n\u00famero m\u00e1ximo de processos PHP-FPM que podem existir simultaneamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por exemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pm.max_children = 20<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">significa que at\u00e9 20 workers poder\u00e3o executar requisi\u00e7\u00f5es simultaneamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Isso n\u00e3o significa que voc\u00ea deve simplesmente definir:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pm.max_children = 1000<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">em um servidor poderoso.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cada processo PHP pode consumir mem\u00f3ria significativa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se cada worker consumir aproximadamente 150 MB, 100 workers poderiam representar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>150 MB \u00d7 100\n=\n15 GB<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">E isso \u00e9 apenas uma aproxima\u00e7\u00e3o do PHP-FPM.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ainda precisamos considerar:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>sistema operacional<\/li>\n\n\n\n<li>Nginx<\/li>\n\n\n\n<li>Apache<\/li>\n\n\n\n<li>MariaDB<\/li>\n\n\n\n<li>Redis<\/li>\n\n\n\n<li>OPcache<\/li>\n\n\n\n<li>servi\u00e7os de monitoramento<\/li>\n\n\n\n<li>aplica\u00e7\u00f5es auxiliares<\/li>\n\n\n\n<li>cache<\/li>\n\n\n\n<li>buffers<\/li>\n\n\n\n<li>kernel<\/li>\n\n\n\n<li>outros processos<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Portanto, o dimensionamento precisa considerar o consumo real.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-como-calcular-pm-max-children\" class=\"wp-block-heading\">Como calcular <code>pm.max_children<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Uma abordagem pr\u00e1tica \u00e9 medir o consumo m\u00e9dio de mem\u00f3ria dos processos PHP-FPM.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Primeiro:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ps --no-headers -o rss,cmd -C php-fpm<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Em sistemas com PHP-FPM versionado:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ps --no-headers -o rss,cmd -C php-fpm8.3<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tamb\u00e9m podemos utilizar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ps aux | grep php-fpm<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Para analisar a mem\u00f3ria:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ps -ylC php-fpm --sort:rss<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O RSS normalmente \u00e9 apresentado em KB.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por exemplo, suponha que os workers estejam consumindo aproximadamente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>120 MB\n130 MB\n125 MB\n140 MB\n135 MB<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos utilizar uma m\u00e9dia aproximada de:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>130 MB por worker<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Se reservamos 4 GB para PHP-FPM:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>4096 MB \/ 130 MB\n\u2248 31 workers<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Por\u00e9m, n\u00e3o devemos consumir toda a mem\u00f3ria dispon\u00edvel.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se o servidor possui 8 GB RAM, talvez seja necess\u00e1rio reservar mem\u00f3ria para:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>sistema<\/li>\n\n\n\n<li>MariaDB<\/li>\n\n\n\n<li>Nginx<\/li>\n\n\n\n<li>Redis<\/li>\n\n\n\n<li>cache<\/li>\n\n\n\n<li>filesystem<\/li>\n\n\n\n<li>outros servi\u00e7os<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Portanto, o valor final pode ser consideravelmente menor.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-exemplo-para-vps-com-4-gb-ram\" class=\"wp-block-heading\">Exemplo para VPS com 4 GB RAM<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Imagine:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>RAM: 4 GB\nCPU: 2 vCPU\nNginx\nPHP-FPM\nMariaDB\nWordPress\nRedis<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Uma configura\u00e7\u00e3o inicial poderia ser:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pm = dynamic\npm.max_children = 12\npm.start_servers = 3\npm.min_spare_servers = 2\npm.max_spare_servers = 5\npm.max_requests = 500<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Isso n\u00e3o significa que esses valores sejam universais.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Depois da aplica\u00e7\u00e3o da configura\u00e7\u00e3o, devemos observar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>free -h<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>top<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>htop<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">e:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>vmstat 1<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Se houver muita mem\u00f3ria dispon\u00edvel e fila de requisi\u00e7\u00f5es, podemos aumentar gradualmente.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-exemplo-para-vps-com-8-gb-ram\" class=\"wp-block-heading\">Exemplo para VPS com 8 GB RAM<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Considere:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>8 GB RAM\n4 vCPU\nNginx\nPHP-FPM\nMariaDB\nWordPress\nRedis<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Uma configura\u00e7\u00e3o inicial poss\u00edvel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pm = dynamic\npm.max_children = 20\npm.start_servers = 4\npm.min_spare_servers = 4\npm.max_spare_servers = 8\npm.max_requests = 500<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Depois \u00e9 necess\u00e1rio medir.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se os workers estiverem consumindo muita RAM:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>free -h<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Se houver swap crescente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>swapon --show<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">e:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>vmstat 1<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">podem ajudar a identificar press\u00e3o de mem\u00f3ria.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-exemplo-para-servidor-dedicado\" class=\"wp-block-heading\">Exemplo para servidor dedicado<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Considere agora:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>64 GB RAM\n16 cores\nNginx\nPHP-FPM\nMariaDB\nRedis\nWordPress\/WooCommerce<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c9 poss\u00edvel trabalhar com valores muito maiores, mas isso n\u00e3o significa que devemos simplesmente <a href=\"https:\/\/helpsysadmin.com.br\/blog\/configurar-login-automatico-phpmyadmin\/\" data-internallinksmanager029f6b8e52c=\"3\" title=\"Como Configurar Login Autom\u00e1tico no phpMyAdmin via DirectAdmin\">configurar<\/a> centenas de workers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Um ponto inicial poderia ser:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pm = dynamic\npm.max_children = 80\npm.start_servers = 10\npm.min_spare_servers = 10\npm.max_spare_servers = 30\npm.max_requests = 1000<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Depois devemos avaliar:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>RAM dispon\u00edvel<\/li>\n\n\n\n<li>CPU<\/li>\n\n\n\n<li>tempo m\u00e9dio de execu\u00e7\u00e3o<\/li>\n\n\n\n<li>n\u00famero de requisi\u00e7\u00f5es<\/li>\n\n\n\n<li>fila do PHP-FPM<\/li>\n\n\n\n<li>banco de dados<\/li>\n\n\n\n<li>cache<\/li>\n\n\n\n<li>I\/O<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-pm-max-requests\" class=\"wp-block-heading\"><code>pm.max_requests<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Outro par\u00e2metro importante \u00e9:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pm.max_requests<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ele define quantas requisi\u00e7\u00f5es um processo poder\u00e1 atender antes de ser encerrado e criado novamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Exemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pm.max_requests = 500<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Isso pode ser \u00fatil quando uma aplica\u00e7\u00e3o ou extens\u00e3o apresenta crescimento gradual de mem\u00f3ria.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por exemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Worker inicia \u2192 100 MB\nAp\u00f3s centenas de requisi\u00e7\u00f5es \u2192 140 MB\nAp\u00f3s milhares \u2192 200 MB<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Recriar periodicamente o processo pode ajudar a controlar esse crescimento.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Valores comuns podem variar bastante:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pm.max_requests = 300<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>pm.max_requests = 500<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>pm.max_requests = 1000<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">N\u00e3o existe um valor universal.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-request-terminate-timeout\" class=\"wp-block-heading\"><code>request_terminate_timeout<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Aplica\u00e7\u00f5es PHP podem apresentar requisi\u00e7\u00f5es extremamente demoradas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por exemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>PHP inicia\n\u2193\nconsulta banco\n\u2193\nAPI externa demora\n\u2193\nplugin executa opera\u00e7\u00e3o pesada\n\u2193\nrequisi\u00e7\u00e3o fica presa<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos configurar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>request_terminate_timeout = 120s<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Assim, uma requisi\u00e7\u00e3o que ultrapassar o limite poder\u00e1 ser encerrada.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Em aplica\u00e7\u00f5es espec\u00edficas, pode ser necess\u00e1rio utilizar valores maiores.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por isso, n\u00e3o devemos colocar um timeout muito agressivo sem compreender o comportamento da aplica\u00e7\u00e3o.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-php-fpm-e-cpu\" class=\"wp-block-heading\">PHP-FPM e CPU<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Um erro comum \u00e9 dimensionar PHP-FPM exclusivamente com base na RAM.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">CPU tamb\u00e9m \u00e9 extremamente importante.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Imagine:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>4 cores\n100 workers PHP<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Isso n\u00e3o significa que 100 requisi\u00e7\u00f5es ser\u00e3o processadas simultaneamente de forma eficiente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se todas exigirem muito processamento:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>100 processos\n\u2193\n4 cores\n\u2193\ncompeti\u00e7\u00e3o por CPU\n\u2193\nload average elevado\n\u2193\nlat\u00eancia<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Mais workers podem aumentar a concorr\u00eancia, mas tamb\u00e9m podem aumentar a disputa por recursos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por isso, <strong>mais workers n\u00e3o significa automaticamente mais performance<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-como-verificar-o-load-average\" class=\"wp-block-heading\">Como verificar o Load Average<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Utilize:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>uptime<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">ou:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cat \/proc\/loadavg<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tamb\u00e9m:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>top<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Em um servidor com 4 CPUs, um load de 2 pode representar uma situa\u00e7\u00e3o muito diferente de um load de 20.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O load average precisa ser interpretado junto com:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>n\u00famero de CPUs<\/li>\n\n\n\n<li><code>%CPU<\/code><\/li>\n\n\n\n<li><code>%iowait<\/code><\/li>\n\n\n\n<li>processos bloqueados<\/li>\n\n\n\n<li>lat\u00eancia de disco<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-use-vmstat-durante-o-tuning\" class=\"wp-block-heading\">Use <code>vmstat<\/code> durante o tuning<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>vmstat 1<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u00e9 extremamente \u00fatil.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Observe principalmente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>r\nsi\nso\nwa<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Onde:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>r<\/code> representa processos aguardando CPU<\/li>\n\n\n\n<li><code>si<\/code> indica swap in<\/li>\n\n\n\n<li><code>so<\/code> indica swap out<\/li>\n\n\n\n<li><code>wa<\/code> indica espera por I\/O<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Se o servidor estiver constantemente com <code>wa<\/code> elevado, o problema pode estar relacionado a armazenamento.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se <code>si<\/code> e <code>so<\/code> estiverem ativos continuamente, pode existir press\u00e3o de mem\u00f3ria.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-php-fpm-e-opcache\" class=\"wp-block-heading\">PHP-FPM e OPcache<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O <strong>OPcache<\/strong> \u00e9 praticamente obrigat\u00f3rio em ambientes PHP modernos de produ\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ele mant\u00e9m bytecode PHP compilado em mem\u00f3ria, reduzindo a necessidade de recompilar scripts a cada requisi\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Exemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>opcache.enable=1\nopcache.memory_consumption=256\nopcache.interned_strings_buffer=32\nopcache.max_accelerated_files=30000\nopcache.validate_timestamps=1\nopcache.revalidate_freq=2<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Os valores dependem da aplica\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Em servidores WordPress com muitos plugins e temas, pode ser necess\u00e1rio aumentar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>opcache.max_accelerated_files<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O tamanho do OPcache tamb\u00e9m precisa ser compat\u00edvel com a mem\u00f3ria dispon\u00edvel.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-php-fpm-com-nginx\" class=\"wp-block-heading\">PHP-FPM com Nginx<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Uma arquitetura muito comum \u00e9:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Internet\n   \u2193\nNginx\n   \u2193\nPHP-FPM\n   \u2193\nWordPress<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Um exemplo de configura\u00e7\u00e3o do Nginx:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>location ~ \\.php$ {\n    include fastcgi_params;\n    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n    fastcgi_pass unix:\/run\/php\/php8.3-fpm.sock;\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O socket pode variar conforme a distribui\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Verifique:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ls -lah \/run\/php\/<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-php-fpm-com-apache\" class=\"wp-block-heading\">PHP-FPM com Apache<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O PHP-FPM tamb\u00e9m pode ser utilizado com Apache.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Uma arquitetura poss\u00edvel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Internet\n   \u2193\nApache\n   \u2193\nPHP-FPM\n   \u2193\nPHP<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Nesse cen\u00e1rio, \u00e9 importante evitar configura\u00e7\u00f5es concorrentes desnecess\u00e1rias.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por exemplo, executar PHP atrav\u00e9s de m\u00faltiplos mecanismos simultaneamente pode complicar o dimensionamento.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-como-identificar-saturacao-do-php-fpm\" class=\"wp-block-heading\">Como identificar satura\u00e7\u00e3o do PHP-FPM<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Um dos sinais mais importantes \u00e9 o aparecimento de:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>502 Bad Gateway<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Especialmente quando o Nginx est\u00e1 funcionando, mas o PHP-FPM n\u00e3o consegue responder adequadamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Verifique:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl status php8.3-fpm<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Depois:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>journalctl -u php8.3-fpm --since \"1 hour ago\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tamb\u00e9m procure mensagens relacionadas a:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>server reached pm.max_children<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Essa mensagem \u00e9 especialmente importante.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quando aparece:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>WARNING: &#91;pool www] server reached pm.max_children setting<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">significa que o pool atingiu o limite configurado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Isso pode indicar que:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>existem requisi\u00e7\u00f5es demais;<\/li>\n\n\n\n<li>os workers est\u00e3o demorando muito;<\/li>\n\n\n\n<li>o <code>pm.max_children<\/code> est\u00e1 baixo;<\/li>\n\n\n\n<li>a aplica\u00e7\u00e3o est\u00e1 lenta;<\/li>\n\n\n\n<li>o banco de dados est\u00e1 lento;<\/li>\n\n\n\n<li>existe algum processo PHP travando.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">N\u00e3o significa automaticamente que devemos aumentar o limite.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-antes-de-aumentar-pm-max-children\" class=\"wp-block-heading\">Antes de aumentar <code>pm.max_children<\/code><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Imagine:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pm.max_children = 20<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">e o log mostra:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>server reached pm.max_children<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">A rea\u00e7\u00e3o mais comum \u00e9:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pm.max_children = 50<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Por\u00e9m, primeiro precisamos descobrir <strong>por que os 20 workers est\u00e3o ocupados<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se cada requisi\u00e7\u00e3o demora 10 segundos porque o MariaDB est\u00e1 lento, aumentar para 50 pode simplesmente criar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>50 PHP\n\u2193\n50 consultas ao banco\n\u2193\nMariaDB sobrecarregado\n\u2193\nmais lat\u00eancia\n\u2193\nmais PHP esperando<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O problema pode ficar pior.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-ative-o-slowlog\" class=\"wp-block-heading\">Ative o slowlog<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O PHP-FPM possui mecanismos para identificar requisi\u00e7\u00f5es lentas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Exemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>request_slowlog_timeout = 5s\nslowlog = \/var\/log\/php-fpm\/www-slow.log<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Assim, requisi\u00e7\u00f5es que ultrapassarem o limite podem gerar informa\u00e7\u00f5es \u00fateis.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Depois:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tail -f \/var\/log\/php-fpm\/www-slow.log<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O caminho pode variar conforme a distribui\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Essa informa\u00e7\u00e3o pode revelar:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>plugin lento<\/li>\n\n\n\n<li>script PHP pesado<\/li>\n\n\n\n<li>consulta problem\u00e1tica<\/li>\n\n\n\n<li>API externa<\/li>\n\n\n\n<li>opera\u00e7\u00e3o de arquivo<\/li>\n\n\n\n<li>c\u00f3digo bloqueado<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-status-do-php-fpm\" class=\"wp-block-heading\">Status do PHP-FPM<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Tamb\u00e9m \u00e9 poss\u00edvel habilitar o status do PHP-FPM.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Exemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pm.status_path = \/fpm-status<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Depois podemos obter informa\u00e7\u00f5es sobre o pool.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Entre os dados \u00fateis est\u00e3o:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>active processes<\/li>\n\n\n\n<li>idle processes<\/li>\n\n\n\n<li>total processes<\/li>\n\n\n\n<li>max active processes<\/li>\n\n\n\n<li>max children reached<\/li>\n\n\n\n<li>requests<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Essas m\u00e9tricas ajudam muito no dimensionamento.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Em produ\u00e7\u00e3o, o endpoint deve ser protegido para n\u00e3o ficar publicamente acess\u00edvel.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-php-fpm-e-wordpress\" class=\"wp-block-heading\">PHP-FPM e WordPress<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">WordPress \u00e9 um caso particularmente interessante.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Um \u00fanico acesso pode envolver:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>WordPress core<\/li>\n\n\n\n<li>tema<\/li>\n\n\n\n<li>plugins<\/li>\n\n\n\n<li>banco de dados<\/li>\n\n\n\n<li>Redis<\/li>\n\n\n\n<li>APIs externas<\/li>\n\n\n\n<li>filesystem<\/li>\n\n\n\n<li>WooCommerce<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Por isso, uma requisi\u00e7\u00e3o PHP pode ser extremamente r\u00e1pida ou bastante pesada.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Uma instala\u00e7\u00e3o simples pode consumir poucos recursos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Uma instala\u00e7\u00e3o WooCommerce com muitos plugins pode consumir muito mais.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-redis-pode-reduzir-pressao-sobre-php\" class=\"wp-block-heading\">Redis pode reduzir press\u00e3o sobre PHP<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O Redis pode ajudar a reduzir consultas repetitivas ao banco atrav\u00e9s de object cache.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Arquitetura:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Usu\u00e1rio\n   \u2193\nNginx\n   \u2193\nPHP-FPM\n   \u2193\nRedis\n   \u2193\nMariaDB<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O objetivo n\u00e3o \u00e9 substituir o banco de dados, mas reduzir opera\u00e7\u00f5es repetitivas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Isso pode diminuir o tempo de execu\u00e7\u00e3o de determinadas requisi\u00e7\u00f5es PHP.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-nao-confunda-php-fpm-com-cache-de-pagina\" class=\"wp-block-heading\">N\u00e3o confunda PHP-FPM com cache de p\u00e1gina<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O PHP-FPM executa PHP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Page cache evita que determinadas requisi\u00e7\u00f5es precisem chegar ao PHP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por exemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Usu\u00e1rio\n\u2193\nNginx\n\u2193\nCache\n\u2193\nHTML<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Se uma p\u00e1gina puder ser servida diretamente pelo cache, o PHP-FPM nem precisa process\u00e1-la.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Isso \u00e9 extremamente importante para WordPress de alto tr\u00e1fego.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-configuracao-exemplo-para-vps\" class=\"wp-block-heading\">Configura\u00e7\u00e3o exemplo para VPS<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para um VPS com aproximadamente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>4 vCPU\n8 GB RAM\nNginx\nPHP 8.3\nMariaDB\nWordPress\nRedis<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">uma configura\u00e7\u00e3o inicial poderia ser:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;www]\n\nuser = www-data\ngroup = www-data\n\nlisten = \/run\/php\/php8.3-fpm.sock\n\npm = dynamic\n\npm.max_children = 20\npm.start_servers = 4\npm.min_spare_servers = 4\npm.max_spare_servers = 8\n\npm.max_requests = 500\n\nrequest_terminate_timeout = 120s\nrequest_slowlog_timeout = 5s\n\nslowlog = \/var\/log\/php-fpm\/www-slow.log<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Depois do ajuste:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl restart php8.3-fpm<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">E acompanhe:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl status php8.3-fpm<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-configuracao-exemplo-para-servidor-dedicado\" class=\"wp-block-heading\">Configura\u00e7\u00e3o exemplo para servidor dedicado<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Considere:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>16 cores\n64 GB RAM\nNginx\nPHP-FPM\nMariaDB\nRedis\nWordPress\/WooCommerce<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Um ponto inicial poderia ser:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pm = dynamic\n\npm.max_children = 80\npm.start_servers = 10\npm.min_spare_servers = 10\npm.max_spare_servers = 30\n\npm.max_requests = 1000\n\nrequest_terminate_timeout = 120s\nrequest_slowlog_timeout = 5s<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Novamente, esses valores devem ser validados atrav\u00e9s de m\u00e9tricas.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-como-fazer-tuning-de-forma-segura\" class=\"wp-block-heading\">Como fazer tuning de forma segura<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Uma metodologia melhor \u00e9:<\/p>\n\n\n\n<h4 id=\"h-1-medir\" class=\"wp-block-heading\">1. Medir<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Colete:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>free -h<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>uptime<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>vmstat 1<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>top<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>iostat -xz 1<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">e dados do PHP-FPM.<\/p>\n\n\n\n<h4 id=\"h-2-alterar-pouco\" class=\"wp-block-heading\">2. Alterar pouco<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Evite mudar dez par\u00e2metros simultaneamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por exemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pm.max_children = 20<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">para:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pm.max_children = 25<\/code><\/pre>\n\n\n\n<h4 id=\"h-3-observar\" class=\"wp-block-heading\">3. Observar<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Monitore durante per\u00edodos de tr\u00e1fego real.<\/p>\n\n\n\n<h4 id=\"h-4-comparar\" class=\"wp-block-heading\">4. Comparar<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Observe:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>lat\u00eancia<\/li>\n\n\n\n<li>erros 502<\/li>\n\n\n\n<li>CPU<\/li>\n\n\n\n<li>RAM<\/li>\n\n\n\n<li>swap<\/li>\n\n\n\n<li>load<\/li>\n\n\n\n<li>requisi\u00e7\u00f5es<\/li>\n\n\n\n<li>tempo de resposta<\/li>\n<\/ul>\n\n\n\n<h4 id=\"h-5-repetir\" class=\"wp-block-heading\">5. Repetir<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Fa\u00e7a novos ajustes somente depois de entender os resultados.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-php-fpm-tuning-para-vps-com-pouca-memoria\" class=\"wp-block-heading\">PHP-FPM tuning para VPS com pouca mem\u00f3ria<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Em VPS pequenos, o maior risco geralmente \u00e9 criar workers demais.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Imagine:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>2 GB RAM<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">e:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pm.max_children = 50<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Se cada processo utilizar 100 MB:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>50 \u00d7 100 MB\n=\n5 GB<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O resultado pode ser:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>RAM insuficiente\n\u2193\nswap\n\u2193\nlat\u00eancia\n\u2193\nOOM Killer\n\u2193\nprocessos encerrados<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Nesse ambiente, \u00e9 melhor limitar a concorr\u00eancia e otimizar a aplica\u00e7\u00e3o.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-php-fpm-tuning-para-servidor-dedicado\" class=\"wp-block-heading\">PHP-FPM tuning para servidor dedicado<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Em servidores dedicados, existe maior capacidade para trabalhar com mais concorr\u00eancia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por\u00e9m, isso n\u00e3o elimina a necessidade de dimensionamento.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se o servidor possui:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>32 cores\n128 GB RAM<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">n\u00e3o significa que:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pm.max_children = 500<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">ser\u00e1 automaticamente melhor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c9 necess\u00e1rio observar o consumo m\u00e9dio de cada processo e a capacidade dos demais componentes.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-o-impacto-do-banco-de-dados\" class=\"wp-block-heading\">O impacto do banco de dados<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Muitos problemas atribu\u00eddos ao PHP-FPM s\u00e3o causados pelo banco.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Exemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>PHP-FPM\n   \u2193\nMariaDB\n   \u2193\nconsulta demora 8 segundos\n   \u2193\nworker fica ocupado<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Se temos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>30 workers<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">e cada um permanece ocupado esperando o banco, podemos atingir:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pm.max_children<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">rapidamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por isso, antes de aumentar PHP-FPM, investigue:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mysqladmin processlist<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">e ferramentas de an\u00e1lise do MariaDB.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-php-fpm-e-i-o\" class=\"wp-block-heading\">PHP-FPM e I\/O<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Outra possibilidade \u00e9 armazenamento lento.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Uma requisi\u00e7\u00e3o pode estar esperando:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>leitura de arquivo<\/li>\n\n\n\n<li>escrita de sess\u00e3o<\/li>\n\n\n\n<li>logs<\/li>\n\n\n\n<li>banco de dados<\/li>\n\n\n\n<li>filesystem<\/li>\n\n\n\n<li>armazenamento remoto<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Nesse caso, aumentar workers pode aumentar a quantidade de opera\u00e7\u00f5es simult\u00e2neas de I\/O.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Analise:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>iostat -xz 1<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Observe especialmente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>await\nutil\n%util<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Em servidores com NVMe, a lat\u00eancia normalmente \u00e9 muito menor do que em HDD, mas aplica\u00e7\u00f5es mal configuradas ainda podem gerar gargalos.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-como-saber-se-o-tuning-funcionou\" class=\"wp-block-heading\">Como saber se o tuning funcionou?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">N\u00e3o use somente a sensa\u00e7\u00e3o de velocidade.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Compare m\u00e9tricas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Antes:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CPU: 80%\nRAM: 90%\n502: 50\/h\nPHP max children reached: frequente<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Depois:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CPU: 65%\nRAM: 75%\n502: 2\/h\nPHP max children reached: ocasional<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Isso fornece uma avalia\u00e7\u00e3o muito mais confi\u00e1vel.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-checklist-de-php-fpm-tuning\" class=\"wp-block-heading\">Checklist de PHP-FPM tuning<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Antes de considerar o ajuste conclu\u00eddo, verifique:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>pm<\/code> adequado ao ambiente<\/li>\n\n\n\n<li><code>pm.max_children<\/code> dimensionado<\/li>\n\n\n\n<li><code>pm.start_servers<\/code> configurado<\/li>\n\n\n\n<li><code>pm.min_spare_servers<\/code> configurado<\/li>\n\n\n\n<li><code>pm.max_spare_servers<\/code> configurado<\/li>\n\n\n\n<li><code>pm.max_requests<\/code> avaliado<\/li>\n\n\n\n<li>timeout configurado<\/li>\n\n\n\n<li>slowlog habilitado quando necess\u00e1rio<\/li>\n\n\n\n<li>OPcache configurado<\/li>\n\n\n\n<li>CPU monitorada<\/li>\n\n\n\n<li>RAM monitorada<\/li>\n\n\n\n<li>swap monitorada<\/li>\n\n\n\n<li>I\/O monitorado<\/li>\n\n\n\n<li>MariaDB analisado<\/li>\n\n\n\n<li>Nginx\/Apache analisado<\/li>\n\n\n\n<li>erros 502 monitorados<\/li>\n\n\n\n<li>logs do PHP-FPM analisados<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 id=\"h-conclusao\" class=\"wp-block-heading\">Conclus\u00e3o<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O <strong>PHP-FPM tuning<\/strong> deve ser tratado como um processo de dimensionamento e monitoramento, n\u00e3o como uma simples aplica\u00e7\u00e3o de valores encontrados na internet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Os principais par\u00e2metros, como:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pm.max_children\npm.start_servers\npm.min_spare_servers\npm.max_spare_servers\npm.max_requests<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">precisam ser ajustados considerando:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>quantidade de RAM;<\/li>\n\n\n\n<li>n\u00famero de CPUs;<\/li>\n\n\n\n<li>consumo real dos workers;<\/li>\n\n\n\n<li>quantidade de sites;<\/li>\n\n\n\n<li>tr\u00e1fego;<\/li>\n\n\n\n<li>complexidade das aplica\u00e7\u00f5es;<\/li>\n\n\n\n<li>banco de dados;<\/li>\n\n\n\n<li>cache;<\/li>\n\n\n\n<li>armazenamento;<\/li>\n\n\n\n<li>comportamento das requisi\u00e7\u00f5es.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Em VPS pequenos, o cuidado principal \u00e9 evitar excesso de workers e press\u00e3o de mem\u00f3ria.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Em servidores dedicados, existe mais espa\u00e7o para aumentar a concorr\u00eancia, mas ainda \u00e9 necess\u00e1rio observar CPU, banco de dados, I\/O e tempo de execu\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O melhor resultado normalmente vem da combina\u00e7\u00e3o de <strong>PHP-FPM + OPcache + cache de aplica\u00e7\u00e3o + Redis quando apropriado + banco de dados otimizado + monitoramento cont\u00ednuo<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mais workers n\u00e3o significam necessariamente mais velocidade. O objetivo do tuning \u00e9 encontrar o ponto em que o servidor consegue atender a demanda sem desperdi\u00e7ar recursos ou criar novos gargalos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 id=\"h-faq-php-fpm-tuning\" class=\"wp-block-heading\">FAQ \u2014 PHP-FPM Tuning<\/h3>\n\n\n\n<div class=\"schema-faq wp-block-yoast-faq-block\"><div class=\"schema-faq-section\" id=\"faq-question-1790372256113\"><strong class=\"schema-faq-question\">O que \u00e9 PHP-FPM tuning?<\/strong> <p class=\"schema-faq-answer\">\u00c9 o processo de ajustar os par\u00e2metros do PHP-FPM para adequar a execu\u00e7\u00e3o dos processos PHP aos recursos dispon\u00edveis no servidor e \u00e0 demanda da aplica\u00e7\u00e3o.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1790372277772\"><strong class=\"schema-faq-question\">Qual o principal par\u00e2metro do PHP-FPM?<\/strong> <p class=\"schema-faq-answer\">O <code>pm.max_children<\/code> \u00e9 um dos par\u00e2metros mais importantes porque limita a quantidade de processos PHP-FPM simult\u00e2neos.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1790372300128\"><strong class=\"schema-faq-question\">Quanto colocar no <code>pm.max_children<\/code>?<\/strong> <p class=\"schema-faq-answer\">N\u00e3o existe um valor universal. O ideal \u00e9 medir o consumo m\u00e9dio de mem\u00f3ria dos workers e considerar a RAM reservada para o sistema, banco de dados e demais servi\u00e7os.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1790372330790\"><strong class=\"schema-faq-question\">Aumentar <code>pm.max_children<\/code> deixa o servidor mais r\u00e1pido?<\/strong> <p class=\"schema-faq-answer\">N\u00e3o necessariamente. Se o gargalo estiver no banco de dados, CPU, disco ou aplica\u00e7\u00e3o PHP, aumentar o n\u00famero de workers pode inclusive aumentar a press\u00e3o sobre esses recursos.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1790372354176\"><strong class=\"schema-faq-question\">Qual \u00e9 melhor: dynamic ou ondemand?<\/strong> <p class=\"schema-faq-answer\">Depende do ambiente. <code>dynamic<\/code> mant\u00e9m processos dispon\u00edveis e pode funcionar bem para tr\u00e1fego cont\u00ednuo. <code>ondemand<\/code> pode ser interessante quando existem muitos sites ou tr\u00e1fego irregular.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1790372381840\"><strong class=\"schema-faq-question\">O PHP-FPM pode causar erro 502?<\/strong> <p class=\"schema-faq-answer\">Sim. Satura\u00e7\u00e3o, processos indispon\u00edveis, problemas no socket, timeouts ou falhas do servi\u00e7o PHP-FPM podem contribuir para erros 502.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1790372408035\"><strong class=\"schema-faq-question\">O que significa <code>server reached pm.max_children<\/code>?<\/strong> <p class=\"schema-faq-answer\">Significa que o pool atingiu o n\u00famero m\u00e1ximo de processos configurado em <code>pm.max_children<\/code>. \u00c9 um sinal que deve ser investigado antes de simplesmente aumentar o limite.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1790372436396\"><strong class=\"schema-faq-question\"><code>pm.max_requests<\/code> \u00e9 importante?<\/strong> <p class=\"schema-faq-answer\">Sim. Ele pode ajudar a controlar processos que apresentam crescimento de mem\u00f3ria ao longo do tempo, fazendo com que sejam recriados ap\u00f3s atender determinado n\u00famero de requisi\u00e7\u00f5es.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1790372458451\"><strong class=\"schema-faq-question\">PHP-FPM precisa de OPcache?<\/strong> <p class=\"schema-faq-answer\">Para ambientes PHP de produ\u00e7\u00e3o, o OPcache normalmente \u00e9 altamente recomendado porque reduz o trabalho necess\u00e1rio para compilar scripts PHP repetidamente.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1790372484088\"><strong class=\"schema-faq-question\">Como monitorar PHP-FPM?<\/strong> <p class=\"schema-faq-answer\">Voc\u00ea pode utilizar logs, PHP-FPM status, slowlog, <code>top<\/code>, <code>htop<\/code>, <code>vmstat<\/code>, <code>iostat<\/code>, Zabbix, Prometheus e outras ferramentas de monitoramento.<\/p> <\/div> <\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Veja Tamb\u00e9m:<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><a href=\"https:\/\/helpsysadmin.com.br\/blog\/otimizar-vps-servidor-dedicado-cloud\/\" target=\"_blank\" rel=\"noopener\">Como Otimizar VPS, Servidor Dedicado ou Cloud: Guia Completo<\/a><\/strong><br><strong><a href=\"https:\/\/helpsysadmin.com.br\/blog\/cpu-100-vm-vs-bare-metal\/\" target=\"_blank\" rel=\"noopener\">CPU 100%: Diferen\u00e7as Entre VM e Bare Metal no Servidor<\/a><\/strong><br><strong><a href=\"https:\/\/helpsysadmin.com.br\/blog\/iowait-alto-nvme-cloud\/\">iowait Alto NVMe Cloud: Como Diagnosticar Gargalo de Disco<\/a><\/strong><br><strong><a href=\"https:\/\/helpsysadmin.com.br\/blog\/load-average-em-ambiente-virtualizado-como-interpretar-vps-e-cloud\/\">Load Average em Ambiente Virtualizado: Como Interpretar VPS e Cloud<\/a><\/strong><br><strong><a href=\"https:\/\/helpsysadmin.com.br\/blog\/steal-time-alto-vps\/\" target=\"_blank\" rel=\"noopener\">Steal Time Alto na VPS: O Que \u00c9 e Como Resolver o Gargalo<\/a><\/strong><br><strong><a href=\"https:\/\/helpsysadmin.com.br\/blog\/como-medir-performance-servidores-linux\/\" target=\"_blank\" rel=\"noopener\"><\/a><a href=\"https:\/\/helpsysadmin.com.br\/blog\/como-medir-performance-servidores-linux\/\" target=\"_blank\" rel=\"noopener\">Como Medir Performance de Servidor Linux na Pr\u00e1tica (Al\u00e9m da CPU)<\/a><\/strong><br><strong><a href=\"https:\/\/helpsysadmin.com.br\/blog\/vps-lenta-diagnostico-otimizacao\/\">VPS Lenta? Guia de Diagn\u00f3stico, Otimiza\u00e7\u00e3o e Escalonamento<\/a><\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>O PHP-FPM tuning \u00e9 uma das etapas mais importantes para melhorar o desempenho de servidores Linux que executam WordPress, WooCommerce, aplica\u00e7\u00f5es PHP, [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":7359,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":1,"footnotes":""},"categories":[4189],"tags":[4714,4131,2382,3048,4715,3849,209],"class_list":["post-7358","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-performance-e-otimizacao","tag-otimizacao-php","tag-performance-linux-12","tag-php-fpm","tag-php-fpm-performance","tag-php-fpm-tuning","tag-servidor-dedicado-5","tag-vps"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.5 (Yoast SEO v28.6) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>PHP-FPM Tuning para VPS e Servidor Dedicado<\/title>\n<meta name=\"description\" content=\"Aprenda PHP-FPM tuning para VPS e servidor dedicado, ajustando workers, mem\u00f3ria, processos, PM e desempenho para evitar lentid\u00e3o e 502.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PHP-FPM Tuning para VPS e Servidor Dedicado\" \/>\n<meta property=\"og:description\" content=\"Aprenda PHP-FPM tuning para VPS e servidor dedicado, ajustando workers, mem\u00f3ria, processos, PM e desempenho para evitar lentid\u00e3o e 502.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog HelpSysAdmin\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-25T21:48:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-25T21:48:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/helpsysadmin.com.br\/blog\/wp-content\/uploads\/2026\/09\/php-fpm_tuning.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1536\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"HelpSysAdmin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@brhelpsysad\" \/>\n<meta name=\"twitter:site\" content=\"@brhelpsysad\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/\"},\"author\":{\"name\":\"HelpSysAdmin\",\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/bdbe3d7d71a0c6a3cb474c18da574efb\"},\"headline\":\"PHP-FPM Tuning para VPS e Servidor Dedicado\",\"datePublished\":\"2026-09-25T21:48:53+00:00\",\"dateModified\":\"2026-09-25T21:48:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/\"},\"wordCount\":2759,\"publisher\":{\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/php-fpm_tuning.webp\",\"keywords\":[\"otimiza\u00e7\u00e3o PHP\",\"performance linux\",\"PHP-FPM\",\"php-fpm performance\",\"PHP-FPM tuning\",\"servidor dedicado\",\"vps\"],\"articleSection\":[\"Performance e Otimiza\u00e7\u00e3o (Tuning)\"],\"inLanguage\":\"pt-BR\"},{\"@type\":[\"WebPage\",\"FAQPage\"],\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/\",\"url\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/\",\"name\":\"PHP-FPM Tuning para VPS e Servidor Dedicado\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/php-fpm_tuning.webp\",\"datePublished\":\"2026-09-25T21:48:53+00:00\",\"dateModified\":\"2026-09-25T21:48:57+00:00\",\"description\":\"Aprenda PHP-FPM tuning para VPS e servidor dedicado, ajustando workers, mem\u00f3ria, processos, PM e desempenho para evitar lentid\u00e3o e 502.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#breadcrumb\"},\"mainEntity\":[{\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#faq-question-1790372256113\"},{\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#faq-question-1790372277772\"},{\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#faq-question-1790372300128\"},{\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#faq-question-1790372330790\"},{\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#faq-question-1790372354176\"},{\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#faq-question-1790372381840\"},{\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#faq-question-1790372408035\"},{\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#faq-question-1790372436396\"},{\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#faq-question-1790372458451\"},{\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#faq-question-1790372484088\"}],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#primaryimage\",\"url\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/php-fpm_tuning.webp\",\"contentUrl\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/php-fpm_tuning.webp\",\"width\":1536,\"height\":1024,\"caption\":\"php-fpm tuning\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PHP-FPM Tuning para VPS e Servidor Dedicado\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/\",\"name\":\"Blog HelpSysAdmin\",\"description\":\"Webserver linux blog\",\"publisher\":{\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/#organization\"},\"alternateName\":\"HelpSysAdmin Blog\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/#organization\",\"name\":\"HelpSysAdmin Gerenciamento de Servidores\",\"alternateName\":\"HelpSysAdmin\",\"url\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/mlkpd8g42nae.i.optimole.com\\\/w:512\\\/h:512\\\/q:mauto\\\/f:best\\\/https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/favicon.png\",\"contentUrl\":\"https:\\\/\\\/mlkpd8g42nae.i.optimole.com\\\/w:512\\\/h:512\\\/q:mauto\\\/f:best\\\/https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/favicon.png\",\"width\":512,\"height\":512,\"caption\":\"HelpSysAdmin Gerenciamento de Servidores\"},\"image\":{\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/brhelpsysad\",\"https:\\\/\\\/mastodon.social\\\/@helpsysadmin\"],\"description\":\"Oferecemos o gerenciamento de servidores dedicados, vps ou cloud. Apresentamos a melhor experi\u00eancia em atendimento e servi\u00e7o. Nosso time cuidar\u00e1 do seu servidor com backups, an\u00e1lises constantes, ajustes de seguran\u00e7a, realiza\u00e7\u00e3o de manuten\u00e7\u00e3o preventiva e corretiva, otimiza\u00e7\u00e3o de performance al\u00e9m de monitoramento 24\u00d77 com suporte Pr\u00f3 Ativo.\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"1\",\"maxValue\":\"10\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/bdbe3d7d71a0c6a3cb474c18da574efb\",\"name\":\"HelpSysAdmin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/efc0007e6a313a844b72de257e05c6083b07b6ecc6983a4f71e06293ff2e22fd?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/efc0007e6a313a844b72de257e05c6083b07b6ecc6983a4f71e06293ff2e22fd?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/efc0007e6a313a844b72de257e05c6083b07b6ecc6983a4f71e06293ff2e22fd?s=96&d=mm&r=g\",\"caption\":\"HelpSysAdmin\"},\"sameAs\":[\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/\"]},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#faq-question-1790372256113\",\"position\":1,\"url\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#faq-question-1790372256113\",\"name\":\"O que \u00e9 PHP-FPM tuning?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"\u00c9 o processo de ajustar os par\u00e2metros do PHP-FPM para adequar a execu\u00e7\u00e3o dos processos PHP aos recursos dispon\u00edveis no servidor e \u00e0 demanda da aplica\u00e7\u00e3o.\",\"inLanguage\":\"pt-BR\"},\"inLanguage\":\"pt-BR\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#faq-question-1790372277772\",\"position\":2,\"url\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#faq-question-1790372277772\",\"name\":\"Qual o principal par\u00e2metro do PHP-FPM?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"O pm.max_children \u00e9 um dos par\u00e2metros mais importantes porque limita a quantidade de processos PHP-FPM simult\u00e2neos.\",\"inLanguage\":\"pt-BR\"},\"inLanguage\":\"pt-BR\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#faq-question-1790372300128\",\"position\":3,\"url\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#faq-question-1790372300128\",\"name\":\"Quanto colocar no pm.max_children?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"N\u00e3o existe um valor universal. O ideal \u00e9 medir o consumo m\u00e9dio de mem\u00f3ria dos workers e considerar a RAM reservada para o sistema, banco de dados e demais servi\u00e7os.\",\"inLanguage\":\"pt-BR\"},\"inLanguage\":\"pt-BR\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#faq-question-1790372330790\",\"position\":4,\"url\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#faq-question-1790372330790\",\"name\":\"Aumentar pm.max_children deixa o servidor mais r\u00e1pido?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"N\u00e3o necessariamente. Se o gargalo estiver no banco de dados, CPU, disco ou aplica\u00e7\u00e3o PHP, aumentar o n\u00famero de workers pode inclusive aumentar a press\u00e3o sobre esses recursos.\",\"inLanguage\":\"pt-BR\"},\"inLanguage\":\"pt-BR\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#faq-question-1790372354176\",\"position\":5,\"url\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#faq-question-1790372354176\",\"name\":\"Qual \u00e9 melhor: dynamic ou ondemand?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Depende do ambiente. dynamic mant\u00e9m processos dispon\u00edveis e pode funcionar bem para tr\u00e1fego cont\u00ednuo. ondemand pode ser interessante quando existem muitos sites ou tr\u00e1fego irregular.\",\"inLanguage\":\"pt-BR\"},\"inLanguage\":\"pt-BR\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#faq-question-1790372381840\",\"position\":6,\"url\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#faq-question-1790372381840\",\"name\":\"O PHP-FPM pode causar erro 502?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Sim. Satura\u00e7\u00e3o, processos indispon\u00edveis, problemas no socket, timeouts ou falhas do servi\u00e7o PHP-FPM podem contribuir para erros 502.\",\"inLanguage\":\"pt-BR\"},\"inLanguage\":\"pt-BR\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#faq-question-1790372408035\",\"position\":7,\"url\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#faq-question-1790372408035\",\"name\":\"O que significa server reached pm.max_children?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Significa que o pool atingiu o n\u00famero m\u00e1ximo de processos configurado em pm.max_children. \u00c9 um sinal que deve ser investigado antes de simplesmente aumentar o limite.\",\"inLanguage\":\"pt-BR\"},\"inLanguage\":\"pt-BR\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#faq-question-1790372436396\",\"position\":8,\"url\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#faq-question-1790372436396\",\"name\":\"pm.max_requests \u00e9 importante?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Sim. Ele pode ajudar a controlar processos que apresentam crescimento de mem\u00f3ria ao longo do tempo, fazendo com que sejam recriados ap\u00f3s atender determinado n\u00famero de requisi\u00e7\u00f5es.\",\"inLanguage\":\"pt-BR\"},\"inLanguage\":\"pt-BR\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#faq-question-1790372458451\",\"position\":9,\"url\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#faq-question-1790372458451\",\"name\":\"PHP-FPM precisa de OPcache?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Para ambientes PHP de produ\u00e7\u00e3o, o OPcache normalmente \u00e9 altamente recomendado porque reduz o trabalho necess\u00e1rio para compilar scripts PHP repetidamente.\",\"inLanguage\":\"pt-BR\"},\"inLanguage\":\"pt-BR\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#faq-question-1790372484088\",\"position\":10,\"url\":\"https:\\\/\\\/helpsysadmin.com.br\\\/blog\\\/php-fpm-tuning-vps-servidor-dedicado\\\/#faq-question-1790372484088\",\"name\":\"Como monitorar PHP-FPM?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Voc\u00ea pode utilizar logs, PHP-FPM status, slowlog, top, htop, vmstat, iostat, Zabbix, Prometheus e outras ferramentas de monitoramento.\",\"inLanguage\":\"pt-BR\"},\"inLanguage\":\"pt-BR\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"PHP-FPM Tuning para VPS e Servidor Dedicado","description":"Aprenda PHP-FPM tuning para VPS e servidor dedicado, ajustando workers, mem\u00f3ria, processos, PM e desempenho para evitar lentid\u00e3o e 502.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/","og_locale":"pt_BR","og_type":"article","og_title":"PHP-FPM Tuning para VPS e Servidor Dedicado","og_description":"Aprenda PHP-FPM tuning para VPS e servidor dedicado, ajustando workers, mem\u00f3ria, processos, PM e desempenho para evitar lentid\u00e3o e 502.","og_url":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/","og_site_name":"Blog HelpSysAdmin","article_published_time":"2026-09-25T21:48:53+00:00","article_modified_time":"2026-09-25T21:48:57+00:00","og_image":[{"width":1536,"height":1024,"url":"https:\/\/helpsysadmin.com.br\/blog\/wp-content\/uploads\/2026\/09\/php-fpm_tuning.webp","type":"image\/webp"}],"author":"HelpSysAdmin","twitter_card":"summary_large_image","twitter_creator":"@brhelpsysad","twitter_site":"@brhelpsysad","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#article","isPartOf":{"@id":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/"},"author":{"name":"HelpSysAdmin","@id":"https:\/\/helpsysadmin.com.br\/blog\/#\/schema\/person\/bdbe3d7d71a0c6a3cb474c18da574efb"},"headline":"PHP-FPM Tuning para VPS e Servidor Dedicado","datePublished":"2026-09-25T21:48:53+00:00","dateModified":"2026-09-25T21:48:57+00:00","mainEntityOfPage":{"@id":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/"},"wordCount":2759,"publisher":{"@id":"https:\/\/helpsysadmin.com.br\/blog\/#organization"},"image":{"@id":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#primaryimage"},"thumbnailUrl":"https:\/\/helpsysadmin.com.br\/blog\/wp-content\/uploads\/2026\/09\/php-fpm_tuning.webp","keywords":["otimiza\u00e7\u00e3o PHP","performance linux","PHP-FPM","php-fpm performance","PHP-FPM tuning","servidor dedicado","vps"],"articleSection":["Performance e Otimiza\u00e7\u00e3o (Tuning)"],"inLanguage":"pt-BR"},{"@type":["WebPage","FAQPage"],"@id":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/","url":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/","name":"PHP-FPM Tuning para VPS e Servidor Dedicado","isPartOf":{"@id":"https:\/\/helpsysadmin.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#primaryimage"},"image":{"@id":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#primaryimage"},"thumbnailUrl":"https:\/\/helpsysadmin.com.br\/blog\/wp-content\/uploads\/2026\/09\/php-fpm_tuning.webp","datePublished":"2026-09-25T21:48:53+00:00","dateModified":"2026-09-25T21:48:57+00:00","description":"Aprenda PHP-FPM tuning para VPS e servidor dedicado, ajustando workers, mem\u00f3ria, processos, PM e desempenho para evitar lentid\u00e3o e 502.","breadcrumb":{"@id":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#breadcrumb"},"mainEntity":[{"@id":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#faq-question-1790372256113"},{"@id":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#faq-question-1790372277772"},{"@id":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#faq-question-1790372300128"},{"@id":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#faq-question-1790372330790"},{"@id":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#faq-question-1790372354176"},{"@id":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#faq-question-1790372381840"},{"@id":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#faq-question-1790372408035"},{"@id":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#faq-question-1790372436396"},{"@id":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#faq-question-1790372458451"},{"@id":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#faq-question-1790372484088"}],"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#primaryimage","url":"https:\/\/helpsysadmin.com.br\/blog\/wp-content\/uploads\/2026\/09\/php-fpm_tuning.webp","contentUrl":"https:\/\/helpsysadmin.com.br\/blog\/wp-content\/uploads\/2026\/09\/php-fpm_tuning.webp","width":1536,"height":1024,"caption":"php-fpm tuning"},{"@type":"BreadcrumbList","@id":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/helpsysadmin.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"PHP-FPM Tuning para VPS e Servidor Dedicado"}]},{"@type":"WebSite","@id":"https:\/\/helpsysadmin.com.br\/blog\/#website","url":"https:\/\/helpsysadmin.com.br\/blog\/","name":"Blog HelpSysAdmin","description":"Webserver linux blog","publisher":{"@id":"https:\/\/helpsysadmin.com.br\/blog\/#organization"},"alternateName":"HelpSysAdmin Blog","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/helpsysadmin.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/helpsysadmin.com.br\/blog\/#organization","name":"HelpSysAdmin Gerenciamento de Servidores","alternateName":"HelpSysAdmin","url":"https:\/\/helpsysadmin.com.br\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/helpsysadmin.com.br\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/mlkpd8g42nae.i.optimole.com\/w:512\/h:512\/q:mauto\/f:best\/https:\/\/helpsysadmin.com.br\/blog\/wp-content\/uploads\/2020\/12\/favicon.png","contentUrl":"https:\/\/mlkpd8g42nae.i.optimole.com\/w:512\/h:512\/q:mauto\/f:best\/https:\/\/helpsysadmin.com.br\/blog\/wp-content\/uploads\/2020\/12\/favicon.png","width":512,"height":512,"caption":"HelpSysAdmin Gerenciamento de Servidores"},"image":{"@id":"https:\/\/helpsysadmin.com.br\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/brhelpsysad","https:\/\/mastodon.social\/@helpsysadmin"],"description":"Oferecemos o gerenciamento de servidores dedicados, vps ou cloud. Apresentamos a melhor experi\u00eancia em atendimento e servi\u00e7o. Nosso time cuidar\u00e1 do seu servidor com backups, an\u00e1lises constantes, ajustes de seguran\u00e7a, realiza\u00e7\u00e3o de manuten\u00e7\u00e3o preventiva e corretiva, otimiza\u00e7\u00e3o de performance al\u00e9m de monitoramento 24\u00d77 com suporte Pr\u00f3 Ativo.","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"1","maxValue":"10"}},{"@type":"Person","@id":"https:\/\/helpsysadmin.com.br\/blog\/#\/schema\/person\/bdbe3d7d71a0c6a3cb474c18da574efb","name":"HelpSysAdmin","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/efc0007e6a313a844b72de257e05c6083b07b6ecc6983a4f71e06293ff2e22fd?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/efc0007e6a313a844b72de257e05c6083b07b6ecc6983a4f71e06293ff2e22fd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/efc0007e6a313a844b72de257e05c6083b07b6ecc6983a4f71e06293ff2e22fd?s=96&d=mm&r=g","caption":"HelpSysAdmin"},"sameAs":["https:\/\/helpsysadmin.com.br\/blog\/"]},{"@type":"Question","@id":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#faq-question-1790372256113","position":1,"url":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#faq-question-1790372256113","name":"O que \u00e9 PHP-FPM tuning?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"\u00c9 o processo de ajustar os par\u00e2metros do PHP-FPM para adequar a execu\u00e7\u00e3o dos processos PHP aos recursos dispon\u00edveis no servidor e \u00e0 demanda da aplica\u00e7\u00e3o.","inLanguage":"pt-BR"},"inLanguage":"pt-BR"},{"@type":"Question","@id":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#faq-question-1790372277772","position":2,"url":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#faq-question-1790372277772","name":"Qual o principal par\u00e2metro do PHP-FPM?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"O pm.max_children \u00e9 um dos par\u00e2metros mais importantes porque limita a quantidade de processos PHP-FPM simult\u00e2neos.","inLanguage":"pt-BR"},"inLanguage":"pt-BR"},{"@type":"Question","@id":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#faq-question-1790372300128","position":3,"url":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#faq-question-1790372300128","name":"Quanto colocar no pm.max_children?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"N\u00e3o existe um valor universal. O ideal \u00e9 medir o consumo m\u00e9dio de mem\u00f3ria dos workers e considerar a RAM reservada para o sistema, banco de dados e demais servi\u00e7os.","inLanguage":"pt-BR"},"inLanguage":"pt-BR"},{"@type":"Question","@id":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#faq-question-1790372330790","position":4,"url":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#faq-question-1790372330790","name":"Aumentar pm.max_children deixa o servidor mais r\u00e1pido?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"N\u00e3o necessariamente. Se o gargalo estiver no banco de dados, CPU, disco ou aplica\u00e7\u00e3o PHP, aumentar o n\u00famero de workers pode inclusive aumentar a press\u00e3o sobre esses recursos.","inLanguage":"pt-BR"},"inLanguage":"pt-BR"},{"@type":"Question","@id":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#faq-question-1790372354176","position":5,"url":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#faq-question-1790372354176","name":"Qual \u00e9 melhor: dynamic ou ondemand?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Depende do ambiente. dynamic mant\u00e9m processos dispon\u00edveis e pode funcionar bem para tr\u00e1fego cont\u00ednuo. ondemand pode ser interessante quando existem muitos sites ou tr\u00e1fego irregular.","inLanguage":"pt-BR"},"inLanguage":"pt-BR"},{"@type":"Question","@id":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#faq-question-1790372381840","position":6,"url":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#faq-question-1790372381840","name":"O PHP-FPM pode causar erro 502?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Sim. Satura\u00e7\u00e3o, processos indispon\u00edveis, problemas no socket, timeouts ou falhas do servi\u00e7o PHP-FPM podem contribuir para erros 502.","inLanguage":"pt-BR"},"inLanguage":"pt-BR"},{"@type":"Question","@id":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#faq-question-1790372408035","position":7,"url":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#faq-question-1790372408035","name":"O que significa server reached pm.max_children?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Significa que o pool atingiu o n\u00famero m\u00e1ximo de processos configurado em pm.max_children. \u00c9 um sinal que deve ser investigado antes de simplesmente aumentar o limite.","inLanguage":"pt-BR"},"inLanguage":"pt-BR"},{"@type":"Question","@id":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#faq-question-1790372436396","position":8,"url":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#faq-question-1790372436396","name":"pm.max_requests \u00e9 importante?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Sim. Ele pode ajudar a controlar processos que apresentam crescimento de mem\u00f3ria ao longo do tempo, fazendo com que sejam recriados ap\u00f3s atender determinado n\u00famero de requisi\u00e7\u00f5es.","inLanguage":"pt-BR"},"inLanguage":"pt-BR"},{"@type":"Question","@id":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#faq-question-1790372458451","position":9,"url":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#faq-question-1790372458451","name":"PHP-FPM precisa de OPcache?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Para ambientes PHP de produ\u00e7\u00e3o, o OPcache normalmente \u00e9 altamente recomendado porque reduz o trabalho necess\u00e1rio para compilar scripts PHP repetidamente.","inLanguage":"pt-BR"},"inLanguage":"pt-BR"},{"@type":"Question","@id":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#faq-question-1790372484088","position":10,"url":"https:\/\/helpsysadmin.com.br\/blog\/php-fpm-tuning-vps-servidor-dedicado\/#faq-question-1790372484088","name":"Como monitorar PHP-FPM?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Voc\u00ea pode utilizar logs, PHP-FPM status, slowlog, top, htop, vmstat, iostat, Zabbix, Prometheus e outras ferramentas de monitoramento.","inLanguage":"pt-BR"},"inLanguage":"pt-BR"}]}},"lang":"pt","translations":{"pt":7358},"pll_sync_post":{},"_links":{"self":[{"href":"https:\/\/helpsysadmin.com.br\/blog\/wp-json\/wp\/v2\/posts\/7358","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/helpsysadmin.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/helpsysadmin.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/helpsysadmin.com.br\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/helpsysadmin.com.br\/blog\/wp-json\/wp\/v2\/comments?post=7358"}],"version-history":[{"count":1,"href":"https:\/\/helpsysadmin.com.br\/blog\/wp-json\/wp\/v2\/posts\/7358\/revisions"}],"predecessor-version":[{"id":7360,"href":"https:\/\/helpsysadmin.com.br\/blog\/wp-json\/wp\/v2\/posts\/7358\/revisions\/7360"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/helpsysadmin.com.br\/blog\/wp-json\/wp\/v2\/media\/7359"}],"wp:attachment":[{"href":"https:\/\/helpsysadmin.com.br\/blog\/wp-json\/wp\/v2\/media?parent=7358"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/helpsysadmin.com.br\/blog\/wp-json\/wp\/v2\/categories?post=7358"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/helpsysadmin.com.br\/blog\/wp-json\/wp\/v2\/tags?post=7358"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}