When you buy a VPS, the spec sheet lists vCPUs, RAM, and NVMe storage — but how those resources are actually allocated on the hypervisor determines whether your server delivers on its promises. Understanding resource allocation models helps you pick the right provider, diagnose performance issues, and tune your workloads. This updated guide explains the three critical allocation dimensions and how to measure their real-world impact on your VPS provider infrastructure.
1. CPU Allocation: Dedicated vs Burstable vs Shared
CPU allocation is the single largest factor in perceived VPS performance. Three models dominate the market.
Dedicated vCPUs (Pinning)
Each vCPU maps to a dedicated physical core or hyperthread. The hypervisor guarantees exclusive access during scheduled time slices. This model delivers consistent, predictable performance. Providers like Hetzner, Linode, and DigitalOcean use dedicated vCPU allocation on higher-tier plans. Measured CPU steal (%st in top or mpstat) stays below 1% under normal load.
Burstable vCPUs (Credit Model)
Popularized by AWS (t2/t3), Azure (B-series), and GCP (e2-shared). Your VPS earns CPU credits when idle and spends them during active processing. Once credits run out, CPU is throttled to a baseline — often 10–25% of a full core. In benchmarks, a t2.micro sustains full CPU load for only ~6 minutes before throttling. For production workloads under continuous traffic, this model causes severe degradation.
Shared vCPUs (Fair Scheduler)
The hypervisor divides physical cores among multiple VPS instances using a weighted fair queue scheduler. Your share depends on how many neighbors are busy. Under contention, CPU steal can spike to 10–30%. Use mpstat -P ALL 1 to monitor steal percentages on Linux. If %steal consistently exceeds 5%, your provider is overprovisioning.
# Measure CPU steal in real time
mpstat -P ALL 1 5
# Check steal from /proc/stat
awk '/^cpu / {print "CPU steal: " $8 "%"}' /proc/stat
2. Memory Allocation: Overcommit vs Guaranteed
Memory overcommit allows providers to sell more RAM than physically exists, betting that not all customers use their full allocation simultaneously.
Guaranteed RAM
Each VM gets a reserved allocation that the hypervisor never reclaims. Performance is consistent but pricing is higher. Enterprise VPS and dedicated server tiers use this model.
Overcommitted RAM (Ballooning)
The hypervisor uses a balloon driver to reclaim memory from idle VMs and redistribute it. When the host runs low, it inflates the balloon inside your VM, forcing the kernel to swap. You can detect ballooning by comparing free -m total with your advertised RAM, or by checking /proc/meminfo for Committed_AS exceeding physical RAM.
# Check for memory ballooning (KVM)
# Installed balloon driver shows inflated memory
cat /sys/devices/system/xen_memory/xen_memory0/info/current_kb 2>/dev/null || echo "No Xen balloon driver"
# Check swap usage trend
vmstat 1 10 | awk 'NR>2 {print $3, $4}'
3. Disk Allocation: Contention and Noisy Neighbors
Disk I/O is the most common bottleneck on overprovisioned VPS plans. All VMs on a physical host share the same storage controller and drive. When neighbors generate heavy I/O, your latency increases.
Measuring Disk Contention
Use iostat -x 1 to monitor await and svctm. On an uncontested NVMe drive, await should stay below 2 ms. If it exceeds 10 ms during normal operation, disk contention is likely. For provider comparisons with real I/O benchmarks, check VPS provider performance data.
# Disk latency monitoring
iostat -x 1 5 | grep -E "(Device|nvme|vd|sd)"
# FIO benchmark (safe to run on production)
sudo fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --bs=4k --iodepth=64 --size=1G --readwrite=randrw --rwmixread=75
I/O Scheduling and Tuning
Linux I/O schedulers matter on VPS. For modern NVMe storage, use none (no-op):
# Check current scheduler
echo /sys/block/*/queue/scheduler | xargs cat
# Set to none for NVMe
echo none | sudo tee /sys/block/nvme0n1/queue/scheduler
# Make persistent (add to /etc/udev/rules.d/)
echo 'ACTION=="add|change", KERNEL=="nvme*", ATTR{queue/scheduler}="none"' | sudo tee /etc/udev/rules.d/60-iosched.rules
4. Network Allocation: Bandwidth and Burst
Network is often the most opaque allocation model. Providers shape traffic using token bucket filters (TBF) or hierarchical token buckets (HTB).
Testing Real Throughput
Don’t trust advertised port speeds. Use iperf3 to test actual throughput, and compare both directions:
# On a remote test server (or use public iperf servers):
iperf3 -c iperf.he.net -t 30 -P 4
# Test in both directions
iperf3 -c iperf.he.net -t 30 -R
Conclusion
Resource allocation models directly impact every benchmark and user experience metric on your VPS. Before committing to a provider, test CPU steal percentages, disk I/O latency variance, and memory ballooning behavior. The best VPS for your workload depends on matching the allocation model to your usage pattern — dedicated vCPUs for consistent loads, burstable for spiky development workloads, and guaranteed RAM for database servers.

Leave a Reply
You must be logged in to post a comment.