{"id":22078,"date":"2026-11-10T11:30:00","date_gmt":"2026-11-10T10:30:00","guid":{"rendered":"https:\/\/webhosting.de\/?p=22078"},"modified":"2026-11-05T08:25:52","modified_gmt":"2026-11-05T07:25:52","slug":"analise-de-desempenho-da-pagina-de-estado-do-php-fpm","status":"publish","type":"post","link":"https:\/\/webhosting.de\/pt\/php-fpm-status-page-performanceanalyse\/","title":{"rendered":"Utilizar a p\u00e1gina de estado do PHP-FPM para a an\u00e1lise de desempenho"},"content":{"rendered":"<div class=\"wh-article\" data-wh-layout=\"2.1.2\" style=\"width:100%;max-width:820px;margin:0 auto;color:#263b4b;font-family:inherit;font-size:18px;line-height:1.8;text-align:start;overflow-wrap:break-word;box-sizing:border-box\"><p class=\"wh-lead\" style=\"font-size:20px;line-height:1.7;color:#233746;margin:0 0 1.1em\">A p\u00e1gina de estado do PHP-FPM mostra, para um determinado pool, quantos workers est\u00e3o ativos e se h\u00e1 pedidos em espera. No entanto, para uma an\u00e1lise de desempenho fi\u00e1vel, \u00e9 necess\u00e1rio mais do que uma \u00fanica consulta: compara os valores ao longo do tempo e cruza-os com os tempos de resposta, os registos e o consumo de recursos. <strong style=\"font-weight:700;color:inherit\">Fila de espera e trabalhadores dispon\u00edveis<\/strong> ajudam a identificar um ponto de estrangulamento; por si s\u00f3, n\u00e3o revelam a sua causa. Configure o acesso ao estado como protegido e verifique se este conduz efetivamente ao pool da sua aplica\u00e7\u00e3o. <\/p>\n<nav class=\"wh-toc\" aria-label=\"Conte\u00fado deste artigo\" style=\"display:block;margin:28px 0 38px;padding:22px;border:1px solid #d9e4e8;border-radius:14px;background:#f4f8f8\"><p class=\"wh-toc-title\" style=\"font-size:13px;font-weight:700;letter-spacing:.08em;color:#49656b;margin:0 0 14px\">Ir diretamente para a sec\u00e7\u00e3o<\/p><div class=\"wh-toc-grid\" style=\"display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:10px\"><div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#fpm-pool-grundlagen\" style=\"display:block;height:100%;padding:12px 15px;border:1px solid #dce6e8;border-radius:9px;background:#fff;color:#18575b;font-size:14px;line-height:1.5;font-weight:600;text-decoration:none;box-sizing:border-box\">O que a p\u00e1gina de estado mostra sobre o pool<\/a><\/div>\n<div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#prozessmanager-grenzen\" style=\"display:block;height:100%;padding:12px 15px;border:1px solid #dce6e8;border-radius:9px;background:#fff;color:#18575b;font-size:14px;line-height:1.5;font-weight:600;text-decoration:none;box-sizing:border-box\">Compreender os \u00abWorkers\u00bb e os gestores de processos<\/a><\/div>\n<div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#status-sicherheit\" style=\"display:block;height:100%;padding:12px 15px;border:1px solid #dce6e8;border-radius:9px;background:#fff;color:#18575b;font-size:14px;line-height:1.5;font-weight:600;text-decoration:none;box-sizing:border-box\">Proteger o acesso ao estado e o FastCGI<\/a><\/div>\n<div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#status-einrichten\" style=\"display:block;height:100%;padding:12px 15px;border:1px solid #dce6e8;border-radius:9px;background:#fff;color:#18575b;font-size:14px;line-height:1.5;font-weight:600;text-decoration:none;box-sizing:border-box\">Publicar a p\u00e1gina de estado de forma protegida<\/a><\/div>\n<div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#kennzahlen-lesen\" style=\"display:block;height:100%;padding:12px 15px;border:1px solid #dce6e8;border-radius:9px;background:#fff;color:#18575b;font-size:14px;line-height:1.5;font-weight:600;text-decoration:none;box-sizing:border-box\">Como interpretar e calcular corretamente os indicadores<\/a><\/div>\n<div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#formate-full\" style=\"display:block;height:100%;padding:12px 15px;border:1px solid #dce6e8;border-radius:9px;background:#fff;color:#18575b;font-size:14px;line-height:1.5;font-weight:600;text-decoration:none;box-sizing:border-box\">Comparar formatos de sa\u00edda e detalhes do processo<\/a><\/div>\n<div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#lastspitzen-diagnose\" style=\"display:block;height:100%;padding:12px 15px;border:1px solid #dce6e8;border-radius:9px;background:#fff;color:#18575b;font-size:14px;line-height:1.5;font-weight:600;text-decoration:none;box-sizing:border-box\">Analisar filas de espera e pedidos lentos<\/a><\/div>\n<div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#monitoring-ausfall\" style=\"display:block;height:100%;padding:12px 15px;border:1px solid #dce6e8;border-radius:9px;background:#fff;color:#18575b;font-size:14px;line-height:1.5;font-weight:600;text-decoration:none;box-sizing:border-box\">Monitoriza\u00e7\u00e3o e falhas da p\u00e1gina de estado<\/a><\/div>\n<div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#entscheidung-fehlersuche\" style=\"display:block;height:100%;padding:12px 15px;border:1px solid #dce6e8;border-radius:9px;background:#fff;color:#18575b;font-size:14px;line-height:1.5;font-weight:600;text-decoration:none;box-sizing:border-box\">Analisar os resultados e selecionar as medidas a tomar<\/a><\/div>\n<\/div><\/nav><section class=\"wh-section\" aria-labelledby=\"fpm-pool-grundlagen\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"fpm-pool-grundlagen\" style=\"margin:38px 0 18px;color:#172f41;font-size:clamp(24px,1.25rem + 1vw,30px);font-weight:700;line-height:1.3;scroll-margin-top:115px\">O que a p\u00e1gina de estado mostra sobre o pool<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">A p\u00e1gina de estado do PHP-FPM mostra como um determinado <strong style=\"font-weight:700;color:inherit\">piscina<\/strong> Pedidos PHP processados: entre outros, quantos processos est\u00e3o ativos ou livres e se h\u00e1 pedidos em espera. \u00c9 necess\u00e1rio que a aplica\u00e7\u00e3o seja efetivamente servida pelo PHP-FPM. A vers\u00e3o do PHP apresentada na linha de comandos, por si s\u00f3, n\u00e3o indica nem isso nem a vers\u00e3o do servi\u00e7o FPM respons\u00e1vel. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Por isso, determine primeiro a vers\u00e3o do FPM utilizada e o pool para o qual o servidor Web reencaminha a aplica\u00e7\u00e3o. Isso inclui o socket Unix ou o listener TCP utilizado e o encaminhamento no host virtual respons\u00e1vel. Esta atribui\u00e7\u00e3o \u00e9 importante para que uma consulta de estado posterior n\u00e3o se refira acidentalmente a outro pool.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Se um servidor gerir v\u00e1rios pools, a informa\u00e7\u00e3o apresentada aplica-se apenas ao pool em quest\u00e3o e n\u00e3o automaticamente a todas as aplica\u00e7\u00f5es PHP. Na hospedagem partilhada, \u00e9 poss\u00edvel que n\u00e3o tenhas direitos para configurar o pool ou o servidor web. Nesse caso, ter\u00e1s de contar com o facto de o fornecedor disponibilizar a p\u00e1gina de estado ou indicadores semelhantes de forma protegida. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Uma consulta \u00e9, em primeiro lugar, uma <strong style=\"font-weight:700;color:inherit\">Instant\u00e2neo<\/strong>: Podem surgir e desaparecer pequenas filas de espera entre duas consultas. Outros valores contabilizam os eventos desde o arranque do FPM; no caso de um rein\u00edcio, s\u00e3o reiniciados. Por isso, para obter um hist\u00f3rico significativo, guarde a hora da consulta e a identidade do pool juntamente com os valores. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Esta p\u00e1gina n\u00e3o explica todo o tempo de espera no navegador. A rede, o servidor web, a base de dados e os servi\u00e7os externos tamb\u00e9m podem contribuir para o tempo de resposta. Por isso, constitui um ponto de partida para o diagn\u00f3stico do pool do PHP-FPM, n\u00e3o um teste de desempenho completo do site.<\/p>\n<\/section><section class=\"wh-section\" aria-labelledby=\"prozessmanager-grenzen\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"prozessmanager-grenzen\" style=\"margin:38px 0 18px;color:#172f41;font-size:clamp(24px,1.25rem + 1vw,30px);font-weight:700;line-height:1.3;scroll-margin-top:115px\">Compreender os \u00abWorkers\u00bb e os gestores de processos<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">O gestor de processos determina a forma como o pool disponibiliza os seus trabalhadores. No caso de <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">static<\/code> o seu n\u00famero permanece constante. <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">dynamic<\/code> ajusta o n\u00famero de acordo com as necessidades, dentro dos limites configurados; <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">ondemand<\/code> inicia processos conforme necess\u00e1rio. A capacidade dispon\u00edvel que se espera depende, portanto, tamb\u00e9m do modo de funcionamento definido. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Um processo ativo est\u00e1 neste momento a processar um pedido; um processo livre est\u00e1 dispon\u00edvel para trabalhar. A exist\u00eancia de muitos \u00abworkers\u00bb ativos n\u00e3o constitui, por si s\u00f3, um erro: um conjunto de processos em plena atividade pode processar os pedidos rapidamente. A observa\u00e7\u00e3o torna-se mais significativa quando, ao mesmo tempo, h\u00e1 pedidos em espera, os tempos de resposta aumentam e quase n\u00e3o h\u00e1 processos livres dispon\u00edveis. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Mesmo uma reserva temporariamente vazia, por si s\u00f3, n\u00e3o constitui prova de um estrangulamento duradouro. Compare as chamadas repetidas com a configura\u00e7\u00e3o <strong style=\"font-weight:700;color:inherit\">Limite do processo<\/strong> e os momentos em que os utilizadores realmente notam atrasos. \u00c9 assim que se distingue um pico de carga de curta dura\u00e7\u00e3o de uma sobrecarga recorrente.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Um maior n\u00famero de workers permite processar mais pedidos em paralelo, mas requer mais mem\u00f3ria e pode sobrecarregar mais as bases de dados ou os servi\u00e7os externos. Se muitos processos estiverem \u00e0 espera da mesma depend\u00eancia lenta, aumentar o limite n\u00e3o resolve a causa. Por isso, verifica os recursos e a dura\u00e7\u00e3o dos pedidos antes de <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">pm.max_children<\/code> mudan\u00e7a. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Para definir as responsabilidades na pilha de alojamento, \u00e9 \u00fatil comparar <a href=\"https:\/\/webhosting.de\/pt\/nginx-unit-como-alternativa-ao-php-fpm\/\">NGINX Unit e PHP-FPM<\/a>. Complementa a perspetiva arquitet\u00f3nica; continuas a ter de verificar os valores de estado concretos e as defini\u00e7\u00f5es do gestor de processos no conjunto de FPM efetivamente utilizado.<\/p>\n<\/section><section class=\"wh-section\" aria-labelledby=\"status-sicherheit\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"status-sicherheit\" style=\"margin:38px 0 18px;color:#172f41;font-size:clamp(24px,1.25rem + 1vw,30px);font-weight:700;line-height:1.3;scroll-margin-top:115px\">Proteger o acesso ao estado e o FastCGI<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">A apresenta\u00e7\u00e3o do estado pode revelar informa\u00e7\u00f5es confidenciais sobre pedidos e recursos. Em particular, os detalhes do processo podem conter URIs de pedido que permitam deduzir quais as fun\u00e7\u00f5es chamadas ou os par\u00e2metros transmitidos. Por isso, considere esta p\u00e1gina como um acesso de diagn\u00f3stico e n\u00e3o como um painel de estado p\u00fablico. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Limita o <strong style=\"font-weight:700;color:inherit\">Acesso HTTP<\/strong> para pedidos internos ou endere\u00e7os IP de clientes expressamente identificados. Verifica, nesse caso, qual o endere\u00e7o que o servidor Web identifica efetivamente como sendo do cliente, caso exista um proxy interm\u00e9dio. A prote\u00e7\u00e3o deve aplicar-se ao encaminhamento da p\u00e1gina de estado e deve ser verificada antes de ser autorizada. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Independentemente disso, assegure o <strong style=\"font-weight:700;color:inherit\">Acesso FastCGI<\/strong> por si pr\u00f3prio. No caso de um socket Unix, o propriet\u00e1rio e as permiss\u00f5es s\u00e3o relevantes; no caso do TCP, \u00e9 necess\u00e1rio verificar a liga\u00e7\u00e3o de rede e os clientes autorizados. Um bloqueio no servidor Web n\u00e3o protege uma porta FastCGI que seja acess\u00edvel separadamente a partir de uma rede n\u00e3o fi\u00e1vel. <\/p>\n<figure class=\"wp-block-image size-large wh-figure\" aria-describedby=\"wh-caption-detail1\" style=\"display:block;float:none;clear:both;width:100%;max-width:760px;margin:34px auto 40px;border:1px solid #dae5e9;border-radius:14px;overflow:hidden;background:#f5f8fa;box-shadow:0 10px 28px -17px rgba(24,47,60,.28);box-sizing:border-box\"><div class=\"wh-figure-media\" style=\"display:block;background:#eef3f5;line-height:0\"><img loading=\"lazy\" width=\"800\" height=\"534\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/fastcgi-tcp-netzwerkzugang-ea7b43a4-detail1-b40d3e84c0-1024x683.webp\" class=\"wp-image-22090\" alt=\"Imagem simb\u00f3lica gerada por IA de um cabo Ethernet ligado a um pequeno computador, como indica\u00e7\u00e3o de um poss\u00edvel acesso TCP.\" decoding=\"async\" srcset=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/fastcgi-tcp-netzwerkzugang-ea7b43a4-detail1-b40d3e84c0-1024x683.webp 1024w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/fastcgi-tcp-netzwerkzugang-ea7b43a4-detail1-b40d3e84c0-300x200.webp 300w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/fastcgi-tcp-netzwerkzugang-ea7b43a4-detail1-b40d3e84c0-768x512.webp 768w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/fastcgi-tcp-netzwerkzugang-ea7b43a4-detail1-b40d3e84c0-18x12.webp 18w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/fastcgi-tcp-netzwerkzugang-ea7b43a4-detail1-b40d3e84c0.webp 1536w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" ><\/div><figcaption class=\"wh-caption\" id=\"wh-caption-detail1\" style=\"display:block;margin:0;padding:12px 18px 15px;border-top:1px solid #dce5e9;color:#506575;background:#f5f8fa;font-size:14px;line-height:1.55;text-align:start\">Imagem ilustrativa gerada por IA: O acesso FastCGI atrav\u00e9s de TCP deve ser protegido independentemente do acesso HTTP.<\/figcaption><\/figure><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">O projeto PHP documentou, com o c\u00f3digo CVE-2026-6735, uma vulnerabilidade XSS na sa\u00edda de estado do FPM. As vers\u00f5es corrigidas incluem o PHP 8.4.21 e o 8.5.6. No caso de outros ramos de vers\u00e3o e pacotes de distribui\u00e7\u00e3o, verifique o respetivo n\u00edvel de seguran\u00e7a ou os patches retroativos, em vez de concluir que a prote\u00e7\u00e3o est\u00e1 garantida apenas com base no n\u00famero de vers\u00e3o apresentado. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Uma atualiza\u00e7\u00e3o n\u00e3o substitui a restri\u00e7\u00e3o de acesso: mesmo uma p\u00e1gina de estado corrigida pode continuar a revelar detalhes operacionais. Mant\u00e9m tanto o acesso HTTP como o listener limitados ao grupo de utilizadores previsto e tem em conta estas duas camadas de prote\u00e7\u00e3o em altera\u00e7\u00f5es posteriores ao encaminhamento.<\/p>\n<\/section><section class=\"wh-section\" aria-labelledby=\"status-einrichten\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"status-einrichten\" style=\"margin:38px 0 18px;color:#172f41;font-size:clamp(24px,1.25rem + 1vw,30px);font-weight:700;line-height:1.3;scroll-margin-top:115px\">Publicar a p\u00e1gina de estado de forma protegida<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Em primeiro lugar, determine qual o conjunto FPM que processa a aplica\u00e7\u00e3o em quest\u00e3o e atrav\u00e9s de que socket ou endere\u00e7o TCP o servidor Web acede a ele. No caso de existirem v\u00e1rios conjuntos, a consulta de estado pertence ao conjunto para o qual \u00e9 reencaminhada. A vers\u00e3o PHP da linha de comandos, por si s\u00f3, n\u00e3o indica qual o servi\u00e7o FPM respons\u00e1vel pela aplica\u00e7\u00e3o. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">No ficheiro de configura\u00e7\u00e3o do pool em quest\u00e3o, o seguinte excerto ativa o <strong style=\"font-weight:700;color:inherit\">Percurso de estado<\/strong>. N\u00e3o se trata de um ficheiro PHP que tenhas de criar no diret\u00f3rio de documentos. O trecho \u00e9 uma sugest\u00e3o de configura\u00e7\u00e3o e pressup\u00f5e que tens permiss\u00e3o para editar a configura\u00e7\u00e3o do pool. <\/p>\n<div class=\"wh-code-window\" data-wh-code style=\"margin:28px 0 34px;border:1px solid #2c4656;border-radius:12px;overflow:hidden;background:#132a3b;box-shadow:0 9px 25px -13px rgba(15,35,55,.2)\"><div class=\"wh-code-toolbar\" style=\"display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:11px 16px;background:#223e50;color:#edf5fa;font-size:13px;line-height:1.5;font-weight:600\"><span>C\u00f3digo<\/span><button type=\"button\" class=\"wh-code-copy\" data-wh-copy hidden style=\"padding:6px 11px;border:1px solid #7893a1;border-radius:6px;background:transparent;color:#fff;font-size:12px;line-height:1.5;font-weight:600;cursor:pointer\">Copiar c\u00f3digo<\/button><span class=\"wh-copy-status\" aria-live=\"polite\"><\/span><span data-wh-copy-success hidden>Copiado<\/span><span data-wh-copy-fallback hidden>C\u00f3digo destacado \u2013 por favor, copie<\/span><\/div><pre class=\"wh-code\" data-no-translation translate=\"no\" style=\"display:block;margin:0;padding:20px;max-width:100%;overflow-x:auto;color:#edf5fa;background:#132a3b;font:14px\/1.75 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre;direction:ltr;text-align:left\"><code class=\"language-ini\" style=\"font:inherit;color:inherit;background:transparent;padding:0;border:0;white-space:inherit\">pm.status_path = \/fpm-status<\/code><\/pre><\/div><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Configure no servidor Web uma rota adequada que reencaminhe as solicita\u00e7\u00f5es para este caminho diretamente, atrav\u00e9s do FastCGI, para o conjunto de servidores identificado. O encaminhamento normal da aplica\u00e7\u00e3o n\u00e3o deve interceptar a solicita\u00e7\u00e3o. Limite o acesso HTTP a pedidos internos ou a endere\u00e7os IP de clientes conhecidos e proteja o socket FastCGI independentemente disso, atrav\u00e9s de permiss\u00f5es, liga\u00e7\u00e3o de rede e clientes autorizados.  <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Antes da implementa\u00e7\u00e3o oficial, verifica tanto a configura\u00e7\u00e3o do servidor Web como a do FPM utilizando os procedimentos de verifica\u00e7\u00e3o previstos no teu ambiente. Certifica-te de que est\u00e1s a alterar o servi\u00e7o e o pool corretos e de que a restri\u00e7\u00e3o de acesso tamb\u00e9m se aplica ao caminho de estado. O simples facto de definir um caminho n\u00e3o torna a sa\u00edda acess\u00edvel via HTTP.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Num ambiente j\u00e1 configurado e protegido localmente, o seguinte comando de terminal l\u00ea a sa\u00edda JSON. Pressup\u00f5e que existe um host virtual HTTP local adequado acess\u00edvel na morada indicada. Caso contr\u00e1rio, ter\u00e1s de adaptar o endere\u00e7o, o encaminhamento do host e, se for o caso, o TLS ao teu ambiente; a consulta n\u00e3o altera nenhuma configura\u00e7\u00e3o.<\/p>\n<div class=\"wh-code-window\" data-wh-code style=\"margin:28px 0 34px;border:1px solid #2c4656;border-radius:12px;overflow:hidden;background:#132a3b;box-shadow:0 9px 25px -13px rgba(15,35,55,.2)\"><div class=\"wh-code-toolbar\" style=\"display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:11px 16px;background:#223e50;color:#edf5fa;font-size:13px;line-height:1.5;font-weight:600\"><span>Terminal<\/span><button type=\"button\" class=\"wh-code-copy\" data-wh-copy hidden style=\"padding:6px 11px;border:1px solid #7893a1;border-radius:6px;background:transparent;color:#fff;font-size:12px;line-height:1.5;font-weight:600;cursor:pointer\">Copiar c\u00f3digo<\/button><span class=\"wh-copy-status\" aria-live=\"polite\"><\/span><span data-wh-copy-success hidden>Copiado<\/span><span data-wh-copy-fallback hidden>C\u00f3digo destacado \u2013 por favor, copie<\/span><\/div><pre class=\"wh-code\" data-no-translation translate=\"no\" style=\"display:block;margin:0;padding:20px;max-width:100%;overflow-x:auto;color:#edf5fa;background:#132a3b;font:14px\/1.75 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre;direction:ltr;text-align:left\"><code class=\"language-bash\" style=\"font:inherit;color:inherit;background:transparent;padding:0;border:0;white-space:inherit\">curl --fail --silent --show-error &#039;http:\/\/127.0.0.1\/fpm-status?json&#039;<\/code><\/pre><\/div><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Na resposta, verifica, em particular, o nome do pool. Uma mensagem de erro ou uma sa\u00edda inesperada da aplica\u00e7\u00e3o pode indicar um encaminhamento incorreto; um bloqueio de acesso tamb\u00e9m pode impedir a recupera\u00e7\u00e3o dos dados. Verifica, ent\u00e3o, a configura\u00e7\u00e3o do servidor Web em quest\u00e3o e os registos, em vez de remover a prote\u00e7\u00e3o precipitadamente.<\/p>\n<\/section><section class=\"wh-section\" aria-labelledby=\"kennzahlen-lesen\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"kennzahlen-lesen\" style=\"margin:38px 0 18px;color:#172f41;font-size:clamp(24px,1.25rem + 1vw,30px);font-weight:700;line-height:1.3;scroll-margin-top:115px\">Como interpretar e calcular corretamente os indicadores<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Os valores de estado descrevem diferentes per\u00edodos: alguns indicam o estado no momento da consulta, outros contabilizam eventos ou registam um valor m\u00e1ximo desde o in\u00edcio. Para um diagn\u00f3stico, esta distin\u00e7\u00e3o \u00e9 mais importante do que um \u00fanico valor an\u00f3malo. A tabela seguinte classifica os dados essenciais. <\/p>\n<div class=\"wh-table-scroll\" tabindex=\"0\" role=\"region\" aria-label=\"Indicadores do PHP-FPM e interpreta\u00e7\u00f5es erradas t\u00edpicas\" style=\"width:100%;max-width:100%;overflow-x:auto;margin:28px 0;border:1px solid #dce5e9;border-radius:14px;background:#fff;box-shadow:0 10px 28px -16px rgba(24,47,60,.32);box-sizing:border-box\"><table style=\"width:100%;min-width:580px;border-collapse:separate;border-spacing:0;border:0;margin:0;font-size:15px;line-height:1.6;background:#fff\"><caption style=\"padding:20px;text-align:start;font-size:17px;line-height:1.5;font-weight:700;color:#173246;background:#fff\">Indicadores do PHP-FPM e interpreta\u00e7\u00f5es erradas t\u00edpicas<\/caption><thead><tr><th scope=\"col\" style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#19394d;color:#fff\">\u00cdndice<\/th><th scope=\"col\" style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#19394d;color:#fff\">Significado<\/th><th scope=\"col\" style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#19394d;color:#fff\">Tipo<\/th><th scope=\"col\" style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#19394d;color:#fff\">N\u00e3o confundir com<\/th><\/tr><\/thead><tbody><tr><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">processos ativos \/ processos inativos<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Processos em execu\u00e7\u00e3o ou dispon\u00edveis<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Instant\u00e2neo<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">O simples facto de haver muitos processos ativos n\u00e3o \u00e9, por si s\u00f3, prova de um estrangulamento.<\/td><\/tr><tr><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">fila de escuta<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">Pedidos atualmente em espera<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">Instant\u00e2neo<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">Um valor m\u00e1ximo anterior n\u00e3o diz nada sobre a fila atual.<\/td><\/tr><tr><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">fila de escuta m\u00e1xima<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">A fila mais longa registada desde o in\u00edcio<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Valor m\u00e1ximo<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Os pedidos j\u00e1 n\u00e3o t\u00eam de ficar \u00e0 espera.<\/td><\/tr><tr><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">comprimento da fila de listas<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">Capacidade da fila<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">Limite relacionado com a configura\u00e7\u00e3o<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">A capacidade n\u00e3o corresponde ao n\u00famero atual de pedidos em espera.<\/td><\/tr><tr><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">conex\u00e3o aceite<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Liga\u00e7\u00f5es aceites<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Contador acumulado<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Este valor n\u00e3o corresponde ao n\u00famero de visitas a p\u00e1ginas externas.<\/td><\/tr><tr><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">m\u00e1ximo de crian\u00e7as alcan\u00e7adas<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">Eventos ao atingir o limite do processo<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">Contador acumulado<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">Um valor nulo n\u00e3o \u00e9, no caso de \u00abstatic\u00bb, um sinal seguro de que n\u00e3o h\u00e1 problema.<\/td><\/tr><tr><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">pedidos lentos<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Consultas que atingiram o limiar de slowlog configurado<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Contador acumulado<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">O valor zero n\u00e3o significa que todas as consultas tenham sido r\u00e1pidas.<\/td><\/tr><\/tbody><\/table><\/div><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Para um <strong style=\"font-weight:700;color:inherit\">Taxa de liga\u00e7\u00e3o<\/strong>subtrais dois valores de <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">accepted conn<\/code> subtrai uma da outra e divide a diferen\u00e7a pelo tempo decorrido. Exemplo de c\u00e1lculo hipot\u00e9tico, sem medi\u00e7\u00e3o: se o contador passar de 12 000 para 12 600 no espa\u00e7o de 60 segundos, obt\u00e9m-se uma m\u00e9dia de dez liga\u00e7\u00f5es estimadas por segundo. A partir disso, n\u00e3o \u00e9 poss\u00edvel deduzir diretamente nem as visualiza\u00e7\u00f5es de p\u00e1ginas nem a lat\u00eancia da aplica\u00e7\u00e3o.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Guarde a hora e a identidade do pool em cada ponto de medi\u00e7\u00e3o. Ap\u00f3s um rein\u00edcio do FPM, os valores de estado s\u00e3o reiniciados; por isso, uma diferen\u00e7a que ultrapasse esta interrup\u00e7\u00e3o n\u00e3o constitui uma taxa v\u00e1lida. Detete uma redu\u00e7\u00e3o no contador ou uma altera\u00e7\u00e3o na hora de in\u00edcio e reinicie o c\u00e1lculo para o novo per\u00edodo. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Em <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">max children reached<\/code> o gestor de processos \u00e9 fundamental: a configura\u00e7\u00e3o de exemplo do PHP 8.4.21 descreve o contador para \u00abdynamic\u00bb e \u00abondemand\u00bb. No caso de \u00abstatic\u00bb, n\u00e3o se deve considerar um valor nulo como prova de capacidade dispon\u00edvel. Para <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">slow requests<\/code> O limiar e o Slowlog t\u00eam de estar configurados de forma adequada; o limiar determina quais as consultas longas que s\u00e3o efetivamente registadas.  <\/p>\n<\/section><section class=\"wh-section\" aria-labelledby=\"formate-full\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"formate-full\" style=\"margin:38px 0 18px;color:#172f41;font-size:clamp(24px,1.25rem + 1vw,30px);font-weight:700;line-height:1.3;scroll-margin-top:115px\">Comparar formatos de sa\u00edda e detalhes do processo<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">A vers\u00e3o resumida \u00e9 adequada para uma vis\u00e3o geral de toda a piscina. O fator decisivo na escolha do formato \u00e9 se pretendes ler os valores manualmente ou process\u00e1-los regularmente atrav\u00e9s de um sistema de monitoriza\u00e7\u00e3o. O par\u00e2metro <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">full<\/code> alarga a sa\u00edda com detalhes do processo; n\u00e3o \u00e9 um formato de interc\u00e2mbio aut\u00f3nomo. <\/p>\n<div class=\"wh-table-scroll\" tabindex=\"0\" role=\"region\" aria-label=\"Compara\u00e7\u00e3o entre formatos de estado e apresenta\u00e7\u00e3o detalhada\" style=\"width:100%;max-width:100%;overflow-x:auto;margin:28px 0;border:1px solid #dce5e9;border-radius:14px;background:#fff;box-shadow:0 10px 28px -16px rgba(24,47,60,.32);box-sizing:border-box\"><table style=\"width:100%;min-width:580px;border-collapse:separate;border-spacing:0;border:0;margin:0;font-size:15px;line-height:1.6;background:#fff\"><caption style=\"padding:20px;text-align:start;font-size:17px;line-height:1.5;font-weight:700;color:#173246;background:#fff\">Compara\u00e7\u00e3o entre formatos de estado e apresenta\u00e7\u00e3o detalhada<\/caption><thead><tr><th scope=\"col\" style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#19394d;color:#fff\">Quest\u00e3o<\/th><th scope=\"col\" style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#19394d;color:#fff\">Utiliza\u00e7\u00e3o prevista<\/th><th scope=\"col\" style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#19394d;color:#fff\">Limite ou condi\u00e7\u00e3o pr\u00e9via<\/th><\/tr><\/thead><tbody><tr><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Texto<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Verifica\u00e7\u00e3o manual r\u00e1pida dos valores do conjunto<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Para efeitos de compara\u00e7\u00e3o temporal, registe os acessos e os momentos em que ocorreram.<\/td><\/tr><tr><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">JSON<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">An\u00e1lise estruturada e automatizada<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">Proteger o acesso e verificar o formato com o cliente de monitoriza\u00e7\u00e3o.<\/td><\/tr><tr><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">OpenMetrics<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">Integra\u00e7\u00e3o num sistema de monitoriza\u00e7\u00e3o compat\u00edvel<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#fff;color:#294252\">A partir do PHP 8.1; verifique o resultado efetivo e a compatibilidade com o cliente.<\/td><\/tr><tr><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">completo<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">Informa\u00e7\u00f5es adicionais sobre processos espec\u00edficos<\/td><td style=\"padding:15px 18px;border:0;border-bottom:1px solid #e2e9ed;text-align:start;vertical-align:top;white-space:normal;font-size:15px;line-height:1.6;background:#f4f7f9;color:#294252\">No OpenMetrics, n\u00e3o se deve assumir a exist\u00eancia de dados de processos individuais sem verificar a vers\u00e3o instalada.<\/td><\/tr><\/tbody><\/table><\/div><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">O Manual do PHP tamb\u00e9m documenta XML e HTML. Em caso de consultas automatizadas, verifica a vers\u00e3o do FPM efetivamente instalada e a sua sa\u00edda antes de dependeres de determinados campos ou detalhes do processo. Em particular, deves ter em conta a combina\u00e7\u00e3o de OpenMetrics e <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">full<\/code> verificar na pr\u00f3pria vers\u00e3o, em vez de partir do princ\u00edpio de que existem dados de processos individuais. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">O <strong style=\"font-weight:700;color:inherit\">Dura\u00e7\u00e3o do pedido<\/strong> Na vers\u00e3o completa, o valor \u00e9 expresso em microsegundos. No caso de um processo ativo, refere-se \u00e0 dura\u00e7\u00e3o do pedido que est\u00e1 a ser processado nesse momento; no caso de um processo inativo, refere-se ao \u00faltimo pedido processado. Um valor elevado num worker livre n\u00e3o significa, portanto, que este ainda esteja a processar o pedido. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Os campos <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">last request cpu<\/code> e <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">last request memory<\/code> s\u00e3o apresentados como zero nos processos ocupados, porque a sua avalia\u00e7\u00e3o s\u00f3 ocorre ap\u00f3s a conclus\u00e3o da consulta. Estes valores nulos n\u00e3o indicam, portanto, uma falta de consumo de CPU ou de mem\u00f3ria. Consultas repetidas podem revelar se um processo permanece ocupado durante mais tempo; no entanto, n\u00e3o substituem um rastreio completo da aplica\u00e7\u00e3o.  <\/p>\n<\/section><section class=\"wh-section\" aria-labelledby=\"lastspitzen-diagnose\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"lastspitzen-diagnose\" style=\"margin:38px 0 18px;color:#172f41;font-size:clamp(24px,1.25rem + 1vw,30px);font-weight:700;line-height:1.3;scroll-margin-top:115px\">Analisar filas de espera e pedidos lentos<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Se o <strong style=\"font-weight:700;color:inherit\">fila de espera<\/strong> Se isso se repetir, enquanto muitos processos est\u00e3o ativos e apenas alguns est\u00e3o livres, um conjunto sobrecarregado \u00e9 uma hip\u00f3tese de trabalho plaus\u00edvel. Uma \u00fanica consulta n\u00e3o \u00e9 suficiente para isso: compare v\u00e1rios momentos e observe se, ao mesmo tempo, os tempos de resposta \u00e0s consultas aumentam. O valor m\u00e1ximo da fila, por si s\u00f3, n\u00e3o indica se ainda h\u00e1 pedidos em espera. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Compare esse per\u00edodo com os registos do FPM, a utiliza\u00e7\u00e3o da CPU e a mem\u00f3ria dispon\u00edvel. Considere tamb\u00e9m a base de dados, a cache e os servi\u00e7os externos: se o PHP estiver \u00e0 espera de uma depend\u00eancia lenta, os workers permanecem ocupados, embora o aumento da capacidade da CPU, por si s\u00f3, n\u00e3o resolva necessariamente o problema. A p\u00e1gina de estado mostra a ocupa\u00e7\u00e3o, mas n\u00e3o indica de forma fi\u00e1vel a sua causa.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Consulte repetidamente a vers\u00e3o completa protegida durante uma fase que se destaque. Uma dura\u00e7\u00e3o prolongada da solicita\u00e7\u00e3o no mesmo processo ativo pode indicar um worker ocupado por um per\u00edodo mais longo; verifique o estado do processo, pois, no caso de um processo inativo, a dura\u00e7\u00e3o refere-se \u00e0 sua \u00faltima solicita\u00e7\u00e3o. O PID, o URI e o script ajudam na identifica\u00e7\u00e3o, mas n\u00e3o fornecem um rastreio completo. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Especialmente no caso de um controlador frontal, o mesmo nome de script pode abranger muitas fun\u00e7\u00f5es diferentes da aplica\u00e7\u00e3o. Por isso, complementa essa observa\u00e7\u00e3o com o rastreio da aplica\u00e7\u00e3o e uma configura\u00e7\u00e3o adequada de <strong style=\"font-weight:700;color:inherit\">Slowlog<\/strong>. O seu limiar determina quais as solicita\u00e7\u00f5es longas que s\u00e3o registadas; a aus\u00eancia de uma entrada n\u00e3o significa que todas as solicita\u00e7\u00f5es tenham sido r\u00e1pidas. Para saberes como interpretar os resultados de forma mais aprofundada, consulta o artigo sobre o <a href=\"https:\/\/webhosting.de\/pt\/analise-correta-do-slowlog-do-php-fpm-otimizacao-de-desempenho-depuracao-e-analise\/\">An\u00e1lise do registo de lentid\u00e3o do PHP-FPM<\/a>. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Para a compara\u00e7\u00e3o, regista o intervalo de tempo e o pool em quest\u00e3o. Desta forma, podes verificar, por exemplo, se uma consulta lenta \u00e0 base de dados coincide temporalmente com os workers ocupados ou se a fila j\u00e1 estava a aumentar antes disso. Uma correla\u00e7\u00e3o restringe a pesquisa, mas ainda n\u00e3o substitui a verifica\u00e7\u00e3o da solicita\u00e7\u00e3o espec\u00edfica.<\/p>\n<\/section><section class=\"wh-section\" aria-labelledby=\"monitoring-ausfall\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"monitoring-ausfall\" style=\"margin:38px 0 18px;color:#172f41;font-size:clamp(24px,1.25rem + 1vw,30px);font-weight:700;line-height:1.3;scroll-margin-top:115px\">Monitoriza\u00e7\u00e3o e falhas da p\u00e1gina de estado<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">No caso de picos de carga recorrentes, as consultas regulares e protegidas s\u00e3o mais significativas do que verifica\u00e7\u00f5es pontuais ocasionais. O JSON \u00e9 adequado para o processamento automatizado; o OpenMetrics \u00e9 uma alternativa, desde que a vers\u00e3o de PHP instalada e o cliente de monitoriza\u00e7\u00e3o sejam compat\u00edveis. Guarda, para cada ponto de medi\u00e7\u00e3o, a hora e a identidade do pool, para que n\u00e3o compares acidentalmente pools diferentes. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Trata <strong style=\"font-weight:700;color:inherit\">consultas em falta<\/strong> como eventos distintos e n\u00e3o como valores nulos. Uma lacuna pode dever-se \u00e0 rede, \u00e0 prote\u00e7\u00e3o de acesso ou ao servi\u00e7o de estado; por si s\u00f3, n\u00e3o indica nem um conjunto vazio nem uma falha da aplica\u00e7\u00e3o. Por isso, guarda tamb\u00e9m os erros e os tempos de espera da consulta, para que a lacuna permane\u00e7a vis\u00edvel numa an\u00e1lise posterior.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Identifica tamb\u00e9m as reinicializa\u00e7\u00f5es dos contadores acumulados ap\u00f3s um rein\u00edcio do FPM. Uma diferen\u00e7a negativa entre dois valores n\u00e3o corresponde a uma taxa de liga\u00e7\u00e3o negativa; reinicie o c\u00e1lculo ap\u00f3s a reinicializa\u00e7\u00e3o e tenha em conta o intervalo interrompido. A hora de in\u00edcio e a atribui\u00e7\u00e3o ao pool tamb\u00e9m ajudam a contextualizar essa interrup\u00e7\u00e3o no hist\u00f3rico. <\/p>\n<figure class=\"wp-block-image size-large wh-figure\" aria-describedby=\"wh-caption-detail2\" style=\"display:block;float:none;clear:both;width:100%;max-width:760px;margin:34px auto 40px;border:1px solid #dae5e9;border-radius:14px;overflow:hidden;background:#f5f8fa;box-shadow:0 10px 28px -17px rgba(24,47,60,.28);box-sizing:border-box\"><div class=\"wh-figure-media\" style=\"display:block;background:#eef3f5;line-height:0\"><img loading=\"lazy\" width=\"800\" height=\"534\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/php-fpm-monitoring-luecke-neustart-ea7b43a4-detail2-a8ab4ad461-1024x683.webp\" class=\"wp-image-22091\" alt=\"Ilustra\u00e7\u00e3o gerada por IA de uma sequ\u00eancia de pontos de medi\u00e7\u00e3o de monitoriza\u00e7\u00e3o com uma lacuna e uma interrup\u00e7\u00e3o.\" decoding=\"async\" srcset=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/php-fpm-monitoring-luecke-neustart-ea7b43a4-detail2-a8ab4ad461-1024x683.webp 1024w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/php-fpm-monitoring-luecke-neustart-ea7b43a4-detail2-a8ab4ad461-300x200.webp 300w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/php-fpm-monitoring-luecke-neustart-ea7b43a4-detail2-a8ab4ad461-768x512.webp 768w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/php-fpm-monitoring-luecke-neustart-ea7b43a4-detail2-a8ab4ad461-18x12.webp 18w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/php-fpm-monitoring-luecke-neustart-ea7b43a4-detail2-a8ab4ad461.webp 1536w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" ><\/div><figcaption class=\"wh-caption\" id=\"wh-caption-detail2\" style=\"display:block;margin:0;padding:12px 18px 15px;border-top:1px solid #dce5e9;color:#506575;background:#f5f8fa;font-size:14px;line-height:1.55;text-align:start\">Ilustra\u00e7\u00e3o gerada por IA: as chamadas n\u00e3o respondidas e os rein\u00edcios devem continuar a ser identific\u00e1veis como interrup\u00e7\u00f5es no sistema de monitoriza\u00e7\u00e3o.<\/figcaption><\/figure><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Se a consulta de estado for executada pelo mesmo pool que a aplica\u00e7\u00e3o, pode ela pr\u00f3pria aguardar caso os trabalhadores estejam esgotados. Para esta situa\u00e7\u00e3o, oferece-se <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">pm.status_listen<\/code> um listener FastCGI separado com um pool interno que funciona de forma independente. Este permite o diagn\u00f3stico do estado enquanto o pool principal est\u00e1 ocupado; no entanto, n\u00e3o aumenta a capacidade de processamento deste. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">O listener adicional necessita de um encaminhamento do servidor Web protegido e explicitamente atribu\u00eddo. Proteja tamb\u00e9m o seu acesso FastCGI e, ap\u00f3s uma altera\u00e7\u00e3o aprovada, verifique se a consulta fornece efetivamente o estado do pool pretendido. Desta forma, o diagn\u00f3stico permanece separado do caminho normal da aplica\u00e7\u00e3o, sem tornar os dados de estado acess\u00edveis ao p\u00fablico. <\/p>\n<\/section><section class=\"wh-section\" aria-labelledby=\"entscheidung-fehlersuche\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"entscheidung-fehlersuche\" style=\"margin:38px 0 18px;color:#172f41;font-size:clamp(24px,1.25rem + 1vw,30px);font-weight:700;line-height:1.3;scroll-margin-top:115px\">Analisar os resultados e selecionar as medidas a tomar<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Um ping do FPM e a p\u00e1gina de estado respondem a quest\u00f5es diferentes. O ping indica se o FPM responde \u00e0 solicita\u00e7\u00e3o em quest\u00e3o; n\u00e3o fornece informa\u00e7\u00f5es equivalentes sobre workers dispon\u00edveis ou solicita\u00e7\u00f5es em espera. Por isso, um ping bem-sucedido, por si s\u00f3, n\u00e3o significa que n\u00e3o haja problemas com a carga do conjunto de aplica\u00e7\u00f5es. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Se os valores do processo n\u00e3o corresponderem aos registos ou a outras observa\u00e7\u00f5es, verifica primeiro a atribui\u00e7\u00e3o do pool, o momento da consulta e a possibilidade de reiniciar o sistema. Em seguida, compare os valores com outros dados de processo e de funcionamento dispon\u00edveis. Trate inicialmente o desvio como um achado em aberto, em vez de deduzir imediatamente uma causa ou uma altera\u00e7\u00e3o de configura\u00e7\u00e3o necess\u00e1ria.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Se as chamadas \u00abFull\u00bb repetidas e as entradas no \u00abSlowlog\u00bb apresentarem os mesmos padr\u00f5es de pedidos demorados, analise primeiro os percursos da aplica\u00e7\u00e3o afetados. Se, pelo contr\u00e1rio, o atraso se originar numa base de dados ou num servi\u00e7o externo, a an\u00e1lise destes pode ser mais eficaz do que alterar o n\u00famero de workers. O que \u00e9 decisivo \u00e9 saber se a medida aborda a causa observada, e n\u00e3o apenas um \u00fanico sintoma.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Uma adapta\u00e7\u00e3o de <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">pm.max_children<\/code> \u00c9 uma op\u00e7\u00e3o a considerar se for comprovado que o pool est\u00e1 a funcionar no seu limite e se a CPU, a mem\u00f3ria e os servi\u00e7os a jusante tiverem capacidade para suportar um maior n\u00edvel de paralelismo. Um maior n\u00famero de workers requer mais recursos e pode aumentar a press\u00e3o sobre esses servi\u00e7os. Por isso, n\u00e3o existe um n\u00famero universal adequado; o modo de funcionamento do gestor de processos deve ser tido em conta na avalia\u00e7\u00e3o. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Ap\u00f3s a implementa\u00e7\u00e3o de uma altera\u00e7\u00e3o aprovada, compare novamente o mesmo conjunto de recursos em condi\u00e7\u00f5es de carga o mais semelhantes poss\u00edvel: a fila de espera, os tempos de resposta, os erros e o consumo de recursos est\u00e3o interligados. Registe tamb\u00e9m se uma medida n\u00e3o trouxer melhorias ou se agravar a carga sobre uma depend\u00eancia. S\u00f3 isto <strong style=\"font-weight:700;color:inherit\">Compara\u00e7\u00e3o antes e depois<\/strong> permite tomar uma decis\u00e3o fundamentada sobre os pr\u00f3ximos passos.<\/p>\n<\/section><section class=\"wh-sources\" style=\"margin:40px 0 0;padding:24px 0 0;border-top:1px solid #dce5e9;color:#596b7b;font-size:14px;line-height:1.65\"><h2 style=\"margin:38px 0 18px;color:#172f41;font-size:clamp(24px,1.25rem + 1vw,30px);font-weight:700;line-height:1.3;scroll-margin-top:115px\">Fontes e estado atual dos conhecimentos<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Estado da pesquisa: <time datetime=\"2026-11-04\">2026-11-04<\/time><\/p><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Data da pesquisa: 4 de novembro de 2026. De acordo com o manual do PHP, o OpenMetrics est\u00e1 dispon\u00edvel a partir do PHP 8.1; verifique a vers\u00e3o espec\u00edfica e o n\u00edvel de seguran\u00e7a da vers\u00e3o do FPM utilizada.<\/p><div class=\"wh-source-urls\"><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\"><span class=\"wh-source-url\" data-no-translation dir=\"ltr\" style=\"overflow-wrap:anywhere;font:12px\/1.6 ui-monospace,monospace;direction:ltr\">https:\/\/www.php.net\/manual\/en\/fpm.status.php<\/span><\/p><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\"><span class=\"wh-source-url\" data-no-translation dir=\"ltr\" style=\"overflow-wrap:anywhere;font:12px\/1.6 ui-monospace,monospace;direction:ltr\">https:\/\/www.php.net\/manual\/de\/install.fpm.configuration.php<\/span><\/p><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\"><span class=\"wh-source-url\" data-no-translation dir=\"ltr\" style=\"overflow-wrap:anywhere;font:12px\/1.6 ui-monospace,monospace;direction:ltr\">https:\/\/www.php.net\/install.fpm.configuration<\/span><\/p><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\"><span class=\"wh-source-url\" data-no-translation dir=\"ltr\" style=\"overflow-wrap:anywhere;font:12px\/1.6 ui-monospace,monospace;direction:ltr\">https:\/\/github.com\/php\/php-src\/security\/advisories\/GHSA-7qg2-v9fj-4mwv<\/span><\/p><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\"><span class=\"wh-source-url\" data-no-translation dir=\"ltr\" style=\"overflow-wrap:anywhere;font:12px\/1.6 ui-monospace,monospace;direction:ltr\">https:\/\/github.com\/php\/php-src\/blob\/php-8.4.21\/sapi\/fpm\/www.conf.in<\/span><\/p><\/div><\/section><\/div>","protected":false},"excerpt":{"rendered":"<p>A p\u00e1gina de estado do PHP-FPM apresenta a carga de trabalho e as filas de um pool. Veja como configurar o acesso de forma segura e definir indicadores para um diagn\u00f3stico fi\u00e1vel.<\/p>","protected":false},"author":1,"featured_media":22089,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[780],"tags":[],"class_list":["post-22078","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administration-anleitungen"],"acf":[],"_links":{"self":[{"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/posts\/22078","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/comments?post=22078"}],"version-history":[{"count":3,"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/posts\/22078\/revisions"}],"predecessor-version":[{"id":22092,"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/posts\/22078\/revisions\/22092"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/media\/22089"}],"wp:attachment":[{"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/media?parent=22078"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/categories?post=22078"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/tags?post=22078"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}