Choosing between shared CPU and dedicated CPU VPS instances can save you hundreds of dollars per year while ensuring your application performs well. This comprehensive guide explains the technical differences, provides real-world benchmarks, and helps you make the right choice.
What is a Shared CPU VPS?
A shared CPU VPS (also called "burstable" or "shared-core") allocates virtual CPU cores that are shared with other customers on the same physical server.
How It Works
- Physical cores are shared: Multiple VPS instances use the same physical CPU cores
- CPU credits system: You accumulate credits when idle, spend them during bursts
- Baseline performance: Guaranteed minimum CPU usage (e.g., 20% of a core)
- Burst capability: Use 100% of a core temporarily when credits available
- Throttling: Performance reduced when credits depleted
Example: 2 vCPU Shared Instance
# Baseline: 20% of 2 cores = 0.4 cores always available
# Burst: Up to 2 full cores when needed (for minutes, not hours)
# Cost: $6/month
# When you use:
# - Normal traffic: 10-30% CPU → Earning credits
# - Traffic spike: 80% CPU for 5 minutes → Spending credits
# - Sustained load: 80% CPU for hours → Credits depleted, throttled to 20%
What is a Dedicated CPU VPS?
A dedicated CPU VPS allocates full physical CPU cores exclusively to your instance.
How It Works
- Reserved physical cores: CPU cores are not shared with other customers
- Consistent performance: 100% of CPU power always available
- No throttling: No CPU credits or baseline limits
- Predictable: Performance does not vary based on neighbors
- Higher cost: Premium pricing for reserved resources
Example: 2 vCPU Dedicated Instance
# Always available: 100% of 2 cores
# Burst: N/A (no concept of bursting)
# Cost: $18/month
# When you use:
# - Normal traffic: 10-30% CPU → No credits, just available capacity
# - Traffic spike: 80% CPU for hours → Full performance maintained
# - Sustained load: 80% CPU for days → Full performance maintained
Key Differences Comparison
| Feature | Shared CPU | Dedicated CPU |
|---|---|---|
| CPU Access | Shared with other VPS | Exclusive physical cores |
| Performance Consistency | Variable (depends on neighbors) | Consistent |
| Peak Performance | Burst to 100% (limited time) | Always 100% |
| Sustained Load | Throttled after credits depleted | Full performance indefinitely |
| Noisy Neighbor Effect | Possible (other VPS can impact you) | None |
| Cost (2 vCPU, 4GB RAM) | $6-12/month | $18-24/month |
| Best For | Bursty workloads, dev/test | Production, consistent load |
Performance Benchmarks
CPU-Intensive Task (Video Encoding)
Encoding a 1GB video file using FFmpeg:
| VPS Type | First Run | Second Run (Immediate) | After 1 Hour Idle |
|---|---|---|---|
| Shared CPU (2 vCPU) | 8 minutes | 28 minutes (throttled) | 10 minutes (partial credits) |
| Dedicated CPU (2 vCPU) | 7 minutes | 7 minutes | 7 minutes |
Web Application (WordPress)
Handling 100 concurrent users with Apache Bench:
| VPS Type | Requests/Second | 95th Percentile Latency | After 30min Load |
|---|---|---|---|
| Shared CPU (2 vCPU) | 45 req/s | 580ms | 18 req/s (throttled) |
| Dedicated CPU (2 vCPU) | 62 req/s | 420ms | 61 req/s (stable) |
Database Queries (PostgreSQL)
Benchmark: 100,000 SELECT queries with JOINs:
| VPS Type | Initial Performance | After Credits Depleted |
|---|---|---|
| Shared CPU (2 vCPU) | 1,850 queries/sec | 420 queries/sec (77% slower) |
| Dedicated CPU (2 vCPU) | 2,100 queries/sec | 2,080 queries/sec (stable) |
The Noisy Neighbor Problem
Shared CPU instances are vulnerable to "noisy neighbors"—other VPS instances on the same physical server consuming excessive resources.
Real-World Example
# Monitor CPU steal time (CPU stolen by hypervisor for other VMs)
top
# Look for "%st" column
# Shared CPU during noisy neighbor:
# %st = 15-30% (significant steal time)
# Your application sees 70-85% of promised CPU
# Dedicated CPU:
# %st = 0-2% (minimal steal time)
# Your application sees 98-100% of promised CPU
Impact on Application Performance
- API latency: Requests that take 50ms can spike to 200-500ms
- Database queries: 10ms queries become 40-100ms
- Background jobs: Tasks take 2-4x longer to complete
- Unpredictability: Performance varies hour-to-hour
When to Use Shared CPU
Ideal Use Cases
- Development and testing environments: Low cost, infrequent usage
- Staging servers: Only active during deployment windows
- Low-traffic websites: Personal blogs, small business sites (< 1,000 daily visitors)
- Scheduled tasks: Cron jobs that run for minutes, then idle
- CI/CD build servers: Burst during builds, idle between commits
- Learning and experimentation: Student projects, tutorials
Traffic Pattern Example
# Shared CPU is perfect when:
# - CPU usage < 30% most of the time
# - Occasional spikes to 80-100% for < 10 minutes
# - Acceptable performance degradation during spikes
# - Cost is primary concern
# Example: Marketing site
# - Normal: 5-10% CPU (serving cached pages)
# - Blog post goes viral: 90% CPU for 20 minutes (acceptable slowdown)
# - Back to normal: 5-10% CPU (credits replenished)
When to Use Dedicated CPU
Ideal Use Cases
- Production applications: Customer-facing services requiring consistent performance
- Databases: PostgreSQL, MySQL, Redis under sustained load
- API servers: RESTful APIs with SLA requirements
- Real-time applications: WebSocket servers, gaming backends
- Background workers: Queue processors running 24/7
- High-traffic websites: E-commerce, SaaS dashboards (> 10,000 daily visitors)
- Video/image processing: Continuous encoding or transcoding
- Machine learning inference: Model serving with consistent latency
Traffic Pattern Example
# Dedicated CPU is required when:
# - CPU usage > 40% sustained (hours/days)
# - Consistent low-latency required (< 100ms p95)
# - Customer SLAs must be met
# - Performance predictability is critical
# Example: SaaS application
# - Normal: 40-60% CPU (serving active users)
# - Peak hours: 70-90% CPU (more concurrent users)
# - Overnight: 30-40% CPU (background jobs, cron tasks)
# - Need: Consistent sub-100ms response times 24/7
Cost Analysis
DanubeData Pricing Comparison
| Configuration | Shared CPU | Dedicated CPU | Difference |
|---|---|---|---|
| 1 vCPU, 2GB RAM | $3.99/mo | $9.99/mo | +$6/mo (2.5x) |
| 2 vCPU, 4GB RAM | $6.99/mo | $17.99/mo | +$11/mo (2.6x) |
| 4 vCPU, 8GB RAM | $12.99/mo | $35.99/mo | +$23/mo (2.8x) |
| 8 vCPU, 16GB RAM | $24.99/mo | $71.99/mo | +$47/mo (2.9x) |
Cost vs Value Analysis
Is dedicated CPU worth 2.5-3x the cost?
# Scenario 1: Low-traffic blog (1,000 visitors/day)
# Shared CPU: $3.99/mo
# CPU usage: 5-15% average
# Verdict: Shared CPU is perfect. Save $6/mo ($72/year)
# Scenario 2: API server (50 req/s sustained)
# Shared CPU: $6.99/mo → Performance degrades after 30min → Lost revenue
# Dedicated CPU: $17.99/mo → Consistent performance → Happy customers
# Verdict: Dedicated CPU worth it. Extra $11/mo prevents downtime
# Scenario 3: Background job processor
# Shared CPU: $12.99/mo → Jobs take 3x longer → Queue backs up
# Dedicated CPU: $35.99/mo → Jobs complete on time → Queue stays healthy
# Verdict: Dedicated CPU worth it. Extra $23/mo ensures reliability
Monitoring CPU Performance
Check CPU Credits (AWS-style)
# Many providers show CPU credit balance
# Example: DigitalOcean Droplets dashboard
# If credits approach zero:
# - Reduce CPU usage (optimize code)
# - Upgrade to larger shared instance (more baseline)
# - Switch to dedicated CPU
Monitor CPU Steal Time
# Install monitoring tools
sudo apt install sysstat
# Check CPU steal percentage
mpstat 1 10
# Output:
# %steal > 10% = Significant noisy neighbor impact
# %steal 5-10% = Moderate impact
# %steal < 5% = Minimal impact (acceptable)
# If steal is high, contact support or switch to dedicated CPU
Application Performance Monitoring
# Monitor application response times
# If p95 latency increases during peak hours:
# - Check CPU usage (might be throttled)
# - Check steal time (noisy neighbors)
# - Consider dedicated CPU upgrade
Migration: Shared to Dedicated CPU
Switching from shared to dedicated CPU is straightforward:
On DanubeData
# Option 1: Resize in dashboard (5 minutes downtime)
# 1. Navigate to VPS → Settings → Resize
# 2. Select same vCPU/RAM but "Dedicated CPU" option
# 3. Confirm resize
# 4. VPS reboots with dedicated CPU cores
# Option 2: Create new VPS and migrate
# 1. Create new dedicated CPU VPS
# 2. rsync data from old to new VPS
# 3. Update DNS to point to new IP
# 4. Delete old shared CPU VPS
Zero-Downtime Migration
# For production apps requiring zero downtime:
# 1. Create dedicated CPU VPS
# 2. Set up load balancer pointing to both VPS
# 3. Sync data from shared to dedicated
# 4. Remove shared VPS from load balancer
# 5. Delete shared VPS when no longer needed
# Example with Nginx load balancer:
upstream backend {
server shared-vps-ip:80 weight=1;
server dedicated-vps-ip:80 weight=3;
}
# Gradually shift traffic to dedicated VPS
Provider Comparison
| Provider | Shared CPU (2 vCPU, 4GB) | Dedicated CPU (2 vCPU, 4GB) |
|---|---|---|
| AWS EC2 | $30.37/mo (t4g.medium) | $60.74/mo (m6g.medium) |
| DigitalOcean | $18/mo (Basic Droplet) | $42/mo (Dedicated CPU) |
| Linode | $12/mo (Shared CPU) | $36/mo (Dedicated CPU) |
| Vultr | $12/mo (Regular) | $36/mo (Dedicated Cloud) |
| DanubeData | $6.99/mo | $17.99/mo |
Frequently Asked Questions
Can I run a database on shared CPU?
Yes, but only for development/testing. Production databases should use dedicated CPU for consistent query performance.
How do I know if I am being throttled?
Check CPU steal time with mpstat. High steal (> 10%) or degraded performance after sustained load indicates throttling.
Do dedicated CPU instances have better network performance?
Usually yes. Dedicated instances often come with higher network bandwidth and better I/O performance.
Can I switch between shared and dedicated CPU?
Yes. Most providers allow resizing with minimal downtime (5-10 minutes).
Is shared CPU good for Docker containers?
Shared CPU works for development containers. Production container orchestration (Kubernetes) should use dedicated CPU nodes.
Decision Framework
Use this simple decision tree:
Start
|
├─ Is this production?
| ├─ Yes → Dedicated CPU
| └─ No → Shared CPU (dev/test/staging)
|
├─ CPU usage > 40% sustained?
| ├─ Yes → Dedicated CPU
| └─ No → Shared CPU
|
├─ Strict SLA requirements (p95 < 100ms)?
| ├─ Yes → Dedicated CPU
| └─ No → Shared CPU
|
└─ Budget extremely limited?
├─ Yes → Shared CPU (monitor performance)
└─ No → Dedicated CPU (peace of mind)
Get Started with DanubeData VPS
Deploy your VPS in under 60 seconds with transparent shared vs dedicated CPU pricing:
- Create your free account
- Navigate to VPS → Create Instance
- Choose between Shared CPU (starts at $3.99/mo) or Dedicated CPU (starts at $9.99/mo)
- Select your OS (Ubuntu, Debian, CentOS, Rocky Linux)
- Deploy and SSH in within 60 seconds
DanubeData VPS Features:
- Transparent pricing (no hidden fees)
- NVMe SSD storage included
- Automated daily backups
- Firewall rules and security groups
- Monitoring dashboard with CPU metrics
- 1-click OS reinstall and snapshots
- IPv4 and IPv6 included
- Resize anytime (shared ↔ dedicated)
Need help choosing? Contact our team or check our VPS documentation for sizing recommendations.