How Much RAM Does WordPress Need? We Measured It

Prices checked Oct 30, 2026Hands-on tested Oct 30, 2026Updated Oct 31, 2026

FindNChoose is reader-supported. Some links may earn us a commission at no cost to you; it never changes our verdicts. How we make money · How we test


What we measured

How we tested

We measured this WordPress site on our Hostinger KVM 4 VPS (4 vCPU, 16 GB RAM) on October 31, 2026, before launch, at its staging address. Stack: WordPress with the GeneratePress theme and a child theme, Rank Math SEO, Contact Form 7, Cache Enabler (page cache) and Redis Object Cache, on nginx, PHP 8.3 FPM, Percona MySQL 8.4 and Redis.

We read each PHP-FPM worker’s memory from Linux (/proc/<pid>/smaps_rollup), logged PHP’s peak memory and query count for real page requests with a temporary must-use plugin, and ran ApacheBench on the same server at five concurrent connections: 500 cached and 200 uncached homepage requests.

Measurement Result
PHP-FPM worker, resident memory (RSS) 64 to 72 MB each, 65 MB average
PHP-FPM worker, proportional share (PSS) 15 MB average
PHP-FPM worker, private memory 7 MB average
PHP peak memory per page request 4 to 6 MB
Uncached page render time 27 to 65 ms
MySQL queries per page (Redis warm) 0 to 8
Redis, whole server 14 MB resident
MySQL, whole server 973 MB resident, 512 MB InnoDB buffer pool
Cached homepage 678 requests/s, 7 ms median
Uncached homepage 71 requests/s, 65 ms median

Hostinger KVM 4, Boston, October 31, 2026. MySQL and Redis serve every site on this server, not just WordPress.

Why RSS overstates PHP memory

If you run top on a WordPress server, each PHP-FPM process shows 60 to 100 MB. Multiply by 20 workers and it looks like WordPress needs 2 GB for PHP alone. It does not.

Most of that resident memory is shared: PHP’s own code and the OPcache, which holds compiled WordPress, theme and plugin code once for every worker. The proportional set size (PSS) splits shared memory fairly between processes. On our server, the real per-worker cost was about 15 MB, of which 7 MB was strictly private. Six workers used 93 MB in total, not 390 MB.

A heavier site uses more: WooCommerce, page builders and large plugin stacks can push PHP’s peak per request from our 4 to 6 MB to tens of megabytes. Our 65 MB RSS figure is a safe ceiling for a lean site; budget 100 MB or more per worker for heavy ones.

Where the RAM actually goes

  1. The operating system and services: about 300 to 500 MB for Linux, nginx, SSH and monitoring on a small server.
  2. The database: MySQL reserves its InnoDB buffer pool up front. On a 2 GB server, 256 MB is plenty for a few sites; our server uses 512 MB for several. Our WordPress database itself is about 1 MB at launch.
  3. PHP-FPM workers: 15 to 100+ MB each depending on plugins, times the number running at your busiest moment.
  4. Object cache: Redis is tiny for a small site. Ours held 113 keys and the whole server’s Redis used 14 MB.
  5. File cache: Linux uses spare RAM to cache files, including cached HTML pages. This is good, not wasted memory.

Caching changes everything

A page served from Cache Enabler’s file cache took 7 ms and did not need a full WordPress load. A full render took about 65 ms. That is roughly ten times more work per uncached request, and it is why a cached site needs so few PHP workers: most visitors never reach PHP.

With Redis Object Cache warm, our homepage made zero MySQL queries. Object caching does not save much RAM, but it takes load off the database during uncached requests and in the admin.

How much RAM to plan for

Your setup RAM to start with
1 to 2 cached sites, light plugins 2 GB
3 to 10 cached sites 4 GB
10 to 20 cached sites 4 to 8 GB
WooCommerce or membership site 4 GB, more for large catalogs or busy stores
Page builder sites with many plugins Add 50% to the numbers above

The VPS sizing calculator uses these measurements to estimate RAM and CPU from your traffic and number of sites, and shows the plans that fit.

Tuning tips from our setup

  • Use an on-demand PHP-FPM pool for small sites. Our pool starts workers when requests arrive and stops them after 10 seconds idle, so an idle site uses no PHP memory at all.
  • Cap workers per site on small servers. The ceiling (pm.max_children) should be what your RAM can hold: free memory divided by per-worker memory.
  • Enable OPcache (on by default in modern PHP). It is the reason workers share most of their memory.
  • Size the database buffer pool to your data, not your RAM. A few hundred MB covers most small WordPress sites.
  • Add swap as a safety net. Our server has 2 GB of swap and was using 1 MB of it.

How to check RAM use on your own server

You can repeat our measurements on any Linux VPS:

  • free -m shows total, used and available memory. Look at available, not free: Linux uses spare RAM for file cache and gives it back when needed.
  • ps -C php-fpm8.3 -o pid,rss,cmd lists PHP-FPM workers and their resident memory (adjust the process name to your PHP version).
  • grep -E '^(Rss|Pss)' /proc/PID/smaps_rollup shows a worker’s real proportional share, which is what you should multiply by the number of workers.
  • Your PHP-FPM pool file shows the process manager mode and pm.max_children, the ceiling on workers.
  • In MySQL, SELECT @@innodb_buffer_pool_size/1048576; shows the buffer pool in MB.

Measure at a busy time of day. If available memory stays above about 20% of the total and swap use is near zero, you have enough RAM.

Does shared hosting give you enough RAM?

Shared plans often advertise memory limits per account. For cached content sites, they are usually enough. The bigger limit on shared hosting is CPU time for uncached requests; see shared hosting vs VPS.

Frequently asked questions


Is 1 GB of RAM enough for WordPress?

For a single small cached site, it can work, but it leaves little room for the database and updates. 2 GB is a safer minimum for a VPS.


How much RAM does a PHP-FPM worker use?

On our lean WordPress site, about 65 MB resident but only about 15 MB of its own (PSS), because code is shared through OPcache. Heavy plugin stacks can need 100 MB or more per worker.


What is the WordPress memory_limit setting?

It is the maximum memory a single PHP request may use, not what it normally uses. Our pages peaked at 4 to 6 MB even though the limit was much higher.


Does WooCommerce need more RAM?

Yes. Cart, checkout and account pages cannot be served from the page cache, so more PHP workers run at once, and each uses more memory. Start with 4 GB on a VPS.



Sources

  1. PHP-FPM configuration reference
  2. PHP OPcache manual
  3. WordPress performance optimization handbook

FindNChoose Editorial Team

We run our own WordPress sites on shared hosting and on a VPS, and use AI coding tools every day. We publish what we measured, list every price with the date we checked it and label anything we have not tested ourselves. About us · Editorial policy