Upgrading too early wastes money. Upgrading too late means slow pages, crashes and unhappy users. The way to decide is to look at the metrics: which resource is actually exhausted, and whether optimisation can fix it first. This guide shows what to check, and how to choose the right upgrade.
Step 1: find the bottleneck
uptime # load average
htop # CPU per core, memory, swap, top processes
free -h # memory and swap
vmstat 1 10 # r (run queue), si/so (swapping), wa (I/O wait), st (steal)
iostat -x 1 5 # disk utilisation (sysstat package)
df -h # disk space
vnstat -m # monthly bandwidth
See htop, free command, and uptime and load average.
Signs you need more…
CPU
- Load average consistently above your vCPU count.
htopshows cores pinned near 100% during normal traffic (not just during backups or builds).- Slow responses that improve when traffic drops.
- High steal time (
stintop/vmstat) means the host is busy. Report it to support if it’s persistent.
See vCPU explained.
RAM
- Swap is actively used (
si/sonon-zero in vmstat), and performance drops. - Out-of-memory kills in logs:
journalctl -k | grep -i oom. See Linux OOM killer. - You can’t run enough PHP-FPM workers, database buffers or app instances.
Disk
- Free space below 15–20% and growing. See VPS storage planning.
- High I/O wait (
wain vmstat,%utilnear 100 in iostat) during normal operation.
Bandwidth
- Approaching your monthly transfer allowance, or hitting the port’s speed limit at peak. See VPS bandwidth calculator.
Step 2: optimise before upgrading
Often a configuration change gives more than a bigger plan:
| Symptom | Try first |
|---|---|
| High CPU on a website | Page caching, OPcache, fewer heavy plugins. See WordPress TTFB |
| High database load | Slow query log, indexes, object cache. See MySQL slow query log |
| RAM full | Right-size PHP-FPM, database buffers, Java heaps; remove unused services |
| Disk full | Log rotation, Docker cleanup, move backups off the server |
| Bandwidth high | CDN, compression, image optimisation |
See VPS performance troubleshooting.
Step 3: choose the right upgrade
- More of the bottlenecked resource: a plan with more RAM, more vCPU, or more disk.
- Split workloads: move the database, backups or media to a second server. That’s often better than one huge VPS. See VPS scaling: vertical vs horizontal.
- Storage-heavy needs: a storage VPS for media and backups. See storage VPS.
- Consistently maxed, or needs isolation or DDoS protection: a dedicated server. See VPS vs dedicated server.
On VPS.DO, plan upgrades are handled through a support ticket. Include your current plan, the target plan, and a preferred time window. See the USA, Hong Kong and Japan VPS plans.
Plan ahead
- Monitor continuously, with alerts on CPU, RAM, disk and bandwidth thresholds. See Netdata and Grafana + Prometheus.
- Upgrade before known peaks: launches, sales events, campaigns.
- Back up before any migration or upgrade. See backup strategy.
Quick reference
| Metric | Upgrade signal |
|---|---|
| Load average | > vCPU count, sustained |
| Swap activity | Non-zero si/so, slowdowns |
| OOM kills | Any, in normal operation |
| Disk | < 15% free, or high I/O wait |
| Bandwidth | Near monthly allowance or port limit |
Related: VPS uptime and SLAs and VPS hosting costs.