Web Server Sizing Calculator

June 4, 2026

Web Server Sizing Calculator

Estimate vCPU, memory, worker processes, bandwidth, log storage, and node count from traffic peaks, cache behavior, dynamic request cost, TLS overhead, and availability targets.

🖥Named Web Workload Presets
Traffic and Server Inputs
Visits mode estimates peak requests; RPS mode uses your measured peak directly.
Loads baseline CPU time, worker memory, and concurrency assumptions.
Controls minimum node count and per-node failover headroom.
Human visits or sessions per month before bot filtering.
Used only in visits mode; includes page navigations, not every asset.
Small sites often peak at 4x to 10x their daily average hour.
Use 1 for full page cache; higher for uncached API calls and fragments.
Compressed HTML, JSON, images, and static assets served by origin.
Requests served before app code reduce CPU and worker pressure.
Profile value can be replaced with real APM p50 to p75 service time.
Lower for blocking PHP/Rails workers; higher for async Node or reverse proxy.
Include runtime RSS, modules, common libraries, and per-request buffers.
For separate database hosts, keep this to web-tier services only.
Modern TLS is efficient but not free during connection churn.
Include reverse proxy logs, app request logs, and structured fields.
Use the local retention window before shipping, rotation, or archive cleanup.
Applied to CPU, worker, RAM, bandwidth, and storage results.
Recommended Web Tier
0 vCPU
across 1 node
Recommended Memory
0 GB
RAM across web nodes
Peak Origin Throughput
0 Mbps
after cache and buffer
Worker Pool
0
safe active workers

Capacity Breakdown

Estimated peak request rate0 RPS total
Dynamic app request rate0 RPS after cache
CPU formulaRPS x ms / 1000 x overhead
Worker formulaceil(concurrency / safe worker concurrency)
Memory formulabase + worker RSS + cache reserve
Network egress estimate0 GB/month, 0 Mbps peak
Log storage estimate0 GB local retention
Sizing statusReady
💻Stack Spec Grid
5 ms
Nginx cached edge
Great for static sites, TLS termination, local reverse proxy, and CDN origin shielding.
85 ms
PHP-FPM WordPress
Dynamic pages need cache discipline, tuned worker limits, and database latency control.
45 ms
Node.js API
Async I/O handles concurrency well when CPU-heavy rendering is kept bounded.
110 ms
Python app server
Plan separate workers for blocking code, slow external calls, and report generation.
140 ms
Rails monolith
Memory per process matters; Puma workers and threads need realistic RSS assumptions.
70 ms
Java service
Often CPU efficient, but reserve heap, metaspace, direct buffers, and warmup headroom.
2 ms
Reverse proxy
Capacity is normally network, TLS handshakes, logging, and upstream timeout behavior.
35%
Headroom target
Keeps room for deploys, cache misses, bot spikes, backup jobs, and kernel page cache.
📊Reference Tables
Workload patternTypical cache hitCPU driverPrimary sizing risk
Static site or generated blog90% to 99%TLS, compression, loggingUnderestimating asset egress from origin when CDN is bypassed
WordPress with page cache60% to 95%PHP misses, admin traffic, searchToo many PHP-FPM workers can exhaust RAM before CPU is full
SSR JavaScript dashboard20% to 70%Rendering and API aggregationCPU spikes from server rendering during login or refresh storms
API gateway or JSON service0% to 50%Upstream latency and serializationConcurrency grows when dependencies slow down
Monolith with background admin use10% to 60%Database wait plus app CPUMemory pressure from large process pools and report endpoints
Rule of thumbFormulaCalculator usePractical limit
CPU coresdynamic RPS x CPU ms / 1000Converts request service time into busy coresKeep sustained utilization below about 65% to 75%
Workersceil(inflight / per-worker concurrency)Sizes PHP-FPM, app workers, or safe async poolsWorker count is bounded by memory before CPU on many stacks
BandwidthRPS x KB x 8Estimates peak origin Mbps and monthly GB transferUse measured compressed bytes when possible
Log storagerequests x bytes x retentionPlans local access and app log retention spaceStructured JSON logs can be much larger than common logs
HA nodescapacity / active nodesSpreads CPU and RAM across the selected topologyEach node should tolerate one peer down for production HA
Server profileStarting pointMemory notesGood first test
Small cached WordPress2 vCPU, 4 GB RAMLimit PHP workers, reserve page cacheLoad test uncached homepage and wp-admin separately
Moderate dynamic CMS4 vCPU, 8 GB RAMMonitor PHP RSS, Redis, and OPcache hit rateTest cache warm and cache cold traffic mixes
API or SSR app4 to 8 vCPU, 8 to 16 GB RAMWatch event loop lag, heap, and upstream waitSimulate dependency latency, not only happy-path replies
High availability web tier2+ nodesPer-node reserve must survive one node offlineDrain a node during peak test and confirm response times
Metric to watchHealthy rangeWarning signLikely fix
CPU steal and loadLow steal, load near coresHigh steal or run queue growthMove host class, add cores, reduce noisy neighbors
Memory availableEnough for workers and page cacheSwap activity or OOM killsLower workers, add RAM, move services away
P95 response timeStable under peakClimbs faster than RPSProfile slow routes, cache hot paths, add workers carefully
Origin egressBelow NIC and provider capLarge uncached assets from originIncrease CDN cache hit, compress, move media storage
💡Sizing Tips
Peak tip: Start with measured peak requests if you have logs. Monthly visits are useful for early planning, but server pain usually appears during short burst windows, deploys, cache purges, or bot waves.
Worker tip: Do not raise worker count just because CPU is available. If every worker carries a large runtime RSS, too many workers can remove filesystem cache and make the whole site slower.

This calculator estimates the web tier only. Database servers, object storage, queues, search, CDN rules, and external API latency should be modeled separately for production architecture.

Selecting the correct size for a web server is a necessary task to ensure that the server isnt too small to handle the traffic that comes to that web server. The web server must be able to handle the amount of traffic that comes to that server. The amount of traffic that come to a web server is not even close to even averages each month.

Each request that comes to a web server can take a different amount of cost to handle. Therefore, to determine the size of a web server, you must calculate the traffic to that server. The calculator will provide mathematical results after you enter the number of visits that your web server will receive each month or the number of requests that will come in each second at peak times for your web server.

How to Pick the Right Web Server Size

The calculator determines how many requests will come to your web server after your cache filter the requests. Your web server will also determine how many milliseconds of CPU each request will consume. The calculator will determine how many concurrent requests a single worker process can handle before it becomes memory pressured.

The calculator will not provide a number for the size of your web server, but it will provide recommendations for the vCPU, RAM, the number of workers, the bandwidth that your server will require, and the minimum number of nodes that your web server should have. The cache hit rate will be an important input in the calculation of the resources that your web server will require. If the cache hit rate is high, then the number of requests that will reach your web server will be low.

If the cache hit rate is high, then your CPU and the number of workers will be low. If the cache hit rate is low, then all requests will reach your web server as it must perform database task for each request. The low cache hit rate means that your web server will require more CPU and memory resources to handle these requests.

The cache hit rate will allow the calculator to dynamically adjust the number of requests that are made to your web server. Additionally, the calculator will also include a factor that accounts for the overhead of using TLS to encrypt data between your server and your clients. Worker memory and concurrency are two important factors in the functioning of your web server.

Each worker process will require a certain amount of RAM to function. If the number of workers that are allowed to run at one time is too high for the amount of RAM that is installed on the server, the operating system will begin to evict the page cache from RAM to memory for those workers. This will make the web server seem slowly to the clients.

The concurrency for a worker process determines the number of requests that can come to that worker process without the response time for the web server decreasing. This setting will allow the calculator to determine the number of worker processes that are required to handle the estimated number of requests that will come to your web server each month. The number of nodes and whether you want to use redundancy for your web server will change the recommendations for your web server.

A single node is suitable for small web servers for noncritical applications. For production environments, at least two nodes are recommended so in case one node fails, the other can carry the traffic for your web server. The higher the availability that you want for your web server, the more nodes you will have to spread your total web server capacity.

Additionally, the percentage of the total server capacity that you want to use as a buffer for traffic bursts will add protection to your web server in case of a sudden purge of the cache that increases the work load on your origin web server. The reference tables will show you the type of traffic that your web server will receive. For static websites, the main limiting factor will be the egress bandwidth and the number of TLS operation that are performed.

For dynamic content management systems, the memory will be reached before the CPU is reached because the number of worker processes for dynamic content management systems can grow quick. The calculator will provide you with a hypothesis about the size of your web server, but it is not capable of accounting for all the ways that traffic to your web server may deviate from the initial estimates. Traffic to a web server can include background jobs, admin traffic, search engine crawlers, and traffic from marketing campaigns.

You should always load test your web server with the size calculations from the calculator to ensure that your configuration matches the estimate. Monitoring the memory and response time of your server will help to fine tune the number of worker processes that you allow to run. The purpose of this calculator will help you understand the traffic to your web server and the cost of each request.

By understanding the cost of each request to your web server, you can make informed decisions about server configurations. By understanding the cost of each request, you can see how adding more cache will reduce the cost of that request to your web server. You can also see how increasing the concurrency limit for a blocking stack will increase the demand on the memory of your web server.

Finally, understanding the availability of your web server will help you to understand how many machine your web server will require to handle the traffic effectively.

Web Server Sizing Calculator

Related posts

Leave a Comment