Shared vs dedicated vCPU is one of the most important decisions you make when choosing a cloud VM.
It affects cost. It affects performance consistency. It affects how your app behaves under load. It affects whether your infrastructure is overbuilt, underpowered, or correctly matched to the workload.
But the decision is often explained too simply.
Many buyers think:
Shared vCPU = cheap and weak Dedicated vCPU = expensive and powerful
That is not the right way to think about it.
A better model is:
Shared vCPU = cost-efficient compute for variable workloads Dedicated vCPU = predictable compute for sustained or latency-sensitive workloads
Both can be valid. Both can run production workloads. Both can be the wrong choice if used at the wrong time.
The real question is not:
Which one is better?
The real question is:
Does your workload need predictable CPU behavior enough to pay for it now?
This guide explains what shared and dedicated vCPU mean, when to choose each class, how to read performance signals, and how to avoid overpaying for dedicated CPU before your workload actually needs it.
Quick answer
Choose shared vCPU when your workload is cost-sensitive, moderate, bursty, or still early-stage.
Choose dedicated vCPU when your workload is CPU-heavy, business-critical, latency-sensitive, or needs more consistent performance under sustained load.
| Question | Shared vCPU | Dedicated vCPU |
|---|---|---|
| CPU allocation | Pooled CPU resources | Reserved CPU resources |
| Best for | Websites, dev, staging, small apps | Databases, CI/CD, workers, heavy processing |
| Main advantage | Better cost efficiency | Better CPU consistency |
| Main trade-off | More performance variance | Higher price |
| Good starting point? | Yes, for most teams | Yes, for known CPU-heavy workloads |
| Best decision rule | Start here unless evidence says otherwise | Move here when CPU consistency matters |
Simple rule:
Use shared vCPU when value matters most. Use dedicated vCPU when consistency matters most.

What is a vCPU?
A vCPU is a virtual CPU assigned to a virtual machine by the virtualization layer.
Your VM does not usually receive a physical CPU chip directly. Instead, the cloud platform presents virtual CPU resources to your instance.
The application sees CPU capacity.
The platform decides how that capacity maps to physical hardware.
That mapping can work in different ways depending on the VM class.
This is where shared and dedicated vCPU differ.
What shared vCPU means
Shared vCPU means your VM uses CPU capacity from a shared pool on the physical host.
Your VM still gets vCPU resources, but those resources are scheduled alongside other workloads.
This model works well when workloads are not constantly demanding full CPU.
Examples:
- small websites
- CMS sites
- business websites
- internal dashboards
- development environments
- staging environments
- small APIs
- early SaaS apps
- admin panels
- test servers
- low-to-moderate traffic apps
- bursty workloads
Shared vCPU is popular because many workloads do not need guaranteed CPU all day.
A website may use CPU during requests, then sit mostly idle.
A staging server may be active during testing, then quiet.
An early SaaS app may have traffic spikes, but not sustained CPU pressure.
For these cases, shared vCPU can deliver very good value.
Shared vCPU advantages
Shared vCPU is useful when you want more total resources for the budget.
Advantages include:
- lower starting cost
- more resources per dollar
- good fit for bursty traffic
- practical for dev and staging
- useful for early production apps
- easier to start without overcommitting
- strong value for websites and everyday workloads
Shared vCPU is not automatically “low quality.”
It is a cost-efficient model for workloads that do not need reserved CPU behavior all the time.
Shared vCPU trade-offs
The trade-off is performance consistency.
Because CPU is shared at the host level, performance can be less predictable under sustained pressure.
Possible symptoms:
- CPU-heavy jobs take longer
- latency becomes inconsistent
- p95 or p99 response time becomes noisy
- queue workers fall behind
- builds take unpredictable time
- database performance becomes uneven
- performance changes during busy periods
This does not mean shared vCPU is bad.
It means shared vCPU is optimized for value, not hard consistency.
What dedicated vCPU means
Dedicated vCPU means CPU resources are reserved for your VM.
The main benefit is not just “more speed.”
The main benefit is more predictable CPU behavior.
Dedicated vCPU is usually better when the workload is:
- CPU-heavy
- continuously active
- sensitive to latency spikes
- business-critical
- difficult to optimize further
- affected by noisy performance
- expensive when slow
- dependent on consistent execution time
Examples:
- production databases
- CI/CD runners
- build servers
- video encoding
- data processing
- queue workers
- busy API backends
- real-time services
- CPU-heavy analytics jobs
- workloads under sustained load
Dedicated vCPU is not always necessary.
But when CPU consistency matters, it can be worth the extra cost.
Dedicated vCPU advantages
Dedicated vCPU helps when predictability is the goal.
Advantages include:
- more consistent CPU access
- less performance variance
- lower noisy-neighbor risk
- better fit for sustained compute
- stronger latency stability
- more predictable build times
- better worker throughput consistency
- safer choice for important databases
- better behavior for CPU-bound workloads
Dedicated CPU is about confidence.
When users, revenue, builds, or operations depend on consistent compute behavior, dedicated vCPU becomes easier to justify.
Dedicated vCPU trade-offs
The trade-off is price and resource efficiency.
With dedicated vCPU, you pay for reserved compute behavior.
That means the same budget may buy fewer total resources compared with a shared VM.
For example, a larger shared VM may give you more RAM and storage for the same monthly budget than a smaller dedicated CPU VM.
That matters when the real bottleneck is not CPU consistency.
If your app mainly needs more memory, disk, cache, or general headroom, jumping to dedicated CPU may not solve the problem.
The real decision: cost vs predictability
Shared vs dedicated vCPU is really a cost vs predictability decision.
Ask:
Do we need more resources per dollar, or more predictable CPU behavior?
Choose shared vCPU when you need:
- affordability
- flexibility
- enough resources to start
- room for small traffic spikes
- low-cost staging
- early production value
- more RAM and storage for budget
Choose dedicated vCPU when you need:
- stable CPU behavior
- lower latency variance
- predictable build times
- more reliable workers
- better database consistency
- sustained CPU performance
- less tolerance for jitter
The wrong decision is usually not technical.
It is timing.
Some teams buy dedicated too early.
Other teams stay on shared too long.
Why “production” does not automatically mean dedicated
A common mistake is assuming every production workload needs dedicated vCPU.
That is not true.
Many production systems are fine on shared compute, especially when:
- traffic is moderate
- CPU spikes are short
- app latency is acceptable
- the workload is not CPU-bound
- caching works well
- database load is low
- the business is still early-stage
- cost efficiency matters
A small production website does not automatically need dedicated CPU.
A low-traffic SaaS app does not automatically need dedicated CPU.
An internal business dashboard does not automatically need dedicated CPU.
Production means the workload matters.
It does not always mean the workload is CPU-heavy.
Why “dedicated is faster” can be misleading
Dedicated vCPU can feel faster for workloads that are CPU-bound or sensitive to variance.
But it is not always the best performance upgrade.
If your app is slow because of:
- low RAM
- slow database queries
- missing indexes
- weak caching
- too many plugins
- poor application code
- slow external APIs
- inefficient frontend assets
- disk I/O pressure
- network latency
then dedicated CPU may not fix the main issue.
Sometimes the better move is:
- a larger shared VM
- more RAM
- better caching
- database tuning
- query optimization
- static asset optimization
- queue separation
- a better deployment architecture
Dedicated CPU helps when CPU consistency is the problem.
It should not be treated as a magic fix for every performance issue.
A simple mental model
Use this:
Shared vCPU buys value. Dedicated vCPU buys consistency.
That is the cleanest way to decide.
For a founder launching a new app, value may matter most.
For a team running a production database, consistency may matter most.
For a developer setting up staging, shared CPU is usually enough.
For a CI runner that blocks every deployment, dedicated CPU may save real time.
For a small WordPress site, shared CPU may be rational.
For a busy WooCommerce site with heavy database load, dedicated CPU may become worth considering.
The right choice depends on workload behavior.
Side-by-side comparison
| Factor | Shared vCPU | Dedicated vCPU |
|---|---|---|
| CPU model | Pooled compute | Reserved compute |
| Main value | Cost efficiency | Predictability |
| Price | Lower | Higher |
| Performance consistency | Moderate | Stronger |
| Noisy-neighbor risk | Higher | Lower |
| Best for | Bursty workloads | Sustained workloads |
| Good for dev/staging | Yes | Sometimes overkill |
| Good for databases | Light databases only | Better for production databases |
| Good for CI/CD | Small or occasional builds | Better for serious runners |
| Good for workers | Light workers | Better for busy queues |
| Ideal buyer | Wants value and flexibility | Wants CPU stability |
| Best first move | Start here if unsure | Choose when CPU need is clear |
The most important row is not price.
It is workload shape.
Workload shape matters more than workload name
Do not choose based only on what the workload is called.
Choose based on how it behaves.
For example:
A database can be light or heavy. An API can be quiet or latency-sensitive. A worker can run occasionally or continuously. A website can be static or CPU-heavy. A SaaS app can be early-stage or high-traffic.
The label is not enough.
Better questions:
- Is CPU usage sustained or occasional?
- Are spikes short or long?
- Is latency variance hurting users?
- Are queues falling behind?
- Are builds blocking the team?
- Is the database under real pressure?
- Is the workload business-critical?
- Would inconsistency cost more than the upgrade?
These questions lead to a better decision.
When shared vCPU is the right choice
Shared vCPU is the right choice when your workload benefits more from affordability and flexibility than from strict CPU consistency.
Websites and standard web apps
Most small websites, CMS sites, content sites, landing pages, internal dashboards, and moderate web apps should start on shared vCPU.
These workloads are often bursty.
A visitor loads a page. The server handles the request. Then CPU usage drops again.
You do not need reserved CPU for every simple website.
You need enough CPU, RAM, storage, caching, and network performance for the real traffic pattern.
Development and staging environments
Development and staging are classic shared-vCPU use cases.
They need enough resources to behave realistically.
They usually do not need perfect CPU consistency.
Shared vCPU helps teams run multiple environments without overspending.
Use shared vCPU for:
- staging apps
- test environments
- preview servers
- demo servers
- QA environments
- developer sandboxes
- temporary workloads
Early SaaS apps
Early SaaS products often need simple, affordable infrastructure more than premium compute guarantees.
If you are still validating demand, refining the product, or serving moderate traffic, shared vCPU is often the better starting point.
Do not pay for dedicated CPU just because the app is “production.”
Pay for dedicated CPU when the workload proves it needs consistency.
Small APIs and internal tools
Many APIs and internal tools spend much of their time waiting on:
- database queries
- network calls
- third-party APIs
- user actions
- background events
If CPU is not the main bottleneck, shared vCPU can be the better economic choice.
Bursty workloads
Shared vCPU works well when CPU pressure comes in short bursts.
Examples:
- small traffic spikes
- occasional admin tasks
- periodic reports
- lightweight cron jobs
- small background jobs
- moderate request traffic
The key is that CPU is not pinned for long periods.
When dedicated vCPU is the right choice
Dedicated vCPU is the right choice when CPU stability matters more than maximum resources per dollar.
Production databases under real load
Databases can be sensitive to inconsistent CPU behavior.
A production PostgreSQL, MySQL, MongoDB, or similar database may benefit from dedicated vCPU when it has:
- frequent queries
- concurrent users
- sustained writes
- heavy indexes
- analytics workloads
- high business value
- latency-sensitive reads
- predictable performance requirements
For light databases, shared may still be fine.
For important databases under real load, dedicated vCPU is safer.
CI/CD runners and build workers
CI/CD workloads are often CPU-heavy.
Builds, tests, and package compilation can use CPU continuously.
If build times swing wildly, developers lose time and deployments become harder to predict.
Dedicated vCPU can make CI/CD more stable.
This matters when the team depends on fast, repeatable pipelines.
Queue workers and background jobs
Workers are different from web servers.
A web server may handle a request and then go idle.
A worker may process jobs continuously.
Dedicated vCPU is often better for:
- image processing
- data transformation
- batch jobs
- report generation
- AI preprocessing
- file conversion
- video processing
- long-running queues
- CPU-heavy automation
If the VM is always working, reserved compute becomes more valuable.
Latency-sensitive APIs
Not every API needs dedicated CPU.
But if your API is customer-facing, revenue-sensitive, or part of another system’s critical path, latency consistency matters.
Dedicated vCPU becomes easier to justify when:
- p95 latency is unstable
- p99 latency hurts user experience
- requests slow down under moderate CPU pressure
- downstream systems depend on fast responses
- API performance affects conversion or revenue
Average latency is not enough.
Tail latency often tells the real story.
Sustained compute workloads
Dedicated vCPU is the stronger fit when CPU usage stays high for long periods.
Examples:
- encoding
- rendering
- compiling
- analytics processing
- simulations
- data pipelines
- continuous workers
- heavy scripts
Shared vCPU is not designed for workloads that constantly demand CPU.
Dedicated vCPU is.
Workload recommendations
| Workload | Better starting choice | Why |
|---|---|---|
| Marketing website | Shared vCPU | Low sustained CPU pressure |
| Small WordPress site | Shared vCPU | Usually memory, caching, and storage matter first |
| Business website | Shared vCPU | Good cost-performance starting point |
| Internal admin tool | Shared vCPU | Low-risk, variable usage |
| Development server | Shared vCPU | Cost efficiency matters |
| Staging server | Shared vCPU | Realistic enough without paying for reserved CPU |
| Early SaaS monolith | Shared vCPU | More total resources per dollar |
| Small API | Shared vCPU | Usually bursty request pattern |
| Production database under real load | Dedicated vCPU | CPU consistency matters |
| CI/CD runner | Dedicated vCPU | More predictable build time |
| Queue worker under sustained load | Dedicated vCPU | Continuous compute workload |
| Video encoding | Dedicated vCPU | CPU-heavy for long periods |
| Data processing | Dedicated vCPU | Sustained CPU pressure |
| Latency-sensitive API | Dedicated vCPU | Tail latency matters |
| Business-critical app with CPU pressure | Dedicated vCPU | Predictability has business value |
This table is a starting point, not a law.
Measure your workload before making expensive assumptions.

Signals you should stay on shared vCPU
Stay on shared vCPU when:
- traffic is still modest
- CPU spikes are brief
- users are not seeing performance issues
- your app is mostly waiting on database, disk, or network
- your real bottleneck is memory
- your real bottleneck is code or query efficiency
- budget matters more than perfect consistency
- you are still validating the product
- staging or development is the main use case
- a larger shared VM would solve the issue
A surprising amount of “we need dedicated CPU” is actually:
We need better caching. We need more RAM. We need to optimize the database. We need to reduce app overhead. We need a larger shared VM.
Dedicated CPU should solve a CPU consistency problem.
Do not use it to hide every other bottleneck.
Signals it is time to move to dedicated vCPU
Move to dedicated vCPU when the evidence is clear.
Strong signals:
- CPU usage is high for long periods
- p95 or p99 latency becomes unstable
- queue workers fall behind
- CI/CD build times vary too much
- the app is CPU-bound, not memory-bound
- database performance is inconsistent under load
- background jobs miss deadlines
- user experience is affected by CPU variance
- the workload is business-critical
- the cost of inconsistency is higher than the upgrade
The right time to move is before performance becomes a crisis, but after the pattern is visible.
Do not guess too early.
Do not wait until customers feel the pain.
How to check whether you are CPU-bound
Before switching from shared to dedicated vCPU, confirm the bottleneck.
Check:
- CPU utilization
- load average
- steal time if available
- memory usage
- swap usage
- disk I/O wait
- database slow queries
- request latency
- queue depth
- worker throughput
- application logs
- p95 and p99 response times
- deployment or build duration
- cron job runtime
CPU pressure often appears with other symptoms.
For example:
- CPU high + latency high = possible CPU bottleneck
- CPU low + memory full = memory issue
- CPU low + disk wait high = storage or I/O issue
- CPU moderate + slow queries = database optimization issue
- CPU high only during short bursts = shared may still be fine
- CPU high for long periods = dedicated may help
The goal is to upgrade the right constraint.
Cost mistakes to avoid
Mistake 1: Buying dedicated CPU too early
Dedicated vCPU is valuable when the workload uses it.
If the workload is small, bursty, or still experimental, dedicated CPU may waste budget.
Mistake 2: Staying on shared after CPU consistency becomes important
Shared vCPU is great until performance variance becomes operationally expensive.
If customers, builds, workers, or databases are suffering, the cheaper VM may no longer be cheaper.
Mistake 3: Comparing only vCPU count
A 4 vCPU shared VM and a 4 vCPU dedicated VM do not always behave the same under sustained load.
The allocation model matters.
Mistake 4: Ignoring RAM and storage
CPU is only one part of VM performance.
RAM, NVMe storage, network, database design, and application efficiency also matter.
Mistake 5: Treating dedicated CPU as a fix for bad architecture
Dedicated compute can help CPU-heavy workloads.
It will not fix bad queries, missing indexes, poor caching, or inefficient application design.
Example: same budget, different outcome
The same budget can produce different results.
A shared VM may give you more total RAM and storage.
A dedicated CPU VM may give you less total capacity but more predictable CPU behavior.
That means the right choice depends on the workload.
Example:
Need more memory for a web app? A larger shared VM may be better. Need predictable build times? Dedicated vCPU may be better. Need a simple staging server? Shared vCPU is usually enough. Need a production database under load? Dedicated vCPU is usually safer.
Do not compare only plan size.
Compare the kind of performance you need.
The upgrade path matters
Your first choice does not need to be perfect forever.
A good infrastructure plan should allow change.
A practical path:
Start with shared vCPU. Measure real workload behavior. Optimize obvious bottlenecks. Resize if the app needs more headroom. Move to dedicated vCPU when consistency becomes the real constraint.
This path prevents two common mistakes:
- overbuying before the workload exists
- underbuying after the workload becomes important
Start with the class that fits today.
Move when the evidence changes.
Raff-specific guidance
Raff organizes cloud server plans around two main VM classes:
- General Purpose
- CPU-Optimized
General Purpose is the better starting point when you need flexible compute for everyday workloads like websites, development environments, staging servers, small applications, internal tools, and early production apps.
CPU-Optimized is the better fit when you need more consistent CPU behavior for workloads like databases, CI/CD, encoding, workers, processing jobs, and latency-sensitive APIs.
A practical Raff decision rule:
Use General Purpose when value and flexibility matter most. Use CPU-Optimized when CPU consistency matters most.
For many teams, the smart move is not to start at the most expensive class.
The smart move is to start with the right class, observe the workload, and upgrade when the workload proves it needs a different CPU model.
Suggested Raff VM class by stage
| Stage | Recommended class | Why |
|---|---|---|
| Prototype | General Purpose | Keep cost low while testing |
| Development | General Purpose | Flexible and affordable |
| Staging | General Purpose | Realistic enough for testing |
| Early production | General Purpose | Good starting value for moderate workloads |
| Growing production app | General Purpose or CPU-Optimized | Depends on CPU behavior |
| Production database | CPU-Optimized | Better CPU consistency |
| CI/CD runner | CPU-Optimized | More predictable build times |
| Busy queue workers | CPU-Optimized | Sustained compute benefits from reserved CPU |
| Latency-sensitive API | CPU-Optimized | Lower variance matters |
This keeps the decision practical.
Do not buy a CPU class for status.
Buy the CPU class that matches the workload.
Decision framework
Use this decision framework before choosing.
Start with shared vCPU if:
- you are launching something new
- the workload is still unknown
- traffic is low or moderate
- CPU spikes are brief
- cost efficiency matters
- you need more RAM and storage for the budget
- occasional variance is acceptable
- you are running dev, staging, or small production
- you have not measured sustained CPU pressure
Start with dedicated vCPU if:
- the workload is already CPU-heavy
- CPU use is sustained
- latency stability matters from day one
- a database is central to production
- build times need to be predictable
- workers run continuously
- performance variance has a real business cost
- the app is known to be CPU-bound
- you already understand the workload shape
Move from shared to dedicated when:
- CPU is the confirmed bottleneck
- latency variance is hurting users
- workers or builds are inconsistent
- the database needs steadier compute
- a larger shared VM does not solve the issue
- the cost of unpredictability is higher than the cost of CPU-Optimized
Stay on shared longer when:
- the app is still early
- CPU spikes are short
- your bottleneck is memory or database design
- the workload is not business-critical
- you still need to optimize caching or queries
- the economics of shared compute still make sense
Recommended monitoring before switching
Before upgrading to dedicated vCPU, collect basic evidence.
Track:
- CPU utilization over time
- load average
- memory usage
- disk I/O wait
- request latency
- p95 latency
- p99 latency
- queue depth
- worker job duration
- build duration
- database query time
- error rate
- user-facing slowdowns
The decision becomes easy when you have data.
If CPU usage is low, dedicated CPU is probably not the first fix.
If CPU usage is sustained and performance variance hurts real work, dedicated vCPU becomes a strong option.
FAQ
What is the difference between shared and dedicated vCPU?
Shared vCPU uses pooled CPU resources across multiple workloads on the host. Dedicated vCPU reserves CPU resources for your VM, which usually gives more predictable CPU behavior under sustained load.
Is dedicated vCPU always faster than shared vCPU?
No. Dedicated vCPU is usually more predictable, but it is not always the best performance upgrade. If your bottleneck is memory, database design, storage, caching, or application code, dedicated CPU may not solve the real problem.
When should I choose shared vCPU?
Choose shared vCPU for websites, staging environments, development servers, small apps, internal tools, early SaaS products, and bursty workloads where cost efficiency matters more than strict CPU consistency.
When should I choose dedicated vCPU?
Choose dedicated vCPU for production databases, CI/CD runners, busy workers, encoding, processing jobs, latency-sensitive APIs, and workloads that use CPU heavily for long periods.
Can I run production workloads on shared vCPU?
Yes. Many production workloads can run well on shared vCPU if traffic is moderate, CPU pressure is not sustained, and occasional performance variance is acceptable.
Can I start with shared vCPU and move later?
Yes. For many teams, starting with shared vCPU, measuring the workload, optimizing obvious bottlenecks, and moving to dedicated vCPU later is the most practical path.
How do I know if I need dedicated vCPU?
You may need dedicated vCPU if CPU usage is sustained, p95 or p99 latency is unstable, workers fall behind, builds are unpredictable, or the workload is clearly CPU-bound and business-critical.
Is shared vCPU bad for databases?
Not always. Light databases can run on shared vCPU. For production databases under real load, dedicated vCPU is usually safer because database performance often benefits from more consistent CPU behavior.
What is CPU-Optimized best for?
CPU-Optimized is best for workloads that need more predictable compute behavior, such as production databases, CI/CD runners, encoding, heavy workers, data processing, and latency-sensitive APIs.
What is General Purpose best for?
General Purpose is best for websites, development environments, staging servers, internal tools, small APIs, early SaaS products, and everyday workloads that benefit from cost-efficient resources.
Conclusion
Shared vs dedicated vCPU is not a question of “basic” vs “serious.”
It is a question of cost efficiency vs CPU predictability.
Shared vCPU is usually the best starting point when your workload is moderate, bursty, early-stage, or cost-sensitive.
Dedicated vCPU is the better choice when CPU consistency matters more than getting the most total resources per dollar.
The right decision depends on the evidence:
- How much CPU does the workload use?
- Is the CPU pressure sustained?
- Are users affected by latency variance?
- Are workers or builds becoming unpredictable?
- Is the database under real production load?
- Would inconsistency cost more than the upgrade?
Start with the class that matches your workload today.
Measure the system.
Optimize the obvious bottlenecks.
Move to dedicated vCPU when CPU consistency becomes the thing your workload actually needs.
For teams choosing between Raff VM classes, General Purpose is the practical starting point for everyday cloud workloads. CPU-Optimized is the better fit when production stability, sustained compute, and predictable CPU behavior matter more than maximum resource value.
The best VM class is not the biggest one.
It is the one that matches the shape of your workload.
