Disclosure: we may earn a commission or referral reward from CloudCone, Contabo, DigitalOcean (account credit, not cash), Hostwinds, InterServer, RackNerd, VPSDime and Vultr if you sign up through our links. It does not change the price you pay. Every other provider pays us nothing. Prices in this guide are as of the date shown and may have changed; see the comparison pages for the latest checked prices.
Guides · BLOG
How to right-size your VPS: a 5-question framework (2026)
Some prices quoted in this guide are out of date. It is being rebuilt on our price index; for current prices use the comparison pages, which show when each price was checked.
Buying too little VPS is annoying — your app OOMs, you spend an hour resizing, you lose 15 minutes of visitors. Buying too much VPS is expensive — you overspend $10-100/month on resources you don't touch. Getting it right is a matter of answering five specific questions before you buy.
Prices as of 2026-09-22.
Question 1: What's your baseline RAM usage?
If your app is running somewhere already, measure. free -h on Linux, Task Manager on Windows, top on macOS. Note the resident-memory footprint of your app process(es), plus your database, plus your cache.
If your app doesn't exist yet:
| Stack | Idle RAM | Under moderate load |
|---|---|---|
| Node.js API + Postgres + Redis | 300 MB | 1 GB |
| Django + Postgres + Redis | 400 MB | 1.5 GB |
| Laravel + MySQL + Redis | 500 MB | 2 GB |
| Rails + Postgres + Redis | 600 MB | 2 GB |
| WordPress + MySQL + Redis | 400 MB | 1.5 GB |
| WordPress + WooCommerce + MySQL + Redis | 800 MB | 3 GB |
| Java Spring Boot + Postgres | 1 GB | 3 GB |
| Elixir Phoenix + Postgres | 200 MB | 800 MB |
Rule: buy 2-3x your "under moderate load" figure to have headroom for spikes and future growth.
Question 2: Is your workload CPU-bound or I/O-bound?
CPU-bound: you spend most request time computing. PHP without OPcache, unoptimised Python, image/video processing, ML inference, compression, game server world tick.
I/O-bound: you spend most request time waiting on the database, network, or disk. Almost every web app that isn't doing heavy computation.
Rule: if CPU-bound, buy premium vCPU (Vultr HF, Hetzner CPX, DO Premium). If I/O-bound, buy the cheapest shared tier that has enough RAM.
Question 3: How much do you actually transfer per month?
If your app is running: check your provider dashboard. Compare against your plan's included allowance.
If not: estimate.
| Site type | Rough monthly egress |
|---|---|
| Personal blog, 5k monthly visits | 5 GB |
| Business site, 30k visits | 50 GB |
| WordPress blog, 100k visits | 200 GB |
| WooCommerce store, 100k visits | 500 GB |
| Podcast host, 20k downloads × 40 MB | 800 GB |
| Video site, 10k views × 100 MB HD | 1 TB |
| SaaS API, 10 req/s baseline | 200 GB |
Rule: if under 1 TB/month, any provider is fine. If 1-5 TB, prefer DO or Vultr for cheap overage. If 5-20 TB, prefer Hetzner (20 TB included). Above 20 TB, negotiate with a bandwidth-focused provider or CDN in front.
Question 4: How consistent is your traffic?
Steady: the same load 24/7 within a factor of 2. Typical for B2B SaaS, transactional APIs.
Bursty: long idle periods punctuated by spikes. Typical for consumer content sites, ecommerce during promotions.
Scheduled: heavy at specific times, idle otherwise. Typical for retail promotions, product launches.
Rule:
- Steady → any tier, size against the load.
- Bursty → shared vCPU tiers (DO Basic, Vultr Regular, Hetzner CX) — you get bursty performance for free.
- Scheduled → managed hosting with auto-scale (Kinsta) or plan to manually resize on schedule.
Question 5: How much operational effort do you want to spend?
Zero: you don't want to think about the server. Buy managed WordPress (Cloudways/Kinsta) or PaaS (App Platform, Fly.io).
Low: you're OK with the occasional systemctl restart. Buy a plain VPS at a provider with good docs (DO).
Medium: you want full control and are willing to spend 2-4 hours a month. Buy Hetzner.
High: you want maximum customization and are running your own stack tooling. Buy Hetzner and set it up exactly how you want.
Putting it together: three worked examples
Small SaaS MVP, Node.js API, Postgres, 500 signups/day
- RAM: Q1 says 1-2 GB.
- CPU: Q2 says I/O-bound (mostly DB waits).
- Transfer: Q3 says ~50-100 GB.
- Consistency: Q4 says steady.
- Effort: Q5 says medium.
Answer: Hetzner CX22 at $4.60/mo. Or DigitalOcean Basic 2 GB at $12/mo if you plan to use DO Managed Postgres.
WordPress site, 50k monthly visits, no ecommerce
- RAM: Q1 says 1.5 GB.
- CPU: Q2 says I/O-bound (mostly DB queries and page rendering).
- Transfer: Q3 says ~100 GB.
- Consistency: Q4 says bursty.
- Effort: Q5 says zero (founder, not developer).
Answer: Cloudways DO 1 GB at $14/mo. If technical: Hetzner CX22 at $4.60.
Video site, 10k monthly video views, transcoded on the fly
- RAM: Q1 says 2-4 GB.
- CPU: Q2 says CPU-bound (video transcoding).
- Transfer: Q3 says 1 TB+.
- Consistency: Q4 says bursty.
- Effort: Q5 says medium.
Answer: Hetzner CPX31 at $15.60/mo (AMD for single-thread transcode speed, 20 TB transfer). Or offload transcoding to a job queue and serve pre-transcoded from S3-compatible object storage.
The 3-month rule
Don't over-buy for a 12-month need. Cloud providers make resize trivial. Buy the smallest plan that answers your five questions today. Resize in 5 minutes when your load grows. You'll pay the higher price for 6 months, not 36.
Related guides
- How to calculate cloud hosting cost — total cost including add-ons.
- How to read a hosting plan spec sheet — parse the spec correctly.
- vCPU vs CPU explained — the CPU question in detail.
- Best hosting for a small SaaS MVP — the MVP shortlist.
Prices as of 2026-09-22.