{"id":22208,"date":"2026-11-07T15:00:00","date_gmt":"2026-11-07T14:00:00","guid":{"rendered":"https:\/\/webhosting.de\/?p=22208"},"modified":"2026-11-05T07:23:24","modified_gmt":"2026-11-05T06:23:24","slug":"servidor-cpu-benchmark-php-alojamento-web","status":"publish","type":"post","link":"https:\/\/webhosting.de\/pt\/server-cpu-benchmark-php-webhosting\/","title":{"rendered":"Avalia\u00e7\u00e3o do desempenho da CPU do servidor para PHP: testes para cargas de trabalho reais de alojamento web"},"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\">Uma \u00fanica pontua\u00e7\u00e3o da CPU n\u00e3o \u00e9 suficiente para avaliar o desempenho de um servidor para PHP. Combina um resultado reproduz\u00edvel <strong style=\"font-weight:700;color:inherit\">Microbenchmark em PHP<\/strong> com um teste HTTP da tua aplica\u00e7\u00e3o: assim, podes comparar uma tarefa de c\u00e1lculo espec\u00edfica e, ao mesmo tempo, observar os tempos de resposta, o d\u00e9bito bem-sucedido e os erros sob carga. Um benchmark de alojamento web inclui tamb\u00e9m a base de dados, a cache e o PHP-FPM. O seu conjunto de processos pode limitar as solicita\u00e7\u00f5es sem que a CPU seja, por si s\u00f3, o gargalo. O essencial \u00e9 que as condi\u00e7\u00f5es sejam compar\u00e1veis e que se realize um diagn\u00f3stico posterior.  <\/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=\"#messziele\" 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 um benchmark de PHP deve revelar<\/a><\/div>\n<div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#testarten\" 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\">Distinguir pontua\u00e7\u00f5es da CPU e testes de aplica\u00e7\u00f5es<\/a><\/div>\n<div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#vergleichsrahmen\" 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\">Definir condi\u00e7\u00f5es de teste compar\u00e1veis<\/a><\/div>\n<div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#testmatrix\" 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\">Selecionar cargas de trabalho e indicadores adequados<\/a><\/div>\n<div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#praxisablauf\" 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\">Realizar um teste de staging com o wrk<\/a><\/div>\n<div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#messprotokoll\" 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\">Registar os n\u00edveis de carga e os resultados<\/a><\/div>\n<div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#engpassanalyse\" 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 o FPM e os limites de recursos<\/a><\/div>\n<div class=\"wh-toc-item\" style=\"display:block;min-width:0;margin:0;padding:0\"><a class=\"wh-toc-link\" href=\"#streuung\" 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\">Detetar a dispers\u00e3o e os erros de medi\u00e7\u00e3o<\/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\" 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\">Utilizar os resultados para escolher o servi\u00e7o de alojamento<\/a><\/div>\n<\/div><\/nav><section class=\"wh-section\" aria-labelledby=\"messziele\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"messziele\" 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 um benchmark de PHP deve revelar<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Um benchmark de CPU em PHP pode, em primeiro lugar, mostrar quanto tempo um sistema demora a executar uma tarefa de c\u00e1lculo espec\u00edfica. Isto \u00e9 particularmente \u00fatil quando uma \u00fanica solicita\u00e7\u00e3o demora muito tempo a ser processada devido a c\u00e1lculos em PHP. Um valor mais elevado <strong style=\"font-weight:700;color:inherit\">Desempenho de um \u00fanico n\u00facleo<\/strong> pode reduzir o tempo de processamento desse tipo de trabalho; no entanto, n\u00e3o \u00e9 poss\u00edvel deduzir o tempo de resposta de um site inteiro apenas a partir de um valor da CPU.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Uma segunda quest\u00e3o diz respeito ao comportamento da aplica\u00e7\u00e3o em caso de acessos simult\u00e2neos: quantas respostas corretas fornece por segundo e quanto tempo os utilizadores t\u00eam de esperar? Para isso, \u00e9 necess\u00e1rio um <strong style=\"font-weight:700;color:inherit\">Comparativo de alojamento web<\/strong> atrav\u00e9s de HTTP faz sentido. Este mede o percurso atrav\u00e9s do servidor Web e do PHP, bem como, se for o caso, da base de dados, da cache e da rede. \u00c9 precisamente esta combina\u00e7\u00e3o que o torna pr\u00e1tico, mas impede uma avalia\u00e7\u00e3o isolada do desempenho da CPU.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">A terceira quest\u00e3o diz respeito ao gargalo. Se, por exemplo, um pedido estiver \u00e0 espera de uma consulta \u00e0 base de dados, uma opera\u00e7\u00e3o de c\u00e1lculo mais r\u00e1pida pouco diz sobre o seu tempo total. Tamb\u00e9m a cache altera o resultado: se uma p\u00e1gina j\u00e1 for entregue na \u00edntegra antes do PHP, a chamada n\u00e3o mede a execu\u00e7\u00e3o da aplica\u00e7\u00e3o din\u00e2mica.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Al\u00e9m disso, sob carga paralela, o pool do PHP-FPM pode limitar o n\u00famero de pedidos processados em simult\u00e2neo. A sua p\u00e1gina de estado fornece, entre outras coisas, informa\u00e7\u00f5es sobre os processos em execu\u00e7\u00e3o e os pedidos em espera. Uma fila que vai aumentando \u00e9, por isso, um motivo para se proceder a um diagn\u00f3stico, e n\u00e3o uma prova direta de que a CPU est\u00e1 demasiado lenta.  <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Para escolher um servi\u00e7o de alojamento, \u00e9 \u00fatil analisar estas quest\u00f5es separadamente: primeiro, a unidade de trabalho compar\u00e1vel; depois, o funcionamento em condi\u00e7\u00f5es de carga baixa e elevada; e, por fim, os recursos que limitam o resultado. A forma como a CPU, a mem\u00f3ria RAM e o armazenamento interagem entre si \u00e9 explicada no artigo sobre <a href=\"https:\/\/webhosting.de\/pt\/alojamento-web-de-alto-desempenho-hardware-cpu-nvme-memoria-desempenho-servidor-turbo\/\">Hardware para alojamento web de alto desempenho<\/a>.<\/p>\n<\/section><section class=\"wh-section\" aria-labelledby=\"testarten\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"testarten\" 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\">Distinguir pontua\u00e7\u00f5es da CPU e testes de aplica\u00e7\u00f5es<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">A <strong style=\"font-weight:700;color:inherit\">Microbenchmark<\/strong> repete uma tarefa pequena e bem definida. Com o PHPBench, por exemplo, \u00e9 poss\u00edvel analisar uma fun\u00e7\u00e3o de processamento de dados em condi\u00e7\u00f5es espec\u00edficas. O resultado ajuda a comparar essa fun\u00e7\u00e3o com o seu ambiente de execu\u00e7\u00e3o; n\u00e3o descreve automaticamente uma consulta completa nem o desempenho de um CMS ou de uma loja online. <\/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\/php-mikrobenchmark-serverprozessor-11b350b5-detail1-da3b45bcb4-1024x683.webp\" class=\"wp-image-22212\" alt=\"Imagem ilustrativa gerada por IA de um processador de servidor removido, sobre uma base antiest\u00e1tica\" decoding=\"async\" srcset=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/php-mikrobenchmark-serverprozessor-11b350b5-detail1-da3b45bcb4-1024x683.webp 1024w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/php-mikrobenchmark-serverprozessor-11b350b5-detail1-da3b45bcb4-300x200.webp 300w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/php-mikrobenchmark-serverprozessor-11b350b5-detail1-da3b45bcb4-768x512.webp 768w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/php-mikrobenchmark-serverprozessor-11b350b5-detail1-da3b45bcb4-18x12.webp 18w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/php-mikrobenchmark-serverprozessor-11b350b5-detail1-da3b45bcb4.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: Um microbenchmark analisa uma tarefa no sistema em teste, e n\u00e3o toda a pilha web.<\/figcaption><\/figure><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Um teste de aplica\u00e7\u00e3o HTTP responde a outra quest\u00e3o: como \u00e9 que a aplica\u00e7\u00e3o selecionada reage atrav\u00e9s da pilha web efetivamente utilizada? Tem em conta, por exemplo, o PHP-FPM, a base de dados e as caches, na medida em que estejam envolvidos na chamada testada. Assim, \u00e9 adequado para avaliar uma oferta de alojamento, mas n\u00e3o consegue, por si s\u00f3, determinar qual o componente respons\u00e1vel por uma diferen\u00e7a.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">O SPEC CPU complementa esses testes com cargas de trabalho padronizadas e que exigem grande capacidade de c\u00e1lculo. O SPEC CPU 2026 inclui conjuntos de testes de inteiros e de ponto flutuante, bem como resultados de \u00abSpeed\u00bb e \u00abRate\u00bb. \u00abSpeed\u00bb refere-se ao tempo necess\u00e1rio para realizar as tarefas, enquanto \u00abRate\u00bb se refere ao d\u00e9bito. Um valor de velocidade n\u00e3o \u00e9 automaticamente um valor exclusivamente de um \u00fanico n\u00facleo: a SPEC indica a exist\u00eancia de paralelismo adicional nos testes de velocidade de n\u00fameros inteiros da su\u00edte 2026.  <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Para uma compara\u00e7\u00e3o SPEC fi\u00e1vel, a su\u00edte, a m\u00e9trica e o tipo de resultado t\u00eam de <strong style=\"font-weight:700;color:inherit\">base ou pico<\/strong> correspondem. Da mesma forma, o sistema testado na \u00edntegra \u00e9 importante: para al\u00e9m do processador, a mem\u00f3ria, o compilador e a configura\u00e7\u00e3o, entre outros fatores, influenciam o resultado. Os valores publicados n\u00e3o s\u00e3o, portanto, uma caracter\u00edstica isolada do modelo de CPU e n\u00e3o substituem um teste PHP.  <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">O SPEC CPU 2017 e o CPU 2026 utilizam conjuntos de testes diferentes; os seus valores n\u00e3o se enquadram na mesma escala. Quem estiver a fazer uma pr\u00e9-sele\u00e7\u00e3o deve, por isso, comparar o relat\u00f3rio completo dos resultados em vez de uma tabela de classifica\u00e7\u00e3o resumida. S\u00f3 um teste de aplica\u00e7\u00e3o adequadamente concebido poder\u00e1, posteriormente, revelar se um candidato \u00e9 adequado para a sua pr\u00f3pria aplica\u00e7\u00e3o.  <\/p>\n<\/section><section class=\"wh-section\" aria-labelledby=\"vergleichsrahmen\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"vergleichsrahmen\" 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\">Definir condi\u00e7\u00f5es de teste compar\u00e1veis<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Uma compara\u00e7\u00e3o justa come\u00e7a com a mesma vers\u00e3o da aplica\u00e7\u00e3o e um conjunto de dados compar\u00e1vel. A rota escolhida e a resposta esperada tamb\u00e9m t\u00eam de coincidir: uma p\u00e1gina de produto com muitos acessos \u00e0 base de dados responde a uma quest\u00e3o diferente daquela a que uma fun\u00e7\u00e3o API simples responde. Por isso, n\u00e3o verifique apenas se chega uma resposta, mas tamb\u00e9m se o seu conte\u00fado corresponde \u00e0 tarefa prevista.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Registe a vers\u00e3o do PHP e as extens\u00f5es, bem como o servidor web, a configura\u00e7\u00e3o do PHP-FPM e a base de dados. O percurso de rede entre o gerador de carga e a aplica\u00e7\u00e3o tamb\u00e9m deve constar do registo. Percursos diferentes ou localiza\u00e7\u00f5es distintas da base de dados podem alterar o tempo de resposta medido, mesmo que a execu\u00e7\u00e3o do PHP tenha a mesma velocidade em ambos os sistemas.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">\u00c9 particularmente importante a separa\u00e7\u00e3o entre <strong style=\"font-weight:700;color:inherit\">CLI e PHP-FPM<\/strong>: Um teste na linha de comandos n\u00e3o analisa automaticamente a mesma configura\u00e7\u00e3o de tempo de execu\u00e7\u00e3o que uma solicita\u00e7\u00e3o HTTP. Documente as defini\u00e7\u00f5es do OPcache e do JIT efetivamente utilizadas em ambos os contextos. O seu efeito e as defini\u00e7\u00f5es predefinidas dependem, entre outros fatores, da vers\u00e3o do PHP; uma suposi\u00e7\u00e3o gen\u00e9rica n\u00e3o \u00e9 suficiente para a compara\u00e7\u00e3o.  <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">O <strong style=\"font-weight:700;color:inherit\">Estado da cache<\/strong> tem de ser compar\u00e1vel. Uma cache fria e uma cache j\u00e1 aquecida respondem a quest\u00f5es diferentes; ambas podem ser relevantes, mas devem ser avaliadas separadamente. O mesmo se aplica ao volume de dados e aos dados de teste: se o \u00e2mbito do trabalho se alterar, uma diferen\u00e7a de tempo j\u00e1 n\u00e3o pode ser atribu\u00edda com precis\u00e3o ao sistema.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Anote tamb\u00e9m o modelo da CPU, as vCPUs atribu\u00eddas e os limites de recursos vis\u00edveis, bem como a carga selecionada e o n\u00famero de repeti\u00e7\u00f5es. Se forem comparados deliberadamente dois pacotes de alojamento diferentes, o resultado fornece uma indica\u00e7\u00e3o sobre a respetiva configura\u00e7\u00e3o global. As diferen\u00e7as ao n\u00edvel do processador, dos limites, da base de dados ou do cache n\u00e3o devem, por si s\u00f3 e sem um diagn\u00f3stico mais aprofundado, ser interpretadas como uma vantagem da CPU.<\/p>\n<\/section><section class=\"wh-section\" aria-labelledby=\"testmatrix\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"testmatrix\" 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\">Selecionar cargas de trabalho e indicadores adequados<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">A escolha do teste depende da pergunta a que pretendes responder. Um <strong style=\"font-weight:700;color:inherit\">Microbenchmark<\/strong> analisa uma tarefa de c\u00e1lculo limitada; um teste HTTP inclui o percurso pela pilha da Web. Os resultados do SPEC complementam a compara\u00e7\u00e3o com testes de sistema padronizados que exigem um uso intensivo da CPU, mas n\u00e3o substituem um teste da pr\u00f3pria aplica\u00e7\u00e3o PHP.  <\/p>\n<div class=\"wh-table-scroll\" tabindex=\"0\" role=\"region\" aria-label=\"Tr\u00eas tipos de testes e os seus limites de precis\u00e3o\" 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\">Tr\u00eas tipos de testes e os seus limites de precis\u00e3o<\/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\">Tipo de teste<\/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\">Mensagem e aplica\u00e7\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\">Fronteira mais importante<\/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\">Microbenchmark em PHP<\/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\">Compara a execu\u00e7\u00e3o de uma fun\u00e7\u00e3o PHP espec\u00edfica em condi\u00e7\u00f5es definidas.<\/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 resultado aplica-se, numa primeira fase, apenas ao c\u00f3digo testado e ao per\u00edodo de execu\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:#f4f7f9;color:#294252\">SPEC CPU<\/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\">Compara sistemas com base em tarefas padronizadas que exigem um grande volume de c\u00e1lculos; a velocidade e a taxa t\u00eam em conta aspetos diferentes.<\/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\">N\u00e3o se trata de um teste de alojamento web em PHP; tenha em conta o pacote e a configura\u00e7\u00e3o completa do sistema.<\/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\">Teste de aplica\u00e7\u00f5es HTTP<\/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 os tempos de resposta e o d\u00e9bito de um terminal atrav\u00e9s da pilha web selecionada.<\/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 resultado inclui v\u00e1rios componentes e n\u00e3o isola a CPU.<\/td><\/tr><\/tbody><\/table><\/div><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Para uma \u00fanica solicita\u00e7\u00e3o din\u00e2mica, escolhe uma p\u00e1gina ou rota API representativa e come\u00e7a com um baixo n\u00edvel de paralelismo. A rota tem de executar efetivamente o PHP: uma resposta fornecida inteiramente a partir de uma cache de p\u00e1ginas a montante seria, embora, um teste de cache v\u00e1lido, mas pouco revela sobre o processamento do PHP.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">No caso de visitantes simult\u00e2neos, deve testar o mesmo ponto final em v\u00e1rios n\u00edveis de carga definidos. Desta forma, \u00e9 poss\u00edvel verificar se os tempos de resposta e a taxa de transfer\u00eancia bem-sucedida se alteram \u00e0 medida que o paralelismo aumenta. Numa rota com utiliza\u00e7\u00e3o intensiva da base de dados, o conjunto de dados, a localiza\u00e7\u00e3o da base de dados e o estado da cache devem permanecer inalterados entre as execu\u00e7\u00f5es comparativas.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Podes analisar isoladamente, com o PHPBench, uma fun\u00e7\u00e3o da aplica\u00e7\u00e3o que exija um grande uso da CPU, como, por exemplo, um processamento de dados sem acesso \u00e0 rede. Um resultado melhor indica, numa primeira fase, apenas uma vantagem para essa fun\u00e7\u00e3o nas condi\u00e7\u00f5es de execu\u00e7\u00e3o selecionadas. O teste da aplica\u00e7\u00e3o ter\u00e1 de demonstrar se isso se traduz numa vantagem percet\u00edvel para uma p\u00e1gina completa. <\/p>\n<\/section><section class=\"wh-section\" aria-labelledby=\"praxisablauf\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"praxisablauf\" 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\">Realizar um teste de staging com o wrk<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Realize os testes apenas com autoriza\u00e7\u00e3o expressa, num ambiente de teste isolado. Configure um percurso de leitura seguro e representativo e utilize dados de teste adequados. Antes de iniciar, defina uma carga m\u00e1xima, bem como crit\u00e9rios de interrup\u00e7\u00e3o, tais como erros que possam ocorrer, tempos de espera ou impacto noutros servi\u00e7os.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">O comando seguinte destina-se a um terminal numa inst\u00e2ncia de staging local expressamente configurada para o efeito. A rota preparada deve estar acess\u00edvel na porta 8080; o comando gera, de facto, carga e n\u00e3o se destina a um sistema desconhecido ou em produ\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\">wrk -t2 -c4 -d30s --latency http:\/\/127.0.0.1:8080\/<\/code><\/pre><\/div><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">A chamada utiliza dois threads do gerador de carga, quatro liga\u00e7\u00f5es abertas e um tempo de execu\u00e7\u00e3o de 30 segundos. A op\u00e7\u00e3o <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">--latency<\/code> solicita uma sa\u00edda detalhada sobre a lat\u00eancia. Quatro liga\u00e7\u00f5es constituem um ponto de partida escolhido para este exemplo, n\u00e3o sendo uma recomenda\u00e7\u00e3o geral quanto ao n\u00famero de visitantes ou \u00e0 capacidade de um servidor. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">No entanto, a sa\u00edda normal de percentis do wrk n\u00e3o inclui o p95. Para uma an\u00e1lise reproduz\u00edvel do p95, guarde o seguinte script Lua no gerador de carga como <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">percentiles.lua<\/code>. Os valores p50 e p95 da estat\u00edstica de lat\u00eancia s\u00e3o expressos em microssegundos; quando divididos por 1 000, resultam em milissegundos. <\/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-lua\" style=\"font:inherit;color:inherit;background:transparent;padding:0;border:0;white-space:inherit\">function done(summary, latency, requests)\n  io.write(string.format(&quot;p50: %.0f us\\n&quot;, latency:percentile(50.0)))\n  io.write(string.format(&quot;p95: %.0f us\\n&quot;, latency:percentile(95.0)))\nend<\/code><\/pre><\/div><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Para a medi\u00e7\u00e3o propriamente dita, executa o mesmo teste de prepara\u00e7\u00e3o local utilizando o script. O caminho do ficheiro refere-se a um terminal no diret\u00f3rio onde se encontra o ficheiro do script. Esta execu\u00e7\u00e3o tamb\u00e9m gera carga; regista os dois percentis apresentados, juntamente com os erros e a qualidade da resposta verificada separadamente. <\/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\">wrk -t2 -c4 -d30s --latency -s percentiles.lua http:\/\/127.0.0.1:8080\/<\/code><\/pre><\/div><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Planeia uma separa\u00e7\u00e3o <strong style=\"font-weight:700;color:inherit\">Fase de aquecimento<\/strong> antes de registar as medi\u00e7\u00f5es propriamente ditas. Em seguida, repete cada n\u00edvel de carga definido e, na medida do poss\u00edvel, varia a ordem dos sistemas de compara\u00e7\u00e3o. Regista a dura\u00e7\u00e3o do aquecimento e se a cache se encontrava no estado desejado no in\u00edcio da medi\u00e7\u00e3o.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Aumente o n\u00famero de liga\u00e7\u00f5es apenas dentro dos limites acordados e verifique os crit\u00e9rios de interrup\u00e7\u00e3o ap\u00f3s cada fase. Observe tamb\u00e9m o gerador de carga: se este estiver sobrecarregado, pode limitar o resultado. Verifique adicionalmente os c\u00f3digos de estado e o conte\u00fado das respostas; uma p\u00e1gina de erro apresentada rapidamente ou uma resposta incorreta n\u00e3o conta como uma solicita\u00e7\u00e3o de aplica\u00e7\u00e3o bem-sucedida.<\/p>\n<\/section><section class=\"wh-section\" aria-labelledby=\"messprotokoll\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"messprotokoll\" 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\">Registar os n\u00edveis de carga e os resultados<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Um registo de medi\u00e7\u00e3o associa os valores \u00e0s condi\u00e7\u00f5es em que foram obtidos. Para cada execu\u00e7\u00e3o, registe o ambiente, o ponto final, o estado da cache e o n\u00edvel de carga, juntamente com os resultados. O quadro seguinte utiliza, entre outros, valores fornecidos pelo wrk ou pela p\u00e1gina de estado do FPM; ter\u00e1s de complementar a verifica\u00e7\u00e3o do conte\u00fado da resposta.  <\/p>\n<div class=\"wh-table-scroll\" tabindex=\"0\" role=\"region\" aria-label=\"Relat\u00f3rio de medi\u00e7\u00e3o para uma execu\u00e7\u00e3o HTTP\" 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\">Relat\u00f3rio de medi\u00e7\u00e3o para uma execu\u00e7\u00e3o HTTP<\/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\">Campo<\/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\">O que \u00e9 registado<\/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\">Arredores<\/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\">Servidor ou pacote de alojamento, vers\u00e3o do PHP e da aplica\u00e7\u00e3o, bem como a configura\u00e7\u00e3o relevante<\/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\">Carga de trabalho e cache<\/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\">Rota, dados de teste, verifica\u00e7\u00e3o de respostas e estado da cache<\/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\">N\u00edvel de carga<\/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\">Modelo de carga, n\u00famero de liga\u00e7\u00f5es ou taxa de pedidos predefinida, dura\u00e7\u00e3o e fase de aquecimento<\/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\">Pedidos bem-sucedidos<\/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\">Respostas corretas por segundo; verificar separadamente os c\u00f3digos de estado e os conte\u00fados<\/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\">Lat\u00eancia<\/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\">Mediana e p95 para a mesma execu\u00e7\u00e3o; no wrk, apresentar atrav\u00e9s do script Lua apresentado<\/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\">Erro<\/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\">Respostas de erro e tempos limite<\/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\">Refer\u00eancias de recursos<\/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\">Utiliza\u00e7\u00e3o da CPU e, na medida do poss\u00edvel, estado do processo FPM e fila<\/td><\/tr><\/tbody><\/table><\/div><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">A mediana descreve o ponto m\u00e9dio dos tempos de resposta observados. O <strong style=\"font-weight:700;color:inherit\">p95<\/strong> \u00e9 o valor que 95 por cento das respostas medidas n\u00e3o ultrapassam. Em conjunto, estes dois indicadores mostram se, para al\u00e9m de uma consulta t\u00edpica, tamb\u00e9m se verifica uma altera\u00e7\u00e3o na parte mais lenta da distribui\u00e7\u00e3o. Interprete-os sempre em conjunto com os erros e os timeouts.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Distinga entre um n\u00famero fixo de liga\u00e7\u00f5es e uma taxa de pedidos predefinida. Num teste baseado em liga\u00e7\u00f5es, como o do exemplo, respostas lentas podem fazer com que sejam gerados menos pedidos novos por segundo atrav\u00e9s das mesmas liga\u00e7\u00f5es. A lat\u00eancia medida n\u00e3o descreve, por si s\u00f3, o comportamento numa taxa de chegada que se mant\u00e9m elevada. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Por isso, compare apenas pontos de carga suficientemente semelhantes: o mesmo percurso e verifica\u00e7\u00e3o de resposta, estados de cache compar\u00e1veis, bem como o mesmo modelo de carga e o mesmo n\u00edvel de carga. Um p95 baixo com baixo paralelismo n\u00e3o \u00e9 diretamente compar\u00e1vel a um p95 em condi\u00e7\u00f5es de sobrecarga. Relate v\u00e1rios ciclos de teste e a sua dispers\u00e3o, em vez de apresentar um \u00fanico valor favor\u00e1vel como resultado.<\/p>\n<\/section><section class=\"wh-section\" aria-labelledby=\"engpassanalyse\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"engpassanalyse\" 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 o FPM e os limites de recursos<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Se, \u00e0 medida que a carga aumenta, tanto a fila como o tempo de resposta p95 aumentarem, vale a pena dar uma olhadela no pool do PHP-FPM. Compara os valores atuais para <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">active processes<\/code>, <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">idle processes<\/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\">listen queue<\/code> com o limite m\u00e1ximo configurado <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>. Se todos os processos permitidos estiverem ativos, n\u00e3o houver nenhum livre e houver pedidos em espera, isso indica uma <strong style=\"font-weight:700;color:inherit\">Limite da piscina<\/strong> ou a trabalhadores que est\u00e3o ocupados h\u00e1 muito tempo, mas n\u00e3o significa automaticamente que o processador esteja demasiado lento.  <\/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-pool-warteschlange-11b350b5-detail2-c8c070d7a6-1024x683.webp\" class=\"wp-image-22213\" alt=\"Ilustra\u00e7\u00e3o gerada por IA de discos \u00e0 espera diante de aberturas limitadas de um conjunto de processos\" decoding=\"async\" srcset=\"https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/php-fpm-pool-warteschlange-11b350b5-detail2-c8c070d7a6-1024x683.webp 1024w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/php-fpm-pool-warteschlange-11b350b5-detail2-c8c070d7a6-300x200.webp 300w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/php-fpm-pool-warteschlange-11b350b5-detail2-c8c070d7a6-768x512.webp 768w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/php-fpm-pool-warteschlange-11b350b5-detail2-c8c070d7a6-18x12.webp 18w, https:\/\/webhosting.de\/wp-content\/uploads\/2026\/11\/php-fpm-pool-warteschlange-11b350b5-detail2-c8c070d7a6.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: Os \u00abworkers\u00bb ocupados podem causar pedidos em espera, sem que se possa provar que a CPU \u00e9 a causa.<\/figcaption><\/figure><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">O an\u00fancio <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> Por outro lado, documenta que o limite de processos foi atingido mais cedo desde o in\u00edcio do pool. Por si s\u00f3, isso n\u00e3o comprova nem a exist\u00eancia de uma fila atual, nem que todos os processos existentes estejam ocupados neste momento. Da mesma forma, o n\u00famero m\u00e1ximo de processos existentes n\u00e3o significa que todos estejam ativos. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Os workers tamb\u00e9m podem estar \u00e0 espera de consultas \u00e0 base de dados ou de outros servi\u00e7os externos. Por isso, compare o estado do pool e a utiliza\u00e7\u00e3o da CPU com os tempos de resposta observados: uma fila cheia com baixa utiliza\u00e7\u00e3o da CPU sugere que se deve, em primeiro lugar, analisar os tempos de espera e a ocupa\u00e7\u00e3o dos workers. Um n\u00famero maior de pools n\u00e3o \u00e9 automaticamente a solu\u00e7\u00e3o, uma vez que os processos adicionais tamb\u00e9m necessitam de recursos.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Os valores de estado do FPM aplicam-se ao respetivo conjunto; os contadores s\u00e3o reiniciados aquando de um rein\u00edcio. Por isso, registe o pool e a hora do rein\u00edcio no registo de medi\u00e7\u00e3o e compare os valores dos contadores apenas dentro de um per\u00edodo de tempo adequado. Proteja uma p\u00e1gina de estado ativada contra o acesso n\u00e3o autorizado, uma vez que esta revela informa\u00e7\u00f5es operacionais sobre o pool. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">No caso dos VPS e da hospedagem partilhada, uma vCPU atribu\u00edda n\u00e3o corresponde necessariamente a um n\u00facleo f\u00edsico exclusivo. Nos casos em que os dados do cgroup-v2 est\u00e3o dispon\u00edveis, o comando mostra <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">cpu.max<\/code> o limite de largura de banda da CPU configurado; <code data-no-translation style=\"font:600 .87em\/1.5 ui-monospace,monospace;color:#235063;background:#edf3f5;border-radius:4px;padding:.1em .3em\">cpu.stat<\/code> pode incluir, entre outros, contadores para <strong style=\"font-weight:700;color:inherit\">Estrangulamento<\/strong> inclu\u00eddos. As altera\u00e7\u00f5es nestes contadores durante uma execu\u00e7\u00e3o ajudam a diagnosticar uma limita\u00e7\u00e3o efetiva. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Se poss\u00edvel, verifica tamb\u00e9m os cgroups de n\u00edvel superior: um limite definido nesses pode influenciar o tempo de computa\u00e7\u00e3o dispon\u00edvel, mesmo que a configura\u00e7\u00e3o imediatamente vis\u00edvel pare\u00e7a generosa. Nem todos os contadores refletem na \u00edntegra os limites herdados. Se estas informa\u00e7\u00f5es n\u00e3o estiverem inclu\u00eddas no pacote de alojamento, a visibilidade limitada constitui expressamente uma das limita\u00e7\u00f5es da an\u00e1lise. <\/p>\n<\/section><section class=\"wh-section\" aria-labelledby=\"streuung\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"streuung\" 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\">Detetar a dispers\u00e3o e os erros de medi\u00e7\u00e3o<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Uma \u00fanica execu\u00e7\u00e3o pode apresentar um quadro aleatoriamente favor\u00e1vel ou desfavor\u00e1vel. Repita os mesmos n\u00edveis de carga em momentos documentados e, sempre que poss\u00edvel, varie a ordem dos sistemas de compara\u00e7\u00e3o. Especialmente no caso de recursos partilhados, o desempenho dispon\u00edvel pode variar; por isso, al\u00e9m de um resultado t\u00edpico, relate tamb\u00e9m o observado <strong style=\"font-weight:700;color:inherit\">dispers\u00e3o<\/strong> e o n\u00famero de corridas.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Certifica-te de que as repeti\u00e7\u00f5es utilizam o mesmo estado da cache e o mesmo conjunto de dados. Uma execu\u00e7\u00e3o com a cache de p\u00e1ginas ou de base de dados \u00abaquecida\u00bb n\u00e3o \u00e9 diretamente compar\u00e1vel a uma execu\u00e7\u00e3o \u00abfria\u00bb. Se uma resposta aparentemente mais r\u00e1pida provier inteiramente da cache de p\u00e1ginas, isso pouco diz sobre a rapidez com que o PHP realiza o trabalho din\u00e2mico.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Um microbenchmark da CLI tamb\u00e9m n\u00e3o constitui um resultado do FPM: \u00e9 executado num contexto de execu\u00e7\u00e3o diferente e pode utilizar outras configura\u00e7\u00f5es do OPcache ou do JIT. Documenta separadamente as configura\u00e7\u00f5es efetivamente ativas de ambos os ambientes de execu\u00e7\u00e3o, em vez de as deduzir a partir da vers\u00e3o do PHP. Uma vantagem observada no microteste n\u00e3o tem necessariamente de se refletir na mesma magnitude no teste HTTP da aplica\u00e7\u00e3o. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Considera apenas as respostas corretas em termos de conte\u00fado e bem-sucedidas na taxa de processamento. Caso contr\u00e1rio, p\u00e1ginas de erro r\u00e1pidas ou tempos de espera esgotados podem distorcer significativamente uma compara\u00e7\u00e3o. Em caso de desvios not\u00e1veis, verifica tamb\u00e9m os tempos de espera da base de dados, as altera\u00e7\u00f5es na cache e os limites vis\u00edveis de recursos, antes de atribuir a diferen\u00e7a exclusivamente \u00e0 CPU.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">O <strong style=\"font-weight:700;color:inherit\">Comportamento de sincroniza\u00e7\u00e3o<\/strong> tamb\u00e9m pode contribuir para a dispers\u00e3o. A regula\u00e7\u00e3o de frequ\u00eancia mais adequada depende da plataforma e da carga; uma configura\u00e7\u00e3o gen\u00e9rica n\u00e3o substitui uma compara\u00e7\u00e3o realizada nas mesmas condi\u00e7\u00f5es. A contribui\u00e7\u00e3o para o <a href=\"https:\/\/webhosting.de\/pt\/desempenho-do-servidor-de-alojamento-com-regulador-da-cpu\/\">Regulador da CPU em servidores de alojamento<\/a> explica os contextos para uma an\u00e1lise aprofundada.<\/p>\n<\/section><section class=\"wh-section\" aria-labelledby=\"entscheidung\" style=\"display:block;margin:0 0 36px;min-width:0\"><h2 id=\"entscheidung\" 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\">Utilizar os resultados para escolher o servi\u00e7o de alojamento<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Para consultas que envolvem principalmente carga de processamento da CPU, a <strong style=\"font-weight:700;color:inherit\">Tempo por unidade de trabalho<\/strong> um crit\u00e9rio de sele\u00e7\u00e3o importante. Para tal, compara uma fun\u00e7\u00e3o PHP representativa com o tempo de execu\u00e7\u00e3o documentado e verifica, em seguida, se a vantagem tamb\u00e9m se verifica na rota HTTP din\u00e2mica. Um microbenchmark descreve, numa primeira fase, apenas o c\u00f3digo testado, e n\u00e3o toda a oferta de alojamento. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Se esperares muitos visitantes simult\u00e2neos, a consulta \u00fanica r\u00e1pida n\u00e3o \u00e9 suficiente. \u00c9 tamb\u00e9m fundamental saber quantas respostas corretas por segundo o sistema fornece num n\u00edvel de carga definido e como se comporta a lat\u00eancia p95 dentro do intervalo de erro aceit\u00e1vel. Um sistema com maior d\u00e9bito n\u00e3o \u00e9 automaticamente melhor para o teu projeto se as suas respostas lentas excederem os requisitos.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">No caso de aplica\u00e7\u00f5es que dependem de bases de dados ou de cache, atribui uma pondera\u00e7\u00e3o ao <strong style=\"font-weight:700;color:inherit\">Teste de aplica\u00e7\u00e3o<\/strong> \u00e9 mais revelador do que uma pontua\u00e7\u00e3o da CPU. Um percurso t\u00edpico com um conjunto de dados compar\u00e1vel mostra como funciona a intera\u00e7\u00e3o da pilha nas condi\u00e7\u00f5es selecionadas. Um resultado SPEC pode complementar a pr\u00e9-sele\u00e7\u00e3o, mas descreve um sistema testado e n\u00e3o substitui um teste de alojamento web em PHP. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Antes de efetuar a sele\u00e7\u00e3o, define quais os tempos de resposta, taxas de erro e n\u00edveis de carga que s\u00e3o aceit\u00e1veis para a aplica\u00e7\u00e3o. Em seguida, compare apenas resultados com um modelo de carga adequado e um estado de cache compar\u00e1vel. Avalie os diferentes pacotes de alojamento como configura\u00e7\u00f5es globais; a partir da diferen\u00e7a entre eles, n\u00e3o \u00e9 poss\u00edvel isolar a percentagem da CPU sem um diagn\u00f3stico mais aprofundado.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">A decis\u00e3o aplica-se \u00e0 situa\u00e7\u00e3o avaliada, n\u00e3o a todas as vers\u00f5es posteriores da aplica\u00e7\u00e3o ou picos de tr\u00e1fego. Repete os testes relevantes ap\u00f3s altera\u00e7\u00f5es significativas no PHP, na aplica\u00e7\u00e3o, na base de dados, na cache ou nos limites de recursos. Desta forma, poder\u00e1s verificar se as reservas que antes eram suficientes continuam a existir nas novas condi\u00e7\u00f5es.<\/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 e das fontes: 4 de novembro de 2026. O SPEC CPU 2017 e o CPU 2026 s\u00e3o conjuntos de testes distintos; os resultados aplicam-se, em cada caso, ao sistema testado e \u00e0s condi\u00e7\u00f5es documentadas.<\/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:\/\/phpbench.github.io\/phpbench\/<\/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:\/\/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:\/\/spec.org\/cpu2026\/<\/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.spec.org\/cpu2026\/results\/<\/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:\/\/spec.org\/cpu2017\/Docs\/runrules.html<\/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\/en\/opcache.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:\/\/github.com\/wg\/wrk\/blob\/master\/README.md<\/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.kernel.org\/doc\/html\/latest\/admin-guide\/cgroup-v2.html?highlight=freezer<\/span><\/p><\/div><\/section><\/div>","protected":false},"excerpt":{"rendered":"<p>Um resultado de CPU, por si s\u00f3, n\u00e3o revela a rapidez com que uma aplica\u00e7\u00e3o PHP responde no dia-a-dia da hospedagem. O artigo explica os microbenchmarks, os testes de carga HTTP e o diagn\u00f3stico dos limites do FPM e dos recursos.<\/p>","protected":false},"author":1,"featured_media":22211,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[676],"tags":[],"class_list":["post-22208","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-server_vm"],"acf":[],"_links":{"self":[{"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/posts\/22208","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=22208"}],"version-history":[{"count":3,"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/posts\/22208\/revisions"}],"predecessor-version":[{"id":22214,"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/posts\/22208\/revisions\/22214"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/media\/22211"}],"wp:attachment":[{"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/media?parent=22208"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/categories?post=22208"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webhosting.de\/pt\/wp-json\/wp\/v2\/tags?post=22208"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}