A VPS bill is a collection of small decisions: the billing cycle, the plan tier, the add-ons, the backups, the bandwidth allowance, and the renewal terms. Most users never audit those decisions after signup, which is why a $5 plan quietly becomes a $15 monthly charge two years later. This six-step audit takes about 90 minutes once a year and typically finds 20–50% in savings with zero performance impact.
Step 1: Reconstruct the Real Monthly Cost
Pull the last 12 months of invoices and add everything: base plan, add-ons, overage fees, domain renewals billed through the host, and any one-time migrations. Divide by 12 for the true monthly cost. It is common for the true figure to be 1.5–2x the advertised plan price — and you cannot cut what you have not measured. Write the number down; it becomes the baseline for every decision in this audit.
Step 2: Measure Actual Resource Usage for a Week
Install netdata or use sar (from the sysstat package) and collect seven days of data. Record three numbers: average RAM usage, sustained CPU (the 95th percentile, not the 5-minute spike), and monthly bandwidth against the plan’s allowance. The goal is to find the bottleneck spec — the one resource you actually approach — because that determines the minimum viable plan.
If you cannot wait a week, historical logs work too: sar archives, provider panel graphs, and Cloudflare analytics (if you use it) cover the last 30 days. The key is to capture a busy period. A site that launches a newsletter every Tuesday needs Tuesday’s numbers, not Sunday’s.
One more measurement worth taking: disk usage per directory. du -sh /var/* /home/* /opt/* reveals the usual suspects — unrotated logs, abandoned backups, and staging copies that were never deleted. On budget plans, storage is often the first spec you hit, and reclaiming 5–10 GB can be the difference between staying on a $5 plan and being pushed to a $9 plan at renewal time.
Step 3: Match the Workload to the Cheapest Adequate Tier
| Measured usage | Minimum plan | Typical monthly cost |
|---|---|---|
| < 600 MB RAM, < 20% CPU | 1 GB, 1 vCPU | $4–$6 |
| 600 MB–1.4 GB RAM, light DB | 2 GB, 2 vCPU | $7–$12 |
| 1.4–3 GB RAM, busy app/DB | 4 GB, 2–4 vCPU | $14–$24 |
If your measured usage sits in the middle of a tier with 40%+ headroom on every spec, dropping one tier is safe. If any single spec is above 70% sustained, keep the tier and attack that bottleneck instead (see steps 4–5). The table above assumes typical KVM providers; a plan with NVMe storage or a faster CPU can shift the recommendation down a tier.
Step 4: Attack the Bottleneck Before Paying for It
- RAM bottleneck: add 2 GB swap, cap PHP workers, enable opcache. A 1 GB plan often outruns a misconfigured 2 GB plan.
- CPU bottleneck: offload image resizing, cron jobs, and logs to background queues; enable page caching so dynamic requests drop 70–90%.
- Bandwidth bottleneck: put a free-tier CDN in front of static assets; origin traffic typically drops 40–70%.
- Disk bottleneck: move the database to NVMe if the plan allows tiered storage; otherwise consider a provider with NVMe at the same price.
Each fix takes 30–90 minutes and typically eliminates the need for the upgrade you were about to buy. That is the core principle of this audit: configuration is cheaper than hardware. In our experience, roughly two out of three “I need more RAM” cases are actually “my stack is misconfigured” cases.
Step 5: Cut the Add-Ons and Recurring Extras
Replace paid backups with restic to a $2 object storage bucket. Drop the provider’s monitoring add-on for a free uptime service. Review static IPs — many budget plans bill $1–$2/month per extra IPv4. Each line item looks small; together they are often $10–$20/month, which on a $7 plan is more than a full tier of savings.
Be methodical: export the billing page to a spreadsheet, mark every line “keep,” “replace,” or “cancel,” and act on the last two categories within the week. Cancel-request emails take five minutes and most providers confirm instantly. For anything you keep, note its renewal date so it cannot silently convert from promo to standard pricing.
Step 6: Re-Price the Renewal
Finally, check what your plan costs at renewal versus what comparable plans cost today, including promo pricing for new customers. Budget providers change pricing frequently, and the gap between your renewal and the market rate is the single biggest, easiest saving available. If the gap exceeds 20%, negotiate or migrate — a one-time 2-hour migration amortizes quickly against a permanent price cut.
The 90-Minute Schedule
- Minutes 0–15: pull invoices, compute true monthly cost
- Minutes 15–75: set up monitoring, collect data (or use the last week’s logs)
- Minutes 75–85: match workload to tier, list bottlenecks
- Minutes 85–90: cancel add-ons, note renewal date
Run this audit yearly and before every renewal. If the audit tells you it is time to switch providers, our VPS comparison table lets you compare providers side by side on specs, price, and renewal terms, and the features guide explains which specs matter for the workload you measured in Step 2.

