PHP Worker Calculator — How Many Workers, RAM & CPU You Need

Free Hosting Tool

PHP Worker & Concurrency Calculator

Work out how many PHP workers, how much RAM and how many CPU cores your WordPress site needs at its busiest hour, see what happens when traffic spikes, and get a starting PHP-FPM configuration.

⚙️ PHP-FPM sizing 🧮 RAM & CPU estimate 📈 Spike test 🔗 Shareable results

“Unlimited” hosting doesn’t mean unlimited PHP. Every plan limits how many PHP requests can run at the same time, and that limit, along with the CPU and RAM behind it, is often what gives way first in a traffic spike. This calculator uses Little’s Law, the standard queueing formula: requests running at once = requests per second × time per request. It works from your peak traffic, how much of it your page cache absorbs and how long PHP takes per request, and every step is shown in the results.

Calculate your PHP workers

Defaults are example starting points. Replace them with your own numbers from analytics, your cache stats and your host’s dashboard.

Even traffic would be 4.2% per hour. Check your analytics’ hourly report.
If you enter this, it replaces the estimate from monthly pageviews.
Fills in example cache and extra-request values below.
From your caching plugin, host or CDN stats. Logged-in users, carts and checkouts usually bypass the cache.
admin-ajax, REST API, cart fragments, search and similar calls a page triggers.
Time to first byte of uncached pages, or Query Monitor’s page generation time.
Traffic within the busiest hour is uneven. 100% doubles capacity for short bursts.
Typical real usage, not your memory_limit. Query Monitor shows peak memory per page.
Only if they run on the same server as PHP.
The rest is waiting on the database or external services.
From your host’s plan details. Shows how much traffic that limit can handle.

How this calculator works

Peak pageviews per hour = monthly pageviews ÷ 30 × busiest-hour share (or your own figure)
PHP requests per pageview = (1 − share served from cache) + extra PHP requests per pageview
PHP requests per second = peak pageviews per hour × PHP requests per pageview ÷ 3,600
Requests running at once = PHP requests per second × average response time (Little’s Law)
PHP workers = requests running at once × (1 + headroom), rounded up, minimum 2
RAM = workers × memory per process + database, web server & OS
CPU cores for PHP = requests running at once × CPU share × (1 + headroom)
Traffic a plan can handle = workers ÷ (1 + headroom) ÷ response time × 3,600 ÷ PHP requests per pageview
⚙️
What a PHP worker is

A PHP worker (a PHP-FPM child process) handles one request at a time. If all workers are busy, the next PHP request waits. When the queue grows, visitors see slow pages or 502/504 gateway errors, even though the server is “up”.

🚀
Caching changes everything

A page cache or CDN serves stored copies of pages without running PHP. That’s why a well-cached blog can handle a lot of traffic on a small plan, while a store or membership site, where carts and logged-in pages bypass the cache, needs far more PHP capacity at the same traffic.

⏱️
Speed is capacity

Halving PHP response time halves the workers you need. Faster code, an object cache and fewer heavy plugins add capacity just like a bigger plan does.

💡
Worker counts aren’t comparable on their own A plan with many PHP workers but one CPU core can still slow down under load, because the workers share that core. Compare the calculator’s worker, RAM and CPU figures with all three of your plan’s limits.

Published PHP worker limits

Many hosts don’t publish a PHP worker number at all. These two do. Figures from each host’s own documentation, checked October 2026; plans and limits change, so check before you buy.

HostPlanPHP workersAlso included
HostingerWeb Single (shared)20 PHP workers1 CPU core, 1 GB RAM
HostingerWeb Premium (shared)40 PHP workers1 CPU core, 2 GB RAM
HostingerUnlimited (shared)60 PHP workers2 CPU cores, 3 GB RAM
HostingerCloud Startup100 PHP workers4 CPU cores, 4 GB RAM
HostingerCloud Professional200 PHP workers5 CPU cores, 6 GB RAM
KinstaSingle 35k visits2 PHP threads per site512 MB PHP memory pool
KinstaSingle 65k visits, WP 5, WP 104 PHP threads per site1 GB pool
KinstaSingle 125k & 315k visits, WP 20, WP 406 PHP threads per site1.5 GB pool
KinstaSingle 500k & 750k visits8 PHP threads per site2 GB pool
KinstaSingle 1.25M visits, WP 8010 PHP threads per site5 GB pool
KinstaSingle 3.15M visits16 PHP threads per site8 GB pool

Kinsta’s threads are per site and can be rebalanced against memory per thread or increased with its PHP Performance add-on. Hostinger lists PHP workers per hosting plan alongside its CPU and RAM limits.

Example results

Worked examples using the calculator’s formulas and defaults (10% of daily traffic in the busiest hour, 100% headroom, 80 MB per process). The sites are illustrative. Click a row to load it and change the numbers.

ExamplePeak pageviews / hourPHP workersRAMCPU cores
Cached blog
1,000,000 pageviews a month, 90% served from page cache, 400 ms PHP time
3,33322 GB1Open in calculator
WooCommerce store
300,000 pageviews a month, 50% cached, 1.5 extra AJAX/REST requests per pageview, 800 ms
1,00022 GB1Open in calculator
Busy WooCommerce store
3,000,000 pageviews a month, same settings as above
10,00092 GB5Open in calculator
Membership / LMS site
1,000,000 pageviews a month, 20% cached, 1 extra request per pageview, 700 ms
3,33332 GB2Open in calculator

Reading your results

PHP workers needed

How many PHP requests your site should be able to run at the same moment at its peak, including headroom. On your own server this is the value for pm.max_children; on managed hosting, compare it with your plan’s published worker or thread limit.

RAM

Workers × typical memory per process, plus memory for the database, web server and operating system, rounded up to a common server size. Use real per-process memory, not your PHP memory_limit, which is a ceiling.

CPU cores for PHP

The processing PHP needs at your peak. If the database runs on the same server, it needs CPU of its own on top.

Spike test and plan capacity

The chart repeats the calculation at 2, 3, 5 and 10 times your peak. If you enter your plan’s worker count, you also see the traffic it can handle at your settings.

Sources

  • PHP-FPM settings: PHP Manual, FPM configuration: pm.max_children “sets the limit on the number of simultaneous requests that will be served”; pm.start_servers defaults to (min_spare_servers + max_spare_servers) / 2.
  • Little’s Law: John D. C. Little, “A Proof for the Queuing Formula: L = ÎťW”, Operations Research, 1961. The average number of requests in a system equals the arrival rate times the average time each spends there.
  • Kinsta: Kinsta plans and PHP threads and PHP Performance (including the 128 MB per thread recommendation for WooCommerce).
  • Hostinger: Parameters and limits of hosting plans.
  • Our assumptions: example cache rates, extra requests, response time, memory per process, headroom, the 10% busiest-hour share, the hosting-tier bands and the spare-server values in the configuration are PaidHosting.com’s illustrative defaults, not measured averages. Checked October 2026.
Cite This Tool

PaidHosting.com. (2026). PHP Worker & Concurrency Calculator. Retrieved from https://www.paidhosting.com/php-worker-calculator/


Frequently Asked Questions

A PHP worker is a PHP-FPM child process. Each one runs one PHP request at a time. The maximum number is set by the pm.max_children setting, which the PHP manual describes as the limit on the number of simultaneous requests that will be served. When every worker is busy, new PHP requests wait in a queue; long queues show up as slow pages and 502 or 504 errors.

It depends on how many uncached PHP requests arrive per second at your peak and how long each takes. Multiply the two to get the number running at once, then add headroom for bursts. A well-cached blog with a million pageviews a month can need as few as 2 workers, while a busy WooCommerce store with the same traffic can need several times more, because carts, checkouts and account pages are normally excluded from page caching. The calculator shows the maths for your numbers.

No. RAM limits how many workers can run safely, but the worker count itself is a separate setting (pm.max_children on your own server, or your plan’s published limit). Extra RAM sits unused if the worker limit is low, and raising the worker limit without enough RAM or CPU just moves the bottleneck.

Product and category pages can often be cached, but the cart, checkout, “My account” pages and the background requests that update cart totals are generated by PHP for each visitor. That turns a much larger share of traffic into PHP work. Kinsta’s documentation also recommends at least 128 MB of memory per PHP thread for WooCommerce sites.

“Unlimited” normally refers to bandwidth or storage. PHP is limited by the plan’s worker (or process) limit, CPU and RAM. Limits vary a lot between hosts and plans: for example, Hostinger publishes 20 PHP workers with 1 CPU core and 1 GB of RAM on its Web Single plan, while Kinsta publishes 2 to 16 PHP threads per site depending on the plan. Compare your calculated number with your plan’s published limits, CPU and RAM.

Use your analytics tool’s hourly report and find the busiest hour of a normal busy day. If you only know monthly pageviews, the calculator divides by 30 days and applies the share of a day that falls in the busiest hour. Traffic spread evenly would put about 4.2% of a day in each hour; real sites usually see more than that in their peak hour, which is why the example default is 10%.

Measure the time to first byte of pages that are not served from cache, for example while logged in or on the cart page, or use a profiling plugin such as Query Monitor to see how long WordPress takes to generate a page. Your host’s monitoring or the PHP-FPM slow log can also show it. Use an average across typical uncached pages, not your fastest or slowest one.

A CPU core is processing capacity; a PHP worker is a process that uses some of it while handling a request. Part of each request is spent waiting on the database or other services, not using the CPU, so one core can keep more than one worker busy. The calculator multiplies the requests running at once by the share of time spent on the CPU to estimate the cores PHP needs.


Your server specs
shouldn’t be a guess.

Hosting plans are sold on storage, bandwidth and CPU numbers that say little about how many PHP requests your site can handle at once. The PHP worker limit, with the CPU and RAM behind it, decides whether your site stays up in a traffic spike, and it is rarely the number on the pricing page.

Know your real numbers before
your next traffic spike finds the gap.