...

Why WordPress performs differently on ARM servers than on x86

WordPress ARM behaves differently on servers than x86 because RISC instructions, cache hierarchy and energy targets measurably change PHP execution, I/O and parallelism. In practice, this is reflected in lower costs per request, different single vs. multi-thread characteristics and sometimes different latencies in the admin and frontend.

Key points

For a quick classification, I will briefly summarize the most important differences for WordPress and highlight the central advantages for each architecture.

  • Price efficiencyARM often delivers more requests per euro and saves 20-40% power.
  • Compatibilityx86 scores with older software, ARM with modern stacks.
  • Performancex86 strong with single-thread, ARM scales broadly with many cores.
  • WordPress scoreARM reaches >8 in Admin, close to x86.
  • WorkloadsNginx/PHP-FPM love ARM, special cases tend towards x86.

Why ARM servers accelerate WordPress differently

I see a different story with ARM Instruction width and a focus on simple decoding that efficiently processes many small PHP operations. WordPress produces numerous short requests, whereby the overhead per request counts and not just maximum clock speed. ARM benefits when Nginx, PHP-FPM and Opcache work well together and many workers run in parallel. x86 often has higher peak frequencies, which push individual, long PHP scripts through faster. For typical page requests with caching, however, the advantage shifts towards ARM because more requests per watt are possible and the Energy absorption remains lower.

Number check: costs, benchmarks and efficiency

A 4-core/8 GB ARM VPS at Hetzner costs approx. 7,72 € per month and delivered around 1.11 GB/s read at 64k IOPS in YABS tests. Geekbench showed around 1072 points single-core and 3439 multi-core, which is noticeable in everyday use with the page cache and PHP worker loads. An x86 counterpart was priced at around €16.18 per month and achieved similar values, but recorded higher wattages. In WordPress mini-scenarios in the admin, I experienced ARM with scores above 8, whereas individual server sub-tests were below this (e.g. 0,7 vs. 8.1). Nevertheless, the savings remain significant because each request ties up less budget and leaves room for more RAM and caching.

In practice, I observe the CPU architecture and the cache influence together with PHP configuration. A well-founded look at CPU architecture and cache, in order to match page cache, opcache and object cache. If you want to map as many visitors as possible on a small budget, use dense parallelism on ARM. For projects with rare but heavy logic per request, x86 can smooth out the individual request. In the end, this often determines the cost per TTFB and the Scaling in Peaks.

Web server stack: Nginx, PHP-FPM and database

I set up WordPress on ARM focused on Nginx and PHP-FPM, set up enough workers and use opcache and object cache. This allows me to perform the many small PHP tasks more efficiently than on x86, provided no exotic plugin is slowing me down. In file system and database tests, ARM and x86 ran very similarly, which favors WordPress-typical read accesses. In binary random operations, ARM fell slightly in some cases, which hardly carries any weight in WordPress. The decisive factor remains the number of simultaneous requests that the Pipeline can work through without queues.

Compatibility and plugins on ARM

Before the move, I check the aarch64-Support for all plugins used, especially for antivirus scanners and backup tools. Control panels such as cPanel or Plesk run on ARM, but individual proprietary modules may be missing. For pure Linux stacks, ARM works smoothly, while x86 leaves more leeway for Windows or older distributions. I therefore test staging environments to see special cases early on. This saves me time when switching and ensures a speedy migration. Migration phase without any nasty surprises.

Single-thread vs. multi-thread with WordPress

WordPress renders a lot in PHP and reacts strongly to single-thread clocks, for example with uncached admin pages or heavy WooCommerce actions. x86 impresses here with high boost frequencies up to the 5 GHz range and achieves shorter peak runtimes. ARM scores points as soon as many requests run in parallel and caching takes effect. This makes frontend load with cache a prime case for ARM, while tricky admin tasks often show x86 advantages. If you want to look at this in more detail, take a look at PHP Single-Thread and classifies the influence on TTFB and backend snappiness.

Energy consumption and price-performance in practice

I often see ARM in data centers 20-40% less power consumption compared to x86 counterparts under load. This saving not only reduces the bill, it also creates budget for more RAM. In WordPress, more RAM means a faster page and object cache, which smoothes out peaks. This results in a higher number of visitors per euro without major latency jumps. In this way, I increase the scope for traffic before I scale horizontally or Upgrades need.

Workloads: When ARM, when x86?

I use ARM when web servers, microservices and Container dominate and many medium-sized PHP tasks are pending. Then ARM delivers a strong price-performance ratio, sometimes up to 40% better depending on the stack. I use x86 when high single-thread performance counts, legacy libraries are involved or special cases such as game servers need the frequency. In crypto tests (e.g. AES-256), I saw advantages for x86, and both fields were close to each other for compression. The bottom line is that I decide according to profile: I/O-heavy and broadly parallel → ARM, high-frequency-heavy and legacy-close → x86.

Scaling with Ampere/Graviton and Docker

Current ARM platforms such as Ampere Altra or Graviton3 bring many Cores with low power consumption. For WordPress in a container network, this plays into my hands because I can run more PHP-FPM workers, Redis and Nginx instances per host. This increases requests per second per euro - ideal for traffic peaks. x86 holds its own when individual processes have to clock hard and thread pinning brings direct advantages. All in all, I often achieve the higher density with ARM. Consolidation per server, without tracking loss in the front end.

Practical setup: Tuning checklist for WordPress ARM

I'll start with a current Kernel and aarch64 packages, activate Opcache and adjust PHP-FPM-Worker to the RAM size. Nginx receives aggressive caching, Gzip/Brotli and HTTP/2/3. I adapt MariaDB or MySQL to the number of cores via buffer, thread and I/O settings. Redis/object cache takes load from the database and noticeably shortens TTFB. I regularly check the effect via request trace to quickly eliminate bottlenecks. Find.

Read hosting selection and benchmarks correctly

I evaluate benchmarks according to Workload, not only according to raw points. Multi-core tests with 1000 simultaneous requests showed x86 to be slightly ahead in some cases (e.g. 8509 vs. 8109 RPS), while ARM equalized again when calculated in euros. Prices such as €7.72 for 4C/8GB ARM set the tone, especially when IOPS and network latencies are right. When making a decision, it helps me to look at real-world page tests and query profiles, not just Geekbench. I also use „Clock speed more important than cores“ to better manage single request load. Rate.

PHP 8.x, JIT and Opcache on ARM

I observe that WordPress benefits more from a clean Opcache setup than from JIT. On both ARM and x86, I usually disable JIT because it rarely provides consistent benefits in dynamic PHP workloads and eats up memory. Instead, I increase opcache.memory_consumption, opcache.max_accelerated_files and use opcache.validate_timestamps with low intervals for development environments or deactivate them in production. On ARM, the opcache.file_cache-use during warm start, so that cold reboots are less painful. The benefits are measurable: fewer CPU peaks, more stable TTFB paths and more headroom for simultaneous requests.

FPM worker planning: From RAM to parallelism

The choice of PHP-FPM-Worker is particularly grateful on ARM because many cores are available at a lower clock rate. I roughly reckon with 60-120 MB per PHP process (depending on plugins) and dimension pm.max_children accordingly. On an 8-GB host, I subtract system services, reserve buffers for the database and caches and divide the rest between workers. pm = dynamic with pm.max_requests around 500-1500 prevents memory leaks. Socket communication (Unix sockets) I prefer TCP, but set backlog, rlimit_files and process_control_timeout deliberately so that load peaks do not tip directly into 502s. ARM then scales up cleanly, while x86 processes individual heavy calls more quickly thanks to the high clock rate - both can be balanced via the number of workers and burst buffers.

Database and I/O factors

MySQL/MariaDB often limits WordPress performance more than the CPU. I set innodb_buffer_pool_size generously, use a solid redo log-set and switch off unnecessary storage syncs if the risk is acceptable. Since ARM and x86 were similar in I/O patterns in my tests, the main benefits here are Schema optimizations, indexes and an object cache are the key improvements. For media load, I include file system caching in the calculation: NVMe kits with large page caches often hide the CPU differences completely behind I/O latencies. The decisive factor is that queries are specifically shortened and caches achieve hit rates >90%.

Network, TLS and HTTP/3

In the frontend, TLS overhead dominates today with small, frequent requests. x86 benefits in part from broader acceleration in crypto libraries, while ARM scores efficiently through low energy requirements with many simultaneous handshakes. I rely on HTTP/2/3 with strict prioritization, choose modern ciphers with hardware support and activate session resumption. In Nginx, I don't throttle keep-alive too hard so that connections remain open long enough and ARM can excel with parallel processing. For assets, I minimize the number and size so that the single-thread advantages of x86 carry less weight in everyday use.

Build, deploy and multi-arch practice

In containers, I play to ARM's strengths, but pay attention to Multi-arch images, so that build pipelines run cleanly. I prefer native builds to emulation because QEMU slows down layers and introduces error sources. For WordPress stacks with PHP extensions (e.g. Imagick, Redis, Sodium) I make sure that all aarch64 packages are available. Where I need proprietary loaders (such as encoders/decoders or license modules), I plan alternatives or build separate images for ARM and x86. A clear tagging strategy keeps rollbacks simple and measurably shortens migration time.

Migration without stumbling blocks

Before switching to ARM, I insert a Staging with production data: same theme, same plugins, identical PHP minor version. I check CLI tools (WP-CLI), cron jobs, image processing (GD/Imagick) and PDF/ZIP generation. If binary filters are running in the security stack (malware scan, WAF modules), I test their ARM counterparts. A rolling cutover avoids downtime: cache warmers feed the page and object cache, the database replicates first, and the DNS switch takes place with a low TTL. I measure TTFB, p95 latencies and error rates before and after the switch - only then do I move to the old environment.

Measurement methodology and KPIs

I do not evaluate raw figures in isolation. The decisive factors are p95/p99 over several minutes under a realistic mix (static HTML, cache hits, cache misses, admin calls). I differentiate between cold and warm caches and check whether under load Queue lengths grow. A clean test contains: Login flows, shopping cart/ajax, REST endpoints, cron events, and media uploads. I correlate metrics with system values (run queue, disk wait, TCP retransmits) and see how ARM and x86 react under the same target RPS. This quickly reveals whether the bottleneck is the CPU clock, PHP worker, I/O or database.

Sources of error in practice

Performance drops are rarely caused by the architecture alone. On ARM I control the CPU governor (no too aggressive powersave curve), on x86 I pay attention to Turbo-Boost-Thermics and NUMA side effects. Limit in containers cgroups often unnoticed CPU and memory spikes. Transparent Huge Pages and Swap-Pressure worsen latencies if they are poorly tuned. On VPS environments Noisy Neighbor I/O peaks - then dedicated storage or a generous page cache can help. I set health checks tightly and intervene with circuit breakers before an overload tears down the entire site.

Fine-tune cache strategies

ARM shines with high parallelism when caches are in place. I prefer a Full-page cache for anon traffic, an aggressive object cache for logged-in users and targeted edge validation for e-commerce. Where sessions and user rights apply, I plan fragment caching (ESI, micro-fragments) and reduce database round trips. I keep cache keys stable, minimize scattering and ensure clear TTL profiles. This reduces PHP work per request and levels out single-thread advantages of x86 in favor of ARM parallelism.

Calculate costs per request sensibly

I calculate the budget not only per month, but per 10,000 requests in the target mix. I combine hosting price, energy costs (indirectly priced in by the provider), RPS in warm state and TTFB targets. ARM often performs better here because I can absorb a higher load for the same price range thanks to more parallel workers. x86 sets the counterpoint where few, complex requests dominate (e.g. report generation, import pipelines). The result is rarely binary - I often combine ARM frontends with x86 backends for special loads until the application logic is optimized.

Tighten up hosting selection: Sizing and reserves

I prefer to book light via than under demand, if peaks can be planned. An ARM node with slightly more RAM creates noticeably better buffers for PHP and database caches. On x86, I calculate reserves for boost phases so as not to run into throttling under full load. It is important that network latencies, storage consistency and upgrade strategy are transparent - a fast ARM host loses its advantage if storage jitter drives the p95 latency. SLA details, fleet homogeneity and upgrade windows then practically determine the stable milliseconds in the front end.

Comparison table: Key figures ARM vs. x86

The following table summarizes the distinctive features for WordPress and shows where I can find which ones. Strength see.

Feature ARM server x86 server
Performance per euro High, partly up to +40% Price-performance advantage Good, but usually more expensive per request
Energy efficiency Very good, approx. 20-40% Less consumption Solid, but higher demand
Compatibility Strong with modern Linux stacks Better for Legacy/Windows
WordPress admin score More often > 8 in tests Partly slightly higher
Crypto (AES-256) Slightly weaker Usually faster
4C/8GB Price approx. 7,72 € per month approx. 16 € per month
Requests/s (1000 conc.) z. B. 8109 z. B. 8509

Summary: How I make the choice

I rely on ARM when many Inquiries with caching, the budget is tight and container workloads form the basis. Then low-cost cores, low consumption and dense parallelism get visibly more out of it. For admin loads, compute-intensive extensions or old binary modules, x86 offers advantages through high frequencies and broad compatibility. Before making any decision, I check for staging: page cache, object cache, PHP worker, query profile. This is how I make a reliable choice, secure TTFB and plan the Scaling future-proof.

Current articles