Server Sizing Calculator
Pick a workload, describe its shape, and get a spec you can actually order - with the reasoning shown.
nginx, Apache or Caddy serving static files, proxying to an app tier, or terminating TLS for an API.
Recommended for Web server
Runs correctly today. No room to spare.
- CPU
- --
- RAM
- --
- Disk
- --
Survives growth, a deploy and a bad day. Start here.
- CPU
- --
- RAM
- --
- Disk
- --
--
--
Where these numbers came from
Sized for the comfortable tier. If you buy the minimal box, recompute the memory-proportional settings from that machine's RAM rather than scaling these by the difference: some of them have a floor the smaller tier cannot go under.
Tuning notes
The calculation runs entirely in your browser: the numbers you type are never sent to us. If analytics are enabled we record which workload was sized and the rounded result, never your inputs.
The three ways server sizing goes wrong
Sizing to the average instead of the peak
A server sized to mean utilisation is a server that falls over on the busiest day of the year. The number that matters is the p99, and the gap between it and the average is bigger than most people assume - a service averaging 30% CPU can spend several minutes a day above 90%.
Forgetting the moments when both copies are resident
A rolling deploy runs the old and the new worker set at the same time. A Redis BGSAVE forks and copy-on-write duplicates every page written during the save. A Postgres VACUUM FULL needs room for a second copy of the table. Each of these roughly doubles a resource for a few minutes, and each is a well-known way to take down a host that had been fine for months.
Sizing the machine instead of the bottleneck
Adding cores to a single-threaded Redis does nothing. Adding RAM to a database whose queries are unindexed buys a little time and hides the cause. Before buying a bigger machine, find out which of CPU, memory, disk or network is actually saturated - it is frequently none of them, and the real limit is a connection pool or a file descriptor ceiling.
Rules of thumb this calculator uses
| Workload | The number that drives it | Rule |
|---|---|---|
| Web server | Requests per second | ~4,000 rps/core static, ~1,500 proxying, ~800 terminating TLS |
| PostgreSQL | Working set | 15-30% of the database in RAM for OLTP, 35-65% for analytics, plus ~10 MB per connection |
| MySQL / MariaDB | InnoDB buffer pool | Pool holds the hot set and is ~65% of RAM, so size the machine backwards from it |
| Redis / Valkey | Dataset plus fork headroom | 1.25-1.45x for overhead and fragmentation, plus up to 0.7x again if persistence is on |
| Application server | Workers x resident size | Double it for the deploy window, when both worker sets are live |
| Container host | Sum of container limits | Plus ~1.5 GB for the OS and daemon, and disk for image layers nobody pruned |
| Kubernetes node | Pod requests | Allocatable is ~85% of capacity, plus 1-2 GB of DaemonSets charged per node |
These are starting points, not guarantees. They are the numbers a sysadmin would reach for before measuring, and measuring is what should replace them.
How to check what your servers actually use
Every recommendation on this page is an estimate standing in for a measurement. If the server already exists, four commands beat any calculator:
vmstat 1 30
Thirty one-second samples. Watch the r column (processes waiting on CPU) and si/so (swap activity). Any sustained swapping means you are short on RAM, whatever the free memory figure says.
free -h
Read the available column, not free. Page cache counts as used but is reclaimable, so a healthy Linux server always looks nearly full.
iostat -x 1
The %util and await columns tell you whether the disk is the bottleneck. High await with low IOPS usually means the wrong storage class rather than too little of it.
ss -s
Socket counts. Useful when a server that looks idle is refusing connections, which is a ceiling somewhere else and not a sizing problem at all.
The catch is that a snapshot taken now tells you nothing about last Tuesday's peak, and peak is what you size for. That is the case for continuous collection: the Fivenines agent records CPU, memory, disk and network every few seconds and keeps the history, so the next sizing decision starts from a graph instead of a guess.
Explore next
Related Resources
Disk Space Calculator
Plan storage from log volume, retention and growth rate.
Explore ->Load Average Interpreter
Check whether the cores you have are already saturated.
Explore ->Linux Server Monitoring
Measure what your servers really use before you size the next one.
Explore ->Database Monitoring
Buffer pool hit rate, connections and query load for Postgres, MySQL and Redis.
Explore ->See how Fivenines compares to other tools
Read our guide to the best infrastructure monitoring tools in 2026.
FAQ
How much RAM does PostgreSQL need? +
How many CPU cores does a web server need? +
Why does Redis need more RAM than my dataset? +
How do I size a Kubernetes node? +
What is the difference between the minimal and the comfortable tier? +
Are these recommendations exact? +
Stop sizing from guesses
Fivenines records what your servers actually use, so the next sizing decision starts from data.
Start monitoring with fivenines.io14-day trial. No credit card required.