{"id":2497,"date":"2026-03-11T16:31:14","date_gmt":"2026-03-11T15:31:14","guid":{"rendered":"https:\/\/www.panelalpha.com\/blog\/?p=2497"},"modified":"2026-03-12T07:11:27","modified_gmt":"2026-03-12T06:11:27","slug":"panelalpha-engine-v1-0-web-server-performance-comparison","status":"publish","type":"post","link":"https:\/\/www.panelalpha.com\/blog\/panelalpha-engine-v1-0-web-server-performance-comparison\/","title":{"rendered":"PanelAlpha Engine v1.0 &#8211; Web Server Performance Comparison"},"content":{"rendered":"\n<p><a href=\"https:\/\/www.panelalpha.com\/blog\/panelalpha-engine-v1-0-performance-test\/\">Since version 1.0<\/a>, <strong>PanelAlpha Engine<\/strong> supports multiple web server configurations, giving hosting providers flexibility in how WordPress environments are deployed and optimized. Instead of forcing a single stack, the Engine allows operators to choose between different web servers depending on their performance, cost, and operational preferences.<\/p>\n\n\n\n<p>To understand how these configurations behave in practice, we ran a comprehensive set of performance benchmarks across <strong>all supported web server variants<\/strong> on PanelAlpha Engine.<\/p>\n\n\n\n<p><strong>TL;DR The results are clear:<\/strong><\/p>\n\n\n\n<ul>\n<li><strong>LiteSpeed Enterprise and OpenLiteSpeed significantly outperform other configurations<\/strong> by a wide margin.<\/li>\n\n\n\n<li>OpenLiteSpeed delivers outstanding performance, in some metrics <strong>even surpassing the Enterprise version<\/strong>, which honestly surprised us.<\/li>\n\n\n\n<li>Caching plays a role, but not as much as you might expect. The benchmarks show that the <strong>web server itself is the dominant performance factor<\/strong>.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Test prerequisites and methodology<\/h2>\n\n\n\n<p>All benchmarks were executed using a consistent setup to ensure meaningful comparisons between configurations.<\/p>\n\n\n\n<ul>\n<li>The same WordPress installation and content were used across all platforms<\/li>\n\n\n\n<li>No CDN or external caching layers<\/li>\n\n\n\n<li>Default panel configurations were used for all platforms<\/li>\n\n\n\n<li>In the case of PanelAlpha Engine, the only variable changed was the web server<br>(LiteSpeed Enterprise, OpenLiteSpeed or the Nginx + Apache stack \u2013 which was the only option for BETA version)<\/li>\n\n\n\n<li>Load testing tool: k6 with scenario:\n<ul>\n<li>20 concurrent virtual users<\/li>\n\n\n\n<li>~20 seconds per test<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Requests distributed across the site using sitemap URLs<\/li>\n\n\n\n<li>0 percent HTTP errors in all test runs<\/li>\n\n\n\n<li>All tests were performed on the same server plan on <a href=\"https:\/\/www.hetzner.com\/cloud\/\">Hetzner<\/a>:\u00a0<strong>CPX23, Shared vCPU x86, 2vCPUS, 4 GB RAM, 40GB SSD<\/strong><\/li>\n<\/ul>\n\n\n\n<p>All raw benchmark outputs and detailed logs are publicly available here:<br><strong><a href=\"https:\/\/www.panelalpha.com\/PanelAlpha%20Engine%20v1.0%20RAW%20Test%20Results.pdf\">[link to raw results PDF]<\/a><\/strong><\/p>\n\n\n\n<p>The goal of these tests was to observe real behavior under concurrent load, not to tune individual configurations for benchmark optimization.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">1. Average response time (ms)<\/h2>\n\n\n\n<p>Average response time represents how long it takes for a request to be fully processed and responded to. It is one of the most visible indicators of perceived performance.<\/p>\n\n\n\n<p><strong>Results:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Web server configuration<\/th><th>Average response time (ms)<\/th><\/tr><\/thead><tbody><tr><td><strong>LiteSpeed Enterprise (non-cache)<\/strong><\/td><td><strong>~54<\/strong><\/td><\/tr><tr><td>LiteSpeed Enterprise + Redis<\/td><td>~63<\/td><\/tr><tr><td>LiteSpeed Enterprise + LSCache<\/td><td>~54<\/td><\/tr><tr><td>LiteSpeed Enterprise + LSCache + Redis<\/td><td>~55<\/td><\/tr><tr><td><strong>OpenLiteSpeed (non-cache)<\/strong><\/td><td><strong>~54<\/strong><\/td><\/tr><tr><td>OpenLiteSpeed + Redis<\/td><td>~53<\/td><\/tr><tr><td>OpenLiteSpeed + LSCache<\/td><td>~55<\/td><\/tr><tr><td>OpenLiteSpeed + LSCache + Redis<\/td><td>~53<\/td><\/tr><tr><td>Nginx (non-cache)<\/td><td>~288<\/td><\/tr><tr><td>Nginx + Redis<\/td><td>~273<\/td><\/tr><tr><td>Apache (non-cache)<\/td><td>~324<\/td><\/tr><tr><td>Apache + Redis<\/td><td>~308<\/td><\/tr><tr><td>Nginx + Apache (default, non-cache)<\/td><td>~365<\/td><\/tr><tr><td>Nginx + Apache + Redis<\/td><td>~340<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\"><em>Average response time (ms)<\/em><\/figcaption><\/figure>\n\n\n\n<p>LiteSpeed Enterprise and OpenLiteSpeed operate in a completely different performance class, delivering responses in tens of milliseconds. Nginx and Apache-based stacks are several times slower on the same Engine.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">2. Average requests per second<\/h2>\n\n\n\n<p>Requests per second indicates how many concurrent requests the system can handle before becoming constrained.<\/p>\n\n\n\n<p><strong>Results:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Web server configuration<\/th><th>Requests per second<\/th><\/tr><\/thead><tbody><tr><td><strong>LiteSpeed Enterprise (non-cache)<\/strong><\/td><td><strong>~346<\/strong><\/td><\/tr><tr><td>LiteSpeed Enterprise + Redis<\/td><td>~292<\/td><\/tr><tr><td>LiteSpeed Enterprise + LSCache<\/td><td>~325<\/td><\/tr><tr><td>LiteSpeed Enterprise + LSCache + Redis<\/td><td>~332<\/td><\/tr><tr><td><strong>OpenLiteSpeed (non-cache)<\/strong><\/td><td><strong>~339<\/strong><\/td><\/tr><tr><td>OpenLiteSpeed + Redis<\/td><td>~350<\/td><\/tr><tr><td>OpenLiteSpeed + LSCache<\/td><td>~334<\/td><\/tr><tr><td>OpenLiteSpeed + LSCache + Redis<\/td><td>~352<\/td><\/tr><tr><td>Nginx (non-cache)<\/td><td>~65<\/td><\/tr><tr><td>Nginx + Redis<\/td><td>~69<\/td><\/tr><tr><td>Apache (non-cache)<\/td><td>~58<\/td><\/tr><tr><td>Apache + Redis<\/td><td>~61<\/td><\/tr><tr><td>Nginx + Apache (default, non-cache)<\/td><td>~52<\/td><\/tr><tr><td>Nginx + Apache + Redis<\/td><td>~55<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\"><em>Average requests per second<\/em><\/figcaption><\/figure>\n\n\n\n<p>LiteSpeed-based configurations handle <strong>5\u20137x more traffic<\/strong> than Nginx or Apache on the same Engine. Redis provides a modest improvement, but the web server choice is the primary driver of throughput.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">3. Time to First Byte<\/h2>\n\n\n\n<p>TTFB measures how quickly the server starts responding after receiving a request.<\/p>\n\n\n\n<p><strong>Results:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Web server configuration<\/th><th>Average TTFB (s)<\/th><\/tr><\/thead><tbody><tr><td><strong>LiteSpeed Enterprise (non-cache)<\/strong><\/td><td><strong>~0.34<\/strong><\/td><\/tr><tr><td>LiteSpeed Enterprise + Redis<\/td><td>~0.33<\/td><\/tr><tr><td>LiteSpeed Enterprise + LSCache<\/td><td>~0.23<\/td><\/tr><tr><td>LiteSpeed Enterprise + LSCache + Redis<\/td><td>~0.22<\/td><\/tr><tr><td><strong>OpenLiteSpeed (non-cache)<\/strong><\/td><td><strong>~0.20<\/strong><\/td><\/tr><tr><td>OpenLiteSpeed + Redis<\/td><td>~0.20<\/td><\/tr><tr><td>OpenLiteSpeed + LSCache<\/td><td>~0.20<\/td><\/tr><tr><td>OpenLiteSpeed + LSCache + Redis<\/td><td>~0.19<\/td><\/tr><tr><td>Nginx (non-cache)<\/td><td>~0.25<\/td><\/tr><tr><td>Nginx + Redis<\/td><td>~0.23<\/td><\/tr><tr><td>Apache (non-cache)<\/td><td>~0.25<\/td><\/tr><tr><td>Apache + Redis<\/td><td>~0.24<\/td><\/tr><tr><td>Nginx + Apache (default)<\/td><td>~0.26<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\"><em>Time to First Byte<\/em><\/figcaption><\/figure>\n\n\n\n<p>TTFB remains low across all Engine configurations, but OpenLiteSpeed consistently deliver the fastest initial response times. Surprisingly, it&#8217;s LiteSpeed Enterprise didn&#8217;t <\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">4. 90th percentile response time<\/h2>\n\n\n\n<p>The 90th percentile highlights how the system behaves under peak load conditions rather than average cases.<\/p>\n\n\n\n<p><strong>Results:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Web server configuration<\/th><th>p90 response time (ms)<\/th><\/tr><\/thead><tbody><tr><td><strong>LiteSpeed Enterprise (non-cache)<\/strong><\/td><td><strong>~58<\/strong><\/td><\/tr><tr><td>LiteSpeed Enterprise + Redis<\/td><td>~63<\/td><\/tr><tr><td>LiteSpeed Enterprise + LSCache<\/td><td>~58<\/td><\/tr><tr><td>LiteSpeed Enterprise + LSCache + Redis<\/td><td>~63<\/td><\/tr><tr><td><strong>OpenLiteSpeed (non-cache)<\/strong><\/td><td><strong>~59<\/strong><\/td><\/tr><tr><td>OpenLiteSpeed + Redis<\/td><td>~58<\/td><\/tr><tr><td>OpenLiteSpeed + LSCache<\/td><td>~61<\/td><\/tr><tr><td>OpenLiteSpeed + LSCache + Redis<\/td><td>~56<\/td><\/tr><tr><td>Nginx (non-cache)<\/td><td>~329<\/td><\/tr><tr><td>Nginx + Redis<\/td><td>~308<\/td><\/tr><tr><td>Apache (non-cache)<\/td><td>~366<\/td><\/tr><tr><td>Apache + Redis<\/td><td>~354<\/td><\/tr><tr><td>Nginx + Apache (default)<\/td><td>~410<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\"><em>90th percentile response time<\/em><\/figcaption><\/figure>\n\n\n\n<p>LiteSpeed-based stacks maintain low and predictable latency even under load. Nginx and Apache stacks exhibit significantly higher tail latency.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">5. Average request duration<\/h2>\n\n\n\n<p>Average request duration reflects how long server resources are occupied while processing requests.<\/p>\n\n\n\n<p><strong>Results:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Web server configuration<\/th><th>Avg request duration (ms)<\/th><\/tr><\/thead><tbody><tr><td><strong>LiteSpeed Enterprise (non-cache)<\/strong><\/td><td><strong>~54<\/strong><\/td><\/tr><tr><td>LiteSpeed Enterprise + Redis<\/td><td>~63<\/td><\/tr><tr><td>LiteSpeed Enterprise + LSCache<\/td><td>~54<\/td><\/tr><tr><td>LiteSpeed Enterprise + LSCache + Redis<\/td><td>~55<\/td><\/tr><tr><td><strong>OpenLiteSpeed (non-cache)<\/strong><\/td><td><strong>~54<\/strong><\/td><\/tr><tr><td>OpenLiteSpeed + Redis<\/td><td>~53<\/td><\/tr><tr><td>OpenLiteSpeed + LSCache<\/td><td>~55<\/td><\/tr><tr><td>OpenLiteSpeed + LSCache + Redis<\/td><td>~53<\/td><\/tr><tr><td>Nginx (non-cache)<\/td><td>~288<\/td><\/tr><tr><td>Nginx + Redis<\/td><td>~273<\/td><\/tr><tr><td>Apache (non-cache)<\/td><td>~324<\/td><\/tr><tr><td>Apache + Redis<\/td><td>~308<\/td><\/tr><tr><td>Nginx + Apache (default)<\/td><td>~365<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\"><em>Average request duration<\/em><\/figcaption><\/figure>\n\n\n\n<p>LiteSpeed-based configurations free server resources significantly faster, enabling higher concurrency and better stability under sustained traffic.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Summary and recommendations<\/h2>\n\n\n\n<p>These benchmarks show that <strong>web server selection is the single most important performance decision<\/strong> when deploying PanelAlpha Engine.<\/p>\n\n\n\n<p>LiteSpeed Enterprise and OpenLiteSpeed consistently deliver:<\/p>\n\n\n\n<ul>\n<li>The lowest latency<\/li>\n\n\n\n<li>The highest throughput<\/li>\n\n\n\n<li>The most predictable behavior under load<\/li>\n<\/ul>\n\n\n\n<p>Redis and LSCache provide incremental improvements, but they do not change the overall performance class. The core difference comes from the web server itself.<\/p>\n\n\n\n<p>Based on these results, we strongly recommend using <strong>LiteSpeed Enterprise<\/strong>, or at minimum <strong>OpenLiteSpeed<\/strong>, for production WordPress environments on PanelAlpha Engine.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Since version 1.0, PanelAlpha Engine supports multiple web server configurations, giving hosting providers flexibility in how WordPress environments are deployed and optimized. Instead of forcing a single stack, the Engine allows operators to choose between different web servers depending on their performance, cost, and operational preferences. To understand how these configurations behave in practice, we [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":2564,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[],"_links":{"self":[{"href":"https:\/\/www.panelalpha.com\/blog\/wp-json\/wp\/v2\/posts\/2497"}],"collection":[{"href":"https:\/\/www.panelalpha.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.panelalpha.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.panelalpha.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.panelalpha.com\/blog\/wp-json\/wp\/v2\/comments?post=2497"}],"version-history":[{"count":3,"href":"https:\/\/www.panelalpha.com\/blog\/wp-json\/wp\/v2\/posts\/2497\/revisions"}],"predecessor-version":[{"id":2530,"href":"https:\/\/www.panelalpha.com\/blog\/wp-json\/wp\/v2\/posts\/2497\/revisions\/2530"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.panelalpha.com\/blog\/wp-json\/wp\/v2\/media\/2564"}],"wp:attachment":[{"href":"https:\/\/www.panelalpha.com\/blog\/wp-json\/wp\/v2\/media?parent=2497"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.panelalpha.com\/blog\/wp-json\/wp\/v2\/categories?post=2497"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.panelalpha.com\/blog\/wp-json\/wp\/v2\/tags?post=2497"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}