{"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":"server-cpu-benchmark-php-web-hosting","status":"publish","type":"post","link":"https:\/\/webhosting.de\/it\/server-cpu-benchmark-php-webhosting\/","title":{"rendered":"Benchmark della CPU del server per PHP: test su carichi di lavoro reali di web hosting"},"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\">Un singolo punteggio della CPU non \u00e8 sufficiente per valutare le prestazioni di un server per PHP. Combina un punteggio riproducibile <strong style=\"font-weight:700;color:inherit\">Microbenchmark PHP<\/strong> con un test HTTP della tua applicazione: in questo modo puoi confrontare un\u2019operazione di calcolo specifica e, allo stesso tempo, monitorare i tempi di risposta, la velocit\u00e0 effettiva e gli errori sotto carico. Un benchmark di web hosting tiene conto anche del database, della cache e di PHP-FPM. Il suo pool di processi pu\u00f2 limitare le richieste senza che la CPU sia l\u2019unico collo di bottiglia. Sono fondamentali condizioni comparabili e una successiva diagnosi.  <\/p>\n<nav class=\"wh-toc\" aria-label=\"Contenuto di questo articolo\" 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\">Vai direttamente alla sezione<\/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\">Cosa dovrebbe chiarire un benchmark PHP<\/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\">Distinguere i punteggi della CPU dai test applicativi<\/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\">Definire condizioni di prova comparabili<\/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\">Scegliere i carichi di lavoro e gli indicatori adeguati<\/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\">Eseguire il test di staging con 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\">Documentare i livelli di carico e i risultati<\/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\">Analizzare l'FPM e i limiti delle risorse<\/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\">Rilevare la dispersione e gli errori di misurazione<\/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\">Utilizzare i risultati per scegliere il servizio di hosting<\/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\">Cosa dovrebbe chiarire un benchmark PHP<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Un benchmark della CPU in PHP pu\u00f2 innanzitutto mostrare quanto tempo impiega un sistema a eseguire un determinato compito di calcolo. Ci\u00f2 \u00e8 particolarmente utile quando una singola richiesta richiede molto tempo per i calcoli in PHP. Un valore pi\u00f9 elevato <strong style=\"font-weight:700;color:inherit\">Prestazioni del singolo core<\/strong> pu\u00f2 ridurre i tempi di elaborazione di questo tipo di lavoro; tuttavia, dal solo valore della CPU non \u00e8 possibile dedurre il tempo di risposta di un intero sito web.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Una seconda domanda riguarda il comportamento dell'applicazione in caso di accessi simultanei: quante risposte corrette fornisce al secondo e quanto tempo devono attendere gli utenti? A tal fine \u00e8 necessario un <strong style=\"font-weight:700;color:inherit\">Benchmark di web hosting<\/strong> \u00e8 utile tramite HTTP. Esso rileva il percorso attraverso i server web e PHP, nonch\u00e9, se del caso, il database, la cache e la rete. \u00c8 proprio questa combinazione a renderlo orientato alla pratica, ma impedisce di trarre conclusioni isolate riguardo alla CPU.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">La terza questione riguarda il collo di bottiglia. Se, ad esempio, una richiesta \u00e8 in attesa di una query al database, un\u2019operazione di calcolo pi\u00f9 veloce non \u00e8 indicativa del tempo totale richiesto. Anche la cache influisce sul risultato: se una pagina viene fornita completamente prima ancora che PHP entri in azione, la chiamata non misura l\u2019esecuzione dell\u2019applicazione dinamica.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">In caso di carico parallelo, inoltre, il pool PHP-FPM pu\u00f2 limitare il numero di richieste elaborate contemporaneamente. La sua pagina di stato fornisce, tra le altre cose, informazioni sui processi in esecuzione e sulle richieste in attesa. Una coda in crescita \u00e8 quindi un motivo per effettuare una diagnosi, non una prova diretta di una CPU troppo lenta.  <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Per scegliere il servizio di hosting, \u00e8 utile considerare queste domande separatamente: prima l\u2019unit\u00e0 di lavoro comparabile, poi l\u2019applicazione in condizioni di carico basso e elevato e, infine, le risorse che limitano il risultato. Il contributo su spiega come CPU, memoria RAM e spazio di archiviazione interagiscono tra loro in linea di principio: <a href=\"https:\/\/webhosting.de\/it\/webhosting-ad-alte-prestazioni-hardware-cpu-nvme-memoria-prestazioni-turbo-server\/\">Hardware per l'hosting web ad alte prestazioni<\/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\">Distinguere i punteggi della CPU dai test applicativi<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">A <strong style=\"font-weight:700;color:inherit\">Microbenchmark<\/strong> ripete un compito piccolo e ben definito. Con PHPBench \u00e8 possibile, ad esempio, analizzare una funzione di elaborazione dei dati in condizioni prestabilite. Il risultato aiuta a confrontare tale funzione e il suo ambiente di esecuzione; non descrive automaticamente n\u00e9 una richiesta completa n\u00e9 le prestazioni di un CMS o di un negozio 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=\"Immagine simbolica generata dall&#039;intelligenza artificiale che raffigura un processore per server smontato su una base antistatica\" 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\">Immagine simbolica generata dall\u2019IA: un microbenchmark analizza un\u2019attivit\u00e0 sul sistema sottoposto a test, non l\u2019intero stack web.<\/figcaption><\/figure><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Un test dell'applicazione HTTP risponde a un'altra domanda: come reagisce l'applicazione scelta attraverso lo stack web effettivamente utilizzato? Esso tiene conto, ad esempio, di PHP-FPM, del database e delle cache, nella misura in cui questi sono coinvolti nella chiamata sottoposta a test. \u00c8 quindi adatto alla valutazione di un'offerta di hosting, ma non pu\u00f2 dimostrare da solo quale componente sia responsabile di una determinata differenza.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">SPEC CPU integra tali test con carichi di lavoro standardizzati e ad alta intensit\u00e0 di calcolo. SPEC CPU 2026 comprende suite per operazioni intere e in virgola mobile, oltre a risultati relativi a \u201cSpeed\u201d e \u201cRate\u201d. \u201cSpeed\u201d si riferisce al tempo impiegato per eseguire le operazioni, mentre \u201cRate\u201d indica la produttivit\u00e0. Un valore di velocit\u00e0 non \u00e8 automaticamente un valore puramente single-core: SPEC indica un parallelismo aggiuntivo nei test di velocit\u00e0 con numeri interi della suite 2026.  <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Per un confronto SPEC attendibile, \u00e8 necessario che la suite, la metrica e il tipo di risultato <strong style=\"font-weight:700;color:inherit\">base o picco<\/strong> corrispondono. Anche il sistema sottoposto a test completi \u00e8 importante: oltre al processore, anche la memoria, il compilatore e la configurazione, tra le altre cose, influenzano il risultato. I valori pubblicati non rappresentano quindi una caratteristica isolata del modello di CPU e non sostituiscono un test PHP.  <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">SPEC CPU 2017 e CPU 2026 utilizzano suite di test diverse; i loro valori non sono rapportabili sulla stessa scala. Chi effettua una preselezione dovrebbe quindi confrontare il rapporto completo dei risultati anzich\u00e9 una classifica abbreviata. Solo un test applicativo adeguatamente strutturato potr\u00e0 poi dimostrare se un candidato \u00e8 adatto alla propria applicazione.  <\/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\">Definire condizioni di prova comparabili<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Un confronto equo presuppone l\u2019utilizzo della stessa versione dell\u2019applicazione e di un set di dati comparabile. Anche il percorso scelto e la risposta prevista devono coincidere: una pagina di prodotto con numerosi accessi al database risponde a una domanda diversa rispetto a una semplice funzione API. Verifica quindi non solo se arriva una risposta, ma anche se il suo contenuto corrisponde all\u2019attivit\u00e0 prevista.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Annota la versione di PHP e le estensioni, cos\u00ec come il server web, la configurazione di PHP-FPM e il database. Anche il percorso di rete tra il generatore di carico e l'applicazione deve essere riportato nel protocollo. Percorsi diversi o posizioni diverse del database possono alterare il tempo di risposta misurato, anche se l'esecuzione di PHP fosse altrettanto veloce su entrambi i sistemi.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">\u00c8 particolarmente importante separare <strong style=\"font-weight:700;color:inherit\">CLI e PHP-FPM<\/strong>: Un test da riga di comando non utilizza automaticamente la stessa configurazione di esecuzione di una richiesta HTTP. Documentare le impostazioni di OPcache e JIT effettivamente utilizzate in entrambi i contesti. Il loro effetto e le impostazioni predefinite dipendono, tra l\u2019altro, dalla versione di PHP; un\u2019ipotesi generica non \u00e8 sufficiente ai fini del confronto.  <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Il <strong style=\"font-weight:700;color:inherit\">Stato della cache<\/strong> deve essere comparabile. Una cache fredda e una cache gi\u00e0 riscaldata rispondono a domande diverse; entrambe possono essere rilevanti, ma dovrebbero essere valutate separatamente. Lo stesso vale per il volume dei dati e i dati di test: se il carico di lavoro cambia, una differenza di tempo non pu\u00f2 pi\u00f9 essere attribuita con precisione al sistema.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Annotare inoltre il modello della CPU, le vCPU assegnate e i limiti delle risorse visibili, nonch\u00e9 il carico selezionato e il numero di ripetizioni. Se si confrontano intenzionalmente due pacchetti di hosting diversi, il risultato fornisce un\u2019indicazione sulla rispettiva configurazione complessiva. Le differenze relative al processore, ai limiti, al database o alla cache non devono quindi essere interpretate, senza un\u2019ulteriore analisi, come un vantaggio esclusivo della 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\">Scegliere i carichi di lavoro e gli indicatori adeguati<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">La scelta del test dipende dalla domanda a cui vuoi rispondere. Un <strong style=\"font-weight:700;color:inherit\">Microbenchmark<\/strong> analizza un'operazione di calcolo limitata; un test HTTP tiene conto del percorso attraverso lo stack web. I risultati SPEC completano il confronto con test di sistema standardizzati ad alta intensit\u00e0 di CPU, ma non sostituiscono un test della propria applicazione PHP.  <\/p>\n<div class=\"wh-table-scroll\" tabindex=\"0\" role=\"region\" aria-label=\"Tre tipi di test e i loro limiti di affidabilit\u00e0\" 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\">Tre tipi di test e i loro limiti di affidabilit\u00e0<\/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 di test<\/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\">Significato e impiego<\/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\">Confine principale<\/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 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\">Confronta l'esecuzione di una specifica funzione PHP in determinate condizioni.<\/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\">Il risultato \u00e8 valido, in un primo momento, solo per il codice testato e per il periodo di esecuzione.<\/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\">Confronta i sistemi sulla base di compiti standardizzati che richiedono un'elevata potenza di calcolo; la velocit\u00e0 e la frequenza prendono in considerazione aspetti diversi.<\/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\">Non si tratta di un test di web hosting PHP; tenere conto della suite e della configurazione completa del 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\">Test delle applicazioni 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 i tempi di risposta e la larghezza di banda di un endpoint tramite lo stack web selezionato.<\/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\">Il risultato comprende diverse componenti e non isola la CPU.<\/td><\/tr><\/tbody><\/table><\/div><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Per una singola richiesta dinamica, scegli una pagina o un percorso API rappresentativo e inizia con un basso livello di parallelismo. Il percorso deve effettivamente eseguire il codice PHP: una risposta fornita interamente da una cache di pagina a monte sarebbe s\u00ec un test valido della cache, ma non dice molto sull\u2019elaborazione PHP.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Per i visitatori simultanei, devi testare lo stesso endpoint a diversi livelli di carico prestabiliti. In questo modo \u00e8 possibile verificare se i tempi di risposta e il throughput effettivo variano all\u2019aumentare del parallelismo. Nel caso di un percorso che fa un uso intensivo del database, il volume dei dati, la posizione del database e lo stato della cache devono rimanere invariati tra una sessione di confronto e l\u2019altra.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">\u00c8 possibile analizzare in modo isolato, con PHPBench, una funzione dell'applicazione che richiede un elevato carico della CPU, ad esempio un'operazione di elaborazione dati senza accesso alla rete. Un risultato migliore indica inizialmente solo un vantaggio per quella specifica funzione nelle condizioni di esecuzione selezionate. Spetter\u00e0 al test dell'applicazione dimostrare se ci\u00f2 si traduca in un vantaggio tangibile per una pagina 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\">Eseguire il test di staging con wrk<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Esegui i test solo previa espressa autorizzazione in un ambiente di staging isolato. Configura un percorso di lettura rappresentativo e privo di rischi e utilizza dati di test adeguati. Prima di iniziare, definisci un carico massimo e dei criteri di interruzione, quali errori, timeout o un impatto negativo su altri servizi.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Il comando seguente \u00e8 destinato a un terminale su un'istanza di staging locale appositamente configurata. La route preparata deve essere raggiungibile sulla porta 8080; il comando genera infatti un carico di traffico e non \u00e8 destinato a un sistema sconosciuto o in produzione. <\/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>Terminale<\/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\">Copia il codice<\/button><span class=\"wh-copy-status\" aria-live=\"polite\"><\/span><span data-wh-copy-success hidden>Copiato<\/span><span data-wh-copy-fallback hidden>Codice evidenziato \u2013 copiare<\/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\">La chiamata utilizza due thread del generatore di carico, quattro connessioni aperte e una durata di 30 secondi. L'opzione <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> richiede un output dettagliato sulla latenza. In questo caso, quattro connessioni rappresentano un punto di partenza scelto per questo esempio, non una raccomandazione generale relativa al numero di visitatori o alla capacit\u00e0 di un server. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">L'output standard dei percentili di wrk, tuttavia, non include il p95. Per ottenere un'analisi riproducibile del p95, salva il seguente script Lua sul generatore di carico come <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>. I valori p50 e p95 ricavati dalle statistiche di latenza sono espressi in microsecondi; dividendo per 1.000 si ottengono i millisecondi. <\/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>Codice<\/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\">Copia il codice<\/button><span class=\"wh-copy-status\" aria-live=\"polite\"><\/span><span data-wh-copy-success hidden>Copiato<\/span><span data-wh-copy-fallback hidden>Codice evidenziato \u2013 copiare<\/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\">Per eseguire la misurazione vera e propria, avvia lo stesso test di staging locale utilizzando lo script. Il percorso del file si riferisce a un terminale nella directory in cui si trova il file dello script. Anche questa esecuzione genera un carico; documenta i due percentili visualizzati insieme agli errori e alla qualit\u00e0 della risposta verificata separatamente. <\/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>Terminale<\/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\">Copia il codice<\/button><span class=\"wh-copy-status\" aria-live=\"polite\"><\/span><span data-wh-copy-success hidden>Copiato<\/span><span data-wh-copy-fallback hidden>Codice evidenziato \u2013 copiare<\/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\">Organizza una separata <strong style=\"font-weight:700;color:inherit\">Fase di riscaldamento<\/strong> prima di registrare le misurazioni vere e proprie. Ripeti quindi ogni livello di carico specificato, variando, se possibile, l'ordine dei sistemi di confronto. Annota la durata del riscaldamento e se, all'inizio della misurazione, la cache si trovava nello stato desiderato.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Aumenta il numero di connessioni solo entro i limiti concordati e verifica i criteri di interruzione dopo ogni fase. Tieni d\u2019occhio anche il generatore di carico: se \u00e8 esso stesso a pieno carico, pu\u00f2 limitare il risultato. Verifica inoltre i codici di stato e il contenuto delle risposte; una pagina di errore visualizzata rapidamente o una risposta errata non vengono considerate come una richiesta all\u2019applicazione andata a buon fine.<\/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\">Documentare i livelli di carico e i risultati<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Un protocollo di misurazione collega i dati alle condizioni in cui sono stati rilevati. Per ogni esecuzione, annota l'ambiente, il punto finale, lo stato della cache e il livello di carico insieme ai risultati. La tabella seguente utilizza, tra l'altro, i valori forniti da wrk o dalla pagina di stato FPM; dovrai integrare la verifica del contenuto della risposta.  <\/p>\n<div class=\"wh-table-scroll\" tabindex=\"0\" role=\"region\" aria-label=\"Protocollo di misurazione per un ciclo 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\">Protocollo di misurazione per un ciclo 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\">Cosa viene registrato<\/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\">Dintorni<\/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\">Server o pacchetto di hosting, versione di PHP e dell'applicazione, nonch\u00e9 le relative impostazioni di configurazione<\/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\">Carico di lavoro 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\">Percorso, dati di test, verifica delle risposte e stato della 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\">Livello di carico<\/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\">Modello di carico, numero di connessioni o frequenza di richiesta predefinita, durata e fase di riscaldamento<\/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\">Richieste andate a buon fine<\/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\">Risposte corrette al secondo; verificare separatamente i codici di stato e i contenuti<\/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\">Latenza<\/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 per la stessa esecuzione; in wrk, visualizzarle tramite lo script Lua mostrato<\/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\">Errore<\/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\">Messaggi di errore e timeout<\/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\">Note sulle risorse<\/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\">Utilizzo della CPU e, se disponibili, stato del processo FPM e coda<\/td><\/tr><\/tbody><\/table><\/div><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">La mediana indica il valore centrale dei tempi di risposta osservati. Il <strong style=\"font-weight:700;color:inherit\">p95<\/strong> \u00e8 il valore che il 95% delle risposte misurate non supera. Insieme, questi due parametri indicano se, oltre alle richieste tipiche, sta cambiando anche la parte pi\u00f9 lenta della distribuzione. Interpretali sempre tenendo conto degli errori e dei timeout.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Distinguere tra un numero fisso di connessioni e una frequenza di richiesta prestabilita. In un test basato sulle connessioni come quello dell\u2019esempio, le risposte lente possono comportare una riduzione del numero di nuove richieste al secondo generate sulle stesse connessioni. La latenza misurata non descrive quindi automaticamente il comportamento in presenza di una frequenza di arrivo elevata e costante. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Confronta quindi solo punti di carico sufficientemente simili: stesso percorso e stessa verifica della risposta, stati della cache comparabili, nonch\u00e9 stesso modello di carico e stesso livello di carico. Un p95 basso con un basso livello di parallelismo non \u00e8 direttamente comparabile a un p95 in condizioni di sovraccarico. Riporta i risultati di pi\u00f9 esecuzioni e la loro dispersione, anzich\u00e9 fornire come risultato un singolo valore favorevole.<\/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\">Analizzare l'FPM e i limiti delle risorse<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Se, con l'aumentare del carico, aumentano sia la coda che il tempo di risposta p95, vale la pena dare un'occhiata al pool PHP-FPM. Confronta i valori attuali per <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> con il limite massimo configurato <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 tutti i processi consentiti sono attivi, non ce ne sono di liberi e le richieste sono in coda, ci\u00f2 indica una <strong style=\"font-weight:700;color:inherit\">Limite della piscina<\/strong> o a lavoratori che hanno lavorato a lungo, ma non necessariamente a una CPU troppo lenta.  <\/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=\"Illustrazione generata dall&#039;intelligenza artificiale che raffigura dischi in attesa davanti alle aperture limitate di un pool di processi\" 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\">Illustrazione generata dall'IA: i worker occupati possono causare richieste in attesa senza che ci\u00f2 sia attribuibile alla CPU.<\/figcaption><\/figure><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">L'annuncio <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> documenta invece il raggiungimento anticipato del limite di processi sin dall'avvio del pool. Di per s\u00e9, ci\u00f2 non dimostra n\u00e9 l'esistenza di una coda attuale n\u00e9 che tutti i processi presenti siano attualmente occupati. Allo stesso modo, il numero massimo di processi presenti non significa che siano tutti attivi. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">I worker possono anche trovarsi in attesa di query al database o di altri servizi esterni. \u00c8 quindi opportuno confrontare lo stato del pool e il carico della CPU con i tempi di risposta osservati: una coda piena a fronte di un carico della CPU ridotto suggerisce di esaminare innanzitutto i tempi di attesa e l\u2019occupazione dei worker. Aumentare il numero di pool non \u00e8 automaticamente la soluzione, poich\u00e9 anche i processi aggiuntivi richiedono risorse.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">I valori di stato FPM si applicano al rispettivo pool; i contatori vengono azzerati al riavvio. Si raccomanda pertanto di annotare nel protocollo di misurazione il pool e l'ora del riavvio e di confrontare i valori dei contatori solo all'interno di un intervallo di tempo adeguato. Proteggere una pagina di stato attivata da accessi non autorizzati, poich\u00e9 essa rivela informazioni operative relative al pool. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Nel caso dei VPS e dell'hosting condiviso, una vCPU assegnata non corrisponde necessariamente a un core fisico esclusivo. Laddove sono disponibili i dati di cgroup-v2, si pu\u00f2 verificare <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> il limite di larghezza di banda della CPU configurato; <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> pu\u00f2 includere, tra l'altro, contatori per <strong style=\"font-weight:700;color:inherit\">Strozzatura<\/strong> contenuti. Le variazioni di questi contatori durante un ciclo aiutano a individuare un limite effettivo. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Se possibile, controlla anche i cgroup di livello superiore: un limite impostato a quel livello pu\u00f2 influire sul tempo di calcolo disponibile, anche se la configurazione immediatamente visibile sembra generosa. Non tutti i contatori riflettono completamente i limiti ereditati. Se queste informazioni non sono presenti nel pacchetto di hosting, la visibilit\u00e0 limitata rientra espressamente tra i limiti dell\u2019analisi. <\/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\">Rilevare la dispersione e gli errori di misurazione<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Una singola esecuzione pu\u00f2 fornire un quadro casualmente favorevole o sfavorevole. Ripeti gli stessi livelli di carico in momenti prestabiliti e, se possibile, varia l\u2019ordine dei sistemi di confronto. Soprattutto in caso di risorse condivise, le prestazioni disponibili possono variare; pertanto, oltre a riportare un risultato tipico, indica anche il valore osservato <strong style=\"font-weight:700;color:inherit\">dispersione<\/strong> e il numero di corse.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Assicurati che le esecuzioni utilizzino lo stesso stato della cache e lo stesso insieme di dati. Un'esecuzione con la cache delle pagine o del database \"calda\" non \u00e8 direttamente paragonabile a un'esecuzione \"fredda\". Se una risposta apparentemente pi\u00f9 veloce proviene interamente dalla cache delle pagine, ci\u00f2 dice ben poco sulla velocit\u00e0 con cui PHP esegue il lavoro dinamico.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Anche un microbenchmark CLI non \u00e8 un risultato FPM: viene eseguito in un contesto di esecuzione diverso e pu\u00f2 utilizzare impostazioni OPcache o JIT diverse. Documenta separatamente le impostazioni effettivamente attive di entrambi i runtime, invece di dedurle dalla versione di PHP. Un vantaggio riscontrato nel microbenchmark non deve necessariamente manifestarsi nella stessa misura nel test HTTP dell\u2019applicazione. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Conta solo le risposte corrette dal punto di vista del contenuto e andate a buon fine ai fini del throughput effettivo. Altrimenti, le pagine di errore che si caricano rapidamente o i timeout possono distorcere notevolmente il confronto. In caso di scostamenti evidenti, verifica anche i tempi di attesa del database, le modifiche nella cache e i limiti visibili delle risorse, prima di attribuire la differenza esclusivamente alla CPU.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Il sito <strong style=\"font-weight:700;color:inherit\">Comportamento di sincronizzazione<\/strong> pu\u00f2 anch\u2019essa contribuire alla dispersione. La regolazione della frequenza pi\u00f9 appropriata dipende dalla piattaforma e dal carico; un\u2019impostazione generica non sostituisce un confronto effettuato nelle stesse condizioni. Il contributo alla <a href=\"https:\/\/webhosting.de\/it\/governor-della-cpu-prestazioni-del-server-di-hosting\/\">Governor della CPU sui server di hosting<\/a> illustra i nessi per un\u2019analisi approfondita.<\/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\">Utilizzare i risultati per scegliere il servizio di hosting<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Per le richieste che comportano prevalentemente un carico elevato sulla CPU, la <strong style=\"font-weight:700;color:inherit\">Tempo per unit\u00e0 di lavoro<\/strong> un criterio di selezione importante. A tal fine, confronta una funzione PHP rappresentativa con i tempi di esecuzione documentati e verifica poi se il vantaggio si riscontra anche nel percorso HTTP dinamico. Un microbenchmark descrive inizialmente solo il codice testato, non l'intera offerta di hosting. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Se prevedi un numero elevato di visitatori simultanei, la velocit\u00e0 di risposta a una singola richiesta non \u00e8 sufficiente. \u00c8 fondamentale anche verificare quante risposte corrette al secondo il sistema fornisce a un determinato livello di carico e come si comporta la latenza p95 all\u2019interno del margine di errore accettabile. Un sistema con una maggiore capacit\u00e0 di elaborazione non \u00e8 automaticamente migliore per il tuo progetto se le sue risposte lente superano i requisiti.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Nel caso di applicazioni che dipendono da database o dalla cache, attribuisci un peso al <strong style=\"font-weight:700;color:inherit\">Test di funzionamento<\/strong> pi\u00f9 significativo di un punteggio CPU. Un percorso tipico con un set di dati comparabile mostra come funziona l'interazione dello stack nelle condizioni selezionate. Un risultato SPEC pu\u00f2 integrare la preselezione, ma descrive un sistema testato e non sostituisce un test di web hosting PHP. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Prima di effettuare la selezione, stabilisci quali tempi di risposta, tassi di errore e livelli di carico siano accettabili per l\u2019applicazione. Confronta quindi solo i risultati con un modello di carico adeguato e uno stato della cache comparabile. Valuta i diversi pacchetti di hosting come configurazioni complessive; dalla loro differenza non \u00e8 possibile isolare la quota della CPU senza un'ulteriore analisi.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">La decisione si applica allo stato attuale, non a eventuali versioni successive dell'applicazione o a picchi di accesso. Ripeti i test pertinenti dopo modifiche significative a PHP, all'applicazione, al database, alla cache o ai limiti delle risorse. In questo modo potrai verificare se le riserve, che in precedenza erano sufficienti, continuano a esserlo anche nelle nuove condizioni.<\/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\">Fonti e stato dell'arte<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Stato della ricerca: <time datetime=\"2026-11-04\">2026-11-04<\/time><\/p><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Data di ricerca e delle fonti: 4 novembre 2026. SPEC CPU 2017 e CPU 2026 sono suite di test distinte; i risultati si riferiscono al sistema testato e alle condizioni documentate.<\/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>Il punteggio della CPU da solo non indica la velocit\u00e0 di risposta di un'applicazione PHP nell'ambito dell'hosting quotidiano. L'articolo illustra i microbenchmark, i test di carico HTTP e la diagnosi dei limiti di FPM e delle risorse.<\/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\/it\/wp-json\/wp\/v2\/posts\/22208","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webhosting.de\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webhosting.de\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webhosting.de\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/webhosting.de\/it\/wp-json\/wp\/v2\/comments?post=22208"}],"version-history":[{"count":3,"href":"https:\/\/webhosting.de\/it\/wp-json\/wp\/v2\/posts\/22208\/revisions"}],"predecessor-version":[{"id":22214,"href":"https:\/\/webhosting.de\/it\/wp-json\/wp\/v2\/posts\/22208\/revisions\/22214"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webhosting.de\/it\/wp-json\/wp\/v2\/media\/22211"}],"wp:attachment":[{"href":"https:\/\/webhosting.de\/it\/wp-json\/wp\/v2\/media?parent=22208"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webhosting.de\/it\/wp-json\/wp\/v2\/categories?post=22208"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webhosting.de\/it\/wp-json\/wp\/v2\/tags?post=22208"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}