Updated and tested 28 August 2026
If you searched "VDS" hoping for a video display standard or a data-science acronym, this is the wrong page. In hosting, VDS means virtual dedicated server, and the rest of this article uses it that way only: a KVM virtual machine whose virtual CPUs are mapped to physical cores reserved for that one machine, sold next to ordinary VPS plans whose vCPUs are scheduled across cores everybody shares.
That single difference is the whole product. RAM works the same way on both. Disk works the same way. The kernel, the panel, the snapshots, the IP, the reinstall button, all identical. What changes is who else can run on your cores, and the answer on a VDS is nobody.
What a VDS is at the hypervisor
On a standard VPS, each vCPU is a thread in the QEMU process and the host's Linux scheduler puts it wherever there's room. Hosts sell more vCPUs than they have cores, the scheduler juggles, and when the juggling fails you get steal time. On a VDS the provider takes those same threads and pins them. In libvirt terms that's the vcpupin element, which the domain XML reference describes as specifying "which of host's physical CPUs the domain vCPU will be pinned to"; in Proxmox it's the affinity option on the VM, which takes a core list such as affinity: 8-11. The other half is that the provider doesn't put any other guest on those cores. Pinning without reservation is just a VM that's stuck to a busy core; reservation without pinning is a VM that could still be scheduled onto a neighbour's core. A real VDS does both.
Proxmox's own VM settings documentation is careful to say that "the CPU affinity is not a security feature", and that's the right way to think about it. Pinning is a performance arrangement. Your isolation from other tenants comes from KVM, exactly as on a VPS, and the guide to KVM VPS hosting covers that side. Pinning adds nothing to it and takes nothing away.
Some providers use "dedicated vCPU" to mean a 1:1 ratio of vCPUs to physical threads on the host without pinning. That's a decent middle product and a different one. With 1:1 and no pinning, your thread still migrates between cores and still shares L1 and L2 cache with whoever lands next to it, and a burst from a neighbour still costs you scheduler latency even if it never costs you throughput. Ask which one you're buying.
What the scheduler does differently
The Linux CFS (and EEVDF since kernel 6.6) scheduler gives each runnable thread a share of the core proportional to its weight. Proxmox exposes that weight as cpuunits, "a relative weight which defaults to 100" on cgroup v2 hosts, and libvirt as shares. On a shared host every VM starts equal, so two busy 4 vCPU guests on the same four cores each get half. That's fair, and it's also why a VPS sold as "4 vCPU" delivers four cores' worth of time only when the neighbours are quiet.
Pinned and reserved cores take the scheduler out of the picture. Your thread wakes up, its core is idle because nobody else is allowed there, and it runs within microseconds. The ceiling is the physical core's clock, every time, and the floor is the same as the ceiling. That consistency is the thing people are paying for, more than the peak.
When dedicated cores matter
Single-thread heavy, latency-sensitive jobs, which is a smaller list than the marketing suggests but a real one.
Game servers first. Minecraft, Valheim, Rust, ARK, most of them run the world simulation on one thread with a fixed tick rate (20 ticks per second for Minecraft), and a tick that runs long because the core was busy elsewhere is felt by every player as lag at the same moment. High clock speed and an uncontended core is exactly the combination a game server wants, and it's the reason the Ryzen-based VDS plans exist as a category. Trading platforms are the same shape: MetaTrader terminals and expert advisors do their work on a single thread, order latency is measured in milliseconds and a 30 ms steal spike at market open is a missed fill. I wrote about that setup in the piece on forex VPS hosting for MetaTrader. The same logic covers any bot that reacts to a live feed.
Compilers and build servers, because a full build of anything large pegs every core for minutes and a shared host makes the build time a lottery. Databases with lock contention, since a thread holding a lock that gets descheduled by the host holds it for everyone else too (PostgreSQL's spinlocks and MySQL's InnoDB mutexes both behave badly when the core underneath them disappears mid-critical-section). And latency-sensitive APIs, where the p99 is the metric that matters and steal widens it without touching the median.
Audio and video encoding, scientific code, anything that's CPU-bound for long stretches: yes, though for those the throughput on a shared VPS is often fine and the argument is about predictability of run time, which matters when the encode has to finish before a deadline and doesn't when it's a nightly batch.


