{"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\/en\/server-cpu-benchmark-php-webhosting\/","title":{"rendered":"Server CPU Benchmarking for PHP: Tests for Real-World Web Hosting Workloads"},"content":{"rendered":"<div class=\"wh-article\" data-wh-layout=\"2.1.2\" style=\"width:100%;max-width:820px;margin:0 auto;color:#263b4b;font-family:inherit;font-size:18px;line-height:1.8;text-align:start;overflow-wrap:break-word;box-sizing:border-box\"><p class=\"wh-lead\" style=\"font-size:20px;line-height:1.7;color:#233746;margin:0 0 1.1em\">A single CPU score is not enough to evaluate a server's performance for PHP. Combine a reproducible <strong style=\"font-weight:700;color:inherit\">PHP Microbenchmark<\/strong> With an HTTP test of your application: This allows you to compare a specific computational task while simultaneously monitoring response times, successful throughput, and errors under load. A web hosting benchmark also takes into account the database, cache, and PHP-FPM. Its process pool can limit requests without the CPU being the sole bottleneck. Comparable conditions and a subsequent diagnosis are crucial.  <\/p>\n<nav class=\"wh-toc\" aria-label=\"Contents of this article\" 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\">Go directly to the section<\/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\">What a PHP benchmark is meant to answer<\/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\">Distinguishing Between CPU Scores and Application Tests<\/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\">Establish comparable test conditions<\/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\">Select Appropriate Workloads and Metrics<\/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\">Run a staging test with 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\">Document load levels and results<\/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\">Examine FPM and resource limits<\/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\">Detecting Variation and Measurement Errors<\/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\">Use the Results to Choose a Hosting Provider<\/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\">What a PHP benchmark is meant to answer<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">A PHP CPU benchmark can first show how long a system takes to complete a specific computational task. This is particularly useful when a single request spends a lot of time on PHP calculations. A higher <strong style=\"font-weight:700;color:inherit\">Single-Core Performance<\/strong> can speed up the processing of such tasks; however, the response time of an entire website cannot be determined based on CPU performance alone.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">A second question concerns the application's behavior under concurrent access: How many correct responses does it return per second, and how long do users have to wait? To answer this, a <strong style=\"font-weight:700;color:inherit\">Web Hosting Benchmark<\/strong> via HTTP makes sense. It tracks the path through web servers and PHP, as well as the database, cache, and network, if applicable. It is precisely this combination that makes it practical, but it prevents any isolated conclusions about CPU performance.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">The third question concerns the bottleneck. For example, if a request is waiting for a database query, a faster computation says little about its total execution time. A cache also affects the result: If a page is delivered in its entirety before PHP processes it, the request does not measure the execution of the dynamic application.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Under concurrent load, the PHP-FPM pool can also limit the number of requests processed simultaneously. Its status page provides information on, among other things, active processes and queued requests. A growing queue is therefore a reason to investigate the issue, not direct evidence of a CPU that is running too slowly.  <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">When choosing a hosting provider, it helps to consider these questions separately: first, the comparable unit of work; then, performance under low and high loads; and finally, the resources that limit performance. The article on explains how CPU, RAM, and storage generally interact: <a href=\"https:\/\/webhosting.de\/en\/high-performance-webhosting-hardware-cpu-nvme-memory-performance-turbo-server\/\">Hardware for High-Performance Web Hosting<\/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\">Distinguishing Between CPU Scores and Application Tests<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">A <strong style=\"font-weight:700;color:inherit\">Microbenchmark<\/strong> repeats a small, precisely defined task. With PHPBench, for example, you can analyze a data-processing function under specified conditions. The result helps you compare this function and its runtime environment; it does not automatically describe a complete request or the performance of a CMS or online store. <\/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=\"AI-generated stock image of a removed server processor on an antistatic mat\" 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\">AI-generated stock image: A microbenchmark evaluates a specific task on the system being tested, not the entire web stack.<\/figcaption><\/figure><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">An HTTP application test answers a different question: How does the selected application respond via the web stack that is actually in use? It takes into account, for example, PHP-FPM, the database, and caches, to the extent that they are involved in the request being tested. This makes it suitable for evaluating a hosting service, but it cannot, on its own, determine which component is responsible for a particular difference.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">SPEC CPU supplements such tests with standardized, computationally intensive workloads. SPEC CPU 2026 includes integer and floating-point suites, as well as \"Speed\" and \"Rate\" results. \"Speed\" refers to the time taken to complete tasks, while \"Rate\" refers to throughput. A \u201cSpeed\u201d value is not automatically a pure single-core value: SPEC notes additional parallelism in the integer \u201cSpeed\u201d tests of the 2026 suite.  <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">For a reliable SPEC comparison, the suite, metric, and result type must <strong style=\"font-weight:700;color:inherit\">base or peak<\/strong> match. The fully tested system is also important: In addition to the processor, factors such as memory, the compiler, and the configuration influence the result. Published values are therefore not an isolated characteristic of the CPU model and are no substitute for a PHP test.  <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">SPEC CPU 2017 and CPU 2026 use different test suites; their scores are not on the same scale. Anyone making a preliminary selection should therefore compare the complete results report rather than an abridged ranking. Only a properly designed application test can then determine whether a candidate is suitable for your specific application.  <\/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\">Establish comparable test conditions<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">A fair comparison starts with the same application version and a comparable dataset. The chosen route and its expected response must also match: A product page with many database accesses answers a different question than a simple API function. Therefore, don\u2019t just check whether a response is received, but also whether its content matches the intended task.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Record the PHP version and extensions, as well as the web server, PHP-FPM configuration, and database. The network path between the load generator and the application should also be included in the log. Different paths or database locations can affect the measured response time, even if PHP execution were equally fast on both systems.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">It is particularly important to distinguish between <strong style=\"font-weight:700;color:inherit\">CLI and PHP-FPM<\/strong>: A command-line test does not automatically use the same runtime configuration as an HTTP request. Document the OPcache and JIT settings actually used in both contexts. Their effects and default values depend, among other things, on the PHP version; a blanket assumption is not sufficient for the comparison.  <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">The <strong style=\"font-weight:700;color:inherit\">cache status<\/strong> must be comparable. A cold cache and a cache that has already been warmed up answer different questions; both can be relevant, but should be evaluated separately. The same applies to data volume and test data: If the scope of work changes, a difference in time can no longer be accurately attributed to the system.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Also note the CPU model, assigned vCPUs, and visible resource limits, as well as the selected load and the number of iterations. If two different hosting packages are intentionally compared, the result provides insight into their respective overall configurations. Differences in the processor, limits, database, or caching should not be interpreted solely as a CPU advantage without further analysis.<\/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\">Select Appropriate Workloads and Metrics<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">The choice of test depends on the question you want to answer. A <strong style=\"font-weight:700;color:inherit\">Microbenchmark<\/strong> examines a limited computational task; an HTTP test takes into account the path through the web stack. SPEC results supplement the comparison with standardized CPU-intensive system tests, but do not replace testing your own PHP application.  <\/p>\n<div class=\"wh-table-scroll\" tabindex=\"0\" role=\"region\" aria-label=\"Three Types of Tests and Their Limitations\" 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\">Three Types of Tests and Their Limitations<\/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\">Test Type<\/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\">Statement and Application<\/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\">Most Important Border<\/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\">PHP Microbenchmark<\/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\">Compares the execution of a specific PHP function under specified conditions.<\/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\">For now, the result applies only to the tested code and the runtime.<\/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\">Compares systems based on standardized computationally intensive tasks; speed and rate examine different aspects.<\/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\">This is not a PHP web hosting test; please note the suite and complete system configuration.<\/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\">HTTP Application Testing<\/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\">Tests an endpoint's response times and throughput using the selected web stack.<\/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\">The result consists of several components and does not isolate the CPU.<\/td><\/tr><\/tbody><\/table><\/div><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">For a single dynamic request, choose a representative page or API route and start with a low level of parallelism. The route must actually execute PHP: While a response delivered entirely from an upstream page cache would be a valid cache test, it says little about PHP processing.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">For concurrent visitors, you test the same endpoint at several specified load levels. This allows you to determine whether response times and successful throughput change as concurrency increases. For a database-intensive route, the data set, database location, and cache state should remain the same between comparison runs.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">You can use PHPBench to analyze a CPU-intensive function from the application in isolation\u2014for example, data processing without network access. A better result initially indicates only an advantage for that specific function under the selected runtime conditions. Whether this translates to a noticeable advantage for a complete page must be determined by application testing. <\/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\">Run a staging test with wrk<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Test only in an isolated staging environment with explicit permission. Set up a safe, representative read route and use appropriate test data. Before starting, define a maximum load and termination criteria, such as errors, timeouts, or disruption to other services.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">The following command is intended for a terminal on a local staging instance set up specifically for this purpose. The prepared route must be accessible on port 8080; the command actually generates traffic and is not intended for an unknown or production system. <\/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\">Copy code<\/button><span class=\"wh-copy-status\" aria-live=\"polite\"><\/span><span data-wh-copy-success hidden>Copied<\/span><span data-wh-copy-fallback hidden>Code highlighted\u2014please copy<\/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\">The call uses two load generator threads, four open connections, and a runtime of 30 seconds. The option <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> Requests a detailed latency report. Four connections are a starting point chosen for this example; they are not a general recommendation regarding visitor numbers or server capacity. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">However, the standard percentile output from wrk does not include a p95 value. To ensure a reproducible p95 analysis, save the following Lua script on the load generator as <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>. The p50 and p95 values from the latency statistics are given in microseconds; dividing by 1,000 yields milliseconds. <\/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>Code<\/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\">Copy code<\/button><span class=\"wh-copy-status\" aria-live=\"polite\"><\/span><span data-wh-copy-success hidden>Copied<\/span><span data-wh-copy-fallback hidden>Code highlighted\u2014please copy<\/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\">To perform the actual measurement, run the same local staging test using the script. The file path assumes you are in the directory containing the script file. This command also generates load; document the two percentiles displayed, along with any errors and the response quality, which was tested separately. <\/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\">Copy code<\/button><span class=\"wh-copy-status\" aria-live=\"polite\"><\/span><span data-wh-copy-success hidden>Copied<\/span><span data-wh-copy-fallback hidden>Code highlighted\u2014please copy<\/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\">Plan a separate <strong style=\"font-weight:700;color:inherit\">Warm-up phase<\/strong> before you begin recording the actual measurement runs. Then repeat each specified load level and, if possible, vary the order of the comparison systems. Note how long the warm-up took and whether the cache was in the desired state at the start of the measurement.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Increase the number of connections only within the agreed-upon limits, and check the termination criteria after each step. Also monitor the load generator: If it is operating at full capacity, it may limit the result. Additionally, check status codes and response content; an error page that loads quickly or an incorrect response does not count as a successful application request.<\/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\">Document load levels and results<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">A measurement log links the numbers to the conditions under which they were generated. For each run, record the environment, endpoint, cache state, and load level along with the results. The following template uses, among other things, metrics provided by wrk or the FPM status page; you must supplement it with a review of the response content.  <\/p>\n<div class=\"wh-table-scroll\" tabindex=\"0\" role=\"region\" aria-label=\"Test Report for an HTTP Run\" 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\">Test Report for an HTTP Run<\/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\">Field<\/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\">What Is Recorded<\/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\">Surroundings<\/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 or hosting package, PHP and application versions, and relevant configuration<\/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\">Workload and 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\">Route, Test Data, Response Verification, and Cache Status<\/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\">Load stage<\/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\">Load model, connection count, or specified query rate, duration, and warm-up phase<\/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\">Successful Inquiries<\/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\">Correct responses per second; check status codes and content separately<\/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\">Latency<\/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\">Median and p95 for the same run; output via the Lua script shown when running wrk<\/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\">Error<\/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\">Error Responses and Timeouts<\/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\">Resource References<\/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\">CPU utilization and, if available, FPM process status and queue<\/td><\/tr><\/tbody><\/table><\/div><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">The median describes the middle value of the observed response times. The <strong style=\"font-weight:700;color:inherit\">p95<\/strong> is the value that 95 percent of the measured responses do not exceed. Together, these two metrics show whether, in addition to a typical request, the slower portion of the distribution is also changing. Always interpret them in conjunction with errors and timeouts.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Distinguish between a fixed number of connections and a specified request rate. In a connection-based test like the one in the example, slow responses can result in fewer new requests per second being generated over the same connections. The measured latency does not necessarily reflect the behavior under a consistently high arrival rate. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Therefore, compare only sufficiently similar load points: the same route and response validation, comparable cache states, and the same load model and load level. A low p95 with low parallelism is not directly comparable to a p95 under overload conditions. Report multiple runs and their variance, rather than presenting a single favorable value as the result.<\/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\">Examine FPM and resource limits<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">If both the queue and the p95 response time increase as the load increases, it's worth taking a look at the PHP-FPM pool. Compare the current values for <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> and <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> with the configured upper limit <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>. If all permitted processes are active, none are free, and requests are queued, this indicates a <strong style=\"font-weight:700;color:inherit\">Pool Boundary<\/strong> or workers that have been busy for a long time, but not necessarily a CPU that's too slow.  <\/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=\"AI-generated illustration of discs waiting in front of the limited openings of a process pool\" 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\">AI-generated illustration: Busy workers can cause pending requests without the CPU being the root cause.<\/figcaption><\/figure><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">The Ad <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> On the other hand, it indicates that the process limit was reached earlier, starting from the time the pool was launched. On its own, this does not prove that there is currently a queue, nor that all existing processes are currently busy. Similarly, the maximum number of existing processes does not mean that all of them are active. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Workers may also be waiting for database queries or other external services. Therefore, compare the pool status and CPU utilization with the observed response times: A full queue with low CPU utilization suggests that you should first investigate wait times and worker utilization. A larger pool size is not automatically the solution, because additional processes also consume resources.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">The FPM status values apply to the respective pool; counters are reset upon a restart. Therefore, record the pool and the restart time in the measurement log, and compare counter readings only within an appropriate time frame. Protect an activated status page from unauthorized access, as it discloses operational information about the pool. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">With VPS and shared hosting, an assigned vCPU does not necessarily correspond to an exclusive physical core. Where cgroup-v2 data is available, it shows <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> the configured CPU bandwidth limit; <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> can include, among other things, counters for <strong style=\"font-weight:700;color:inherit\">Throttling<\/strong> included. Changes to these counters during a run help diagnose an effective limit. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">If possible, also check parent cgroups: A limit set there can affect the available compute time, even if the immediately visible configuration appears generous. Not every counter fully reflects inherited limits. If this information is missing from the hosting package, the limited visibility is explicitly considered a limitation of the analysis. <\/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\">Detecting Variation and Measurement Errors<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">A single run may yield a randomly favorable or unfavorable result. Repeat the same load levels at documented time points and, if possible, vary the order of the systems being compared. Especially when resources are shared, available performance can fluctuate; therefore, in addition to a typical result, also report the observed <strong style=\"font-weight:700;color:inherit\">dispersion<\/strong> and the number of runs.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Make sure that the test runs use the same cache state and the same dataset. A run with a warm page or database cache is not directly comparable to a cold run. If a seemingly faster response comes entirely from a page cache, it says little about how fast PHP performs the dynamic processing.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">A CLI microbenchmark is also not an FPM result: It runs in a different execution context and may use different OPcache or JIT settings. Document the actual active settings for both runtimes separately, rather than inferring them from the PHP version. An advantage observed in the microtest may not be reflected to the same extent in the application\u2019s HTTP test. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Count only content-accurate, successful responses toward the successful throughput. Otherwise, fast error pages or timeouts can significantly skew a comparison. If you notice significant deviations, also check database wait times, changes in the cache, and visible resource limits before attributing the difference solely to the CPU.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">The <strong style=\"font-weight:700;color:inherit\">Timing Behavior<\/strong> can also contribute to dispersion. The appropriate frequency control depends on the platform and load; a one-size-fits-all setting is no substitute for a comparison under the same conditions. The contribution to the <a href=\"https:\/\/webhosting.de\/en\/cpu-governor-hosting-server-performance\/\">CPU Governors on Hosting Servers<\/a> explains the relationships involved for a more in-depth analysis.<\/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\">Use the Results to Choose a Hosting Provider<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">For requests that are primarily CPU-intensive, the <strong style=\"font-weight:700;color:inherit\">Time per work unit<\/strong> an important selection criterion. To do this, compare a representative PHP function under documented runtime conditions and then check whether the advantage is also evident with the dynamic HTTP route. A microbenchmark initially describes only the code being tested, not the entire hosting service. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">If you expect a large number of concurrent visitors, a fast single request isn't enough. It's also crucial to consider how many correct responses per second the system delivers at a specified load level and how the p95 latency behaves within the acceptable error range. A system with higher throughput isn\u2019t automatically better for your project if its slow responses exceed the requirements.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">For database- or cache-dependent applications, weight the <strong style=\"font-weight:700;color:inherit\">Application Test<\/strong> more than just a CPU score. A typical route with comparable data demonstrates how the stack interacts under the selected conditions. A SPEC result can supplement the initial selection, but it describes a tested system and is no substitute for a PHP web hosting test. <\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Before making your selection, determine which response times, error rates, and load levels are acceptable for the application. Then, compare only results with a matching load model and comparable cache state. Evaluate different hosting packages as complete configurations; the CPU\u2019s contribution cannot be isolated from the differences between them without further diagnosis.<\/p>\n<p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">This decision applies to the current state as measured, not to any future application versions or traffic spikes. Repeat the relevant tests after making significant changes to PHP, the application, the database, the cache, or resource limits. This will help you determine whether the reserves that were previously sufficient still exist under the new conditions.<\/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\">Sources and Current State of Knowledge<\/h2><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Status of the research: <time datetime=\"2026-11-04\">2026-11-04<\/time><\/p><p style=\"margin:0 0 1.1em;font-size:inherit;line-height:inherit\">Research and source information as of November 4, 2026. SPEC CPU 2017 and CPU 2026 are separate test suites; results apply specifically to the system tested and the documented conditions.<\/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>A CPU score alone does not indicate how quickly a PHP application responds in everyday hosting operations. This article explains microbenchmarks, HTTP load tests, and how to diagnose FPM and resource limits.<\/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\/en\/wp-json\/wp\/v2\/posts\/22208","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webhosting.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webhosting.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webhosting.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/webhosting.de\/en\/wp-json\/wp\/v2\/comments?post=22208"}],"version-history":[{"count":3,"href":"https:\/\/webhosting.de\/en\/wp-json\/wp\/v2\/posts\/22208\/revisions"}],"predecessor-version":[{"id":22214,"href":"https:\/\/webhosting.de\/en\/wp-json\/wp\/v2\/posts\/22208\/revisions\/22214"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webhosting.de\/en\/wp-json\/wp\/v2\/media\/22211"}],"wp:attachment":[{"href":"https:\/\/webhosting.de\/en\/wp-json\/wp\/v2\/media?parent=22208"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webhosting.de\/en\/wp-json\/wp\/v2\/categories?post=22208"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webhosting.de\/en\/wp-json\/wp\/v2\/tags?post=22208"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}