What is VPS overselling?
VPS overselling happens when a hosting provider allocates more CPU, RAM or disk performance to VPS plans than physically exists on the underlying server.
Example: the server has 16 vCPUs and 64 GB RAM, but the provider sells 40 VPS plans “with 4 vCPU and 8 GB RAM each”. While most clients are idle, everything looks fine; once they start using their resources — the node becomes overloaded.
Why it’s dangerous for online stores
- Slow pages → lower conversion rate
- Failed CRON jobs (feeds, imports, email campaigns)
- HTTP 500 errors even with low traffic
- Google downgrades rankings due to long response times
Main types of overselling
1. CPU overselling
More virtual cores are sold than physical ones exist. This leads to high steal time — the hypervisor “steals” CPU time from your VPS in favour of others.
2. RAM overselling
Real RAM is exhausted and the node heavily relies on swap. Even simple database queries become slow, everything blocks on disk I/O.
3. Disk / IOPS overselling
The disk is advertised as NVMe/SSD, but dozens of VPS are hammering it with backups, imports and database operations. Result: slow queries, 500 errors, PHP-FPM hanging.
4. Network overselling
The node has a 1 Gbit/s uplink while each VPS is “sold” as having 1 Gbit/s. When neighbours run backups or heavy imports, your store may load in 10+ seconds.
How to tell if your VPS is oversold
- The server “dies” even with 10–20 concurrent visitors
- High load average but few active processes in
top/htop - High CPU steal time (st) reported
- Disk throughput and IOPS fluctuate heavily during the day
- The same application load gives radically different performance at different times
Basic checks on Debian 11
1. Uptime and CPU steal time
uptime nproc top # press 1 to show all cores
2. RAM usage
free -h
3. Disk test with dd (rough but indicative)
mkdir -p /home/test_disk cd /home/test_disk sync time dd if=/dev/zero of=testfile.bin bs=1M count=1024 conv=fdatasync rm -f testfile.bin
4. Disk test with fio
fio --name=randrw_test --rw=randrw --rwmixread=70 \
--bs=4k --size=1G --iodepth=32 --numjobs=4 --runtime=60 \
--group_reporting --filename=/home/test_disk/fio_test.bin
5. CPU test with sysbench
apt update apt install -y sysbench CORES=$(nproc) sysbench cpu --threads=$CORES --time=30 run
6. Network latency check
ping -c 10 8.8.8.8 ping -c 10 google.com
What to do if you suspect overselling
- Collect measurements, logs and examples at different times of day
- Open a ticket with your hosting provider and attach real numbers
- If responses are vague like “everything is fine on our side” — plan migration to a more honest VPS or a dedicated server
