Does Your VPS Support KVM? How to Check in 60 Seconds
KVM is the difference between a Windows VM that runs at near-native speed and one that crawls in pure software emulation. Four read-only commands tell you which one you have — and you can run them before you commit, on a server that costs pennies an hour.
01What KVM Actually Is
KVM stands for Kernel-based Virtual Machine. It is the part of the Linux kernel that lets a program borrow the CPU’s own virtualization instructions instead of pretending to be a processor in software. When QEMU runs a Windows guest on top of KVM, the guest’s instructions go straight to the physical chip.
Without it, QEMU has to interpret and re-emit every instruction itself. That mode is called TCG, for Tiny Code Generator, and it is why a Windows desktop running in software emulation feels like a video that keeps buffering.
KVM means hardware speed. No KVM means software emulation. Both will run Windows — only one feels like a real PC.
Here is the part most articles get wrong. KVM is not the same thing as having a “KVM VPS”. Almost every provider markets its servers as KVM, meaning the host uses KVM to carve your machine out of a bigger one. That tells you exactly nothing about whether you get to use KVM inside it. That second layer is called nested virtualization, and it is a separate decision — one most providers never mention.
Host-level KVM
- How your provider built the server you rent
- Advertised on nearly every hosting page
- Gives you a proper Linux VM with its own kernel
- Says nothing about what happens inside it
Nested virtualization
- Whether you can run KVM inside your VPS
- Rarely mentioned in the marketing at all
- Decided by a single flag on the host hypervisor
- The thing that actually decides your Windows speed
02The 60-Second Check
Connect over SSH and run these four commands. None of them install anything, change anything, or need root. They read a file, ask the kernel a question, and print an answer.
ls -l /dev/kvm
This is the whole test most of the time. /dev/kvm is the file a program opens
when it wants hardware acceleration. If it exists, you almost certainly have it.
grep -m1 -oE 'vmx|svm' /proc/cpuinfo
vmx means Intel VT-x. svm means AMD-V. Either one is the CPU flag
KVM needs. No output at all means the virtualization instructions are not being
passed through to your machine — and then KVM cannot work no matter what you configure.
systemd-detect-virt
This is the most revealing one. It tells you what kind of environment your server really
is: kvm for a genuine virtual machine, openvz or lxc
for a container sharing the host’s kernel, or none for bare metal.
lsmod | grep kvm
On a healthy server you will see kvm_intel or kvm_amd next to
kvm. On a container you will usually see nothing — and you cannot load it
yourself, because containers share the host kernel instead of having their own.
Paste this block and you get the complete answer in one screen:
echo "/dev/kvm : $(ls /dev/kvm 2>/dev/null || echo MISSING)"
echo "cpu flag : $(grep -m1 -oE 'vmx|svm' /proc/cpuinfo || echo NONE)"
echo "virtualization : $(systemd-detect-virt)"
echo "kvm modules : $(lsmod | grep -c '^kvm')"
03Reading the Results
There are four combinations you will actually meet in the wild. Match your output to the row.
| /dev/kvm | CPU flag | detect-virt | What it means |
|---|---|---|---|
| exists | vmx or svm |
kvm |
Full hardware acceleration. This is the result you want. |
| missing | vmx or svm |
kvm |
A real VM whose CPU supports it, but the host has switched nesting off. Only the provider can turn it on. |
| missing | nothing | openvz / lxc |
A container. KVM is impossible here, permanently. There is no setting you can change. |
| missing | nothing | kvm |
A VM whose CPU flags are being hidden from it. Common on heavily oversold hosts. |
If systemd-detect-virt answers openvz or lxc,
stop there. Containers share the host kernel, so there is no KVM device to expose and
no ticket that will create one. You need a different type of server, not a
different plan.
If you got missing, plus a CPU flag, plus kvm, you are in the
interesting middle case: your provider could give you KVM and has chosen not to.
That is worth one polite support ticket, because it is a single host-side flag and some
providers will enable it on request.
04Which Providers Give You KVM
This is the question almost nobody answers honestly, so here is what the providers themselves say. Note how little it has to do with price — Hetzner and Contabo are cheaper than DigitalOcean and are the ones saying no.
| Provider | Nested KVM | In their own words |
|---|---|---|
| DigitalOcean Droplets | Yes | Supported in all regions, but they state performance is often poor and they do not recommend it. |
| OVHcloud Public Cloud | Yes | The vmx flag is passed to your instance, so KVM, QEMU, VirtualBox and Hyper-V all work. |
| Hetzner Cloud | No | Cloud instances do not get it. Dedicated servers do. |
| Contabo VPS | No | Contabo states its VPS line lacks the hardware features needed. VDS and Bare Metal are different products. |
| Akamai / Linode | No | Not supported, because it conflicts with live migration. Bare Metal is their alternative. |
Providers change this quietly, per region and per plan, and they change it in both directions. The commands in section 02 take under a minute and are always right. The table just tells you where to look first.
05The Container Trap
There is a whole class of very cheap VPS built on OpenVZ or LXC. Instead of giving you a virtual machine, they give you a slice of the host’s own kernel. It is a real way to sell hosting cheaply, and for a web server it works fine.
For anything involving a nested VM, it is a dead end. You cannot load kernel modules, you
have no /dev/kvm, and there is no amount of configuration that changes either
of those facts. The container does not have a kernel of its own to load anything into.
Three signals that you are looking at a container rather than a VM:
The price is implausibly low
More RAM and CPU than a real VM at that price is only possible by sharing one kernel across many customers.
PRICING“vCPU” with no core details
Containers commonly sell CPU time shares rather than named cores. Real VM plans usually name the CPU family.
SPEC SHEETNo operating system choice
A container shares the host kernel, so you often get a distro template rather than a real install of your own.
ORDER FORM
None of those is proof. The proof is one command: systemd-detect-virt.
If it says openvz or lxc, you know immediately.
06If You Don’t Have KVM
This is the part that matters most, and it is the part most articles skip, because “no KVM” is usually written as if it were the end of the story. It is not.
QEMU runs perfectly well without KVM. It simply falls back to software emulation, the TCG mode from section 01, and keeps going. Windows installs. Remote Desktop works. The difference is speed, not possibility.
With KVM
- Instructions run on the physical CPU
- The desktop feels like a normal PC
- Installation and everyday use are quick
- The only thing you give up is nothing
Without KVM
- Every instruction is interpreted and re-emitted
- Everything works, but slowly
- Budget considerably more time for the install
- Fine for light, unattended workloads — painful for interactive ones
OS Installer checks for
/dev/kvm before it starts and uses hardware acceleration when it is there.
When it is not, it switches to software emulation on its own and carries on. You do not
configure anything, and you do not need a provider that offers KVM to get started.
So the honest decision is this. If you are already paying for a server, run the check, and if it comes back without KVM, try it anyway before you move. If you are choosing a provider right now and the workload will be interactive, pick one from the yes column.
07Before You Buy
Two things you can do in the next ten minutes that will save you a month of guessing.
Ask the provider the precise question
Do not ask “do you support KVM?” — the answer will be yes, because they use KVM on the host. Ask this instead: “Does /dev/kvm exist inside my instance, and is nested virtualization enabled on your platform?” A provider that knows its own platform will answer that immediately, and the ones who do not will answer vaguely.
EMAIL OR TICKETOr just test it for the price of a coffee
Almost every provider bills hourly. Spin up the smallest instance, SSH in, run the four commands, and destroy it. Ten minutes and a few cents gets you a definitive answer about the exact region and plan you were about to commit to.
10 MINUTESRunning a nested VM is usually allowed but not always supported. Some providers explicitly note it may perform badly, and none of them owe you a fix if it does. Read the acceptable use policy before you build something you depend on.
08Frequently Asked Questions
Does my VPS need KVM to run Windows?
No. Windows will install and run without it, because QEMU falls back to software emulation. KVM makes the virtual machine significantly faster and makes an interactive desktop usable. If your workload is light and largely unattended, running without KVM is a legitimate option.
Can I enable KVM myself on a VPS?
Not if the host has switched it off. Nested virtualization is a flag on the provider’s hypervisor, and it is not something a customer can turn on from inside the guest. If you see the vmx or svm flag but no /dev/kvm, a support ticket is your only path — and some providers will enable it on request.
Why does systemd-detect-virt say kvm when /dev/kvm is missing?
Because they answer different questions. systemd-detect-virt reports how your own server was built — in this case, as a KVM guest. The missing /dev/kvm means you are not allowed to create guests of your own inside it. Your machine is virtual; your machine is just not permitted to virtualize.
Is nested virtualization the same as virtualization?
No. Virtualization is your provider running your server on a physical machine. Nested virtualization is running a virtual machine inside that server. The first is what you are paying for; the second is what you need to run Windows in a VPS that is itself a virtual machine.
Will KVM make my Windows VPS faster to use over RDP?
It makes the guest itself faster, which is most of what you feel over RDP. A slow remote desktop is usually emulated CPU rather than a network problem, so the KVM check is worth doing before you spend time tuning RDP settings or changing regions.
How much does it cost to test a provider for KVM support?
Usually a few cents. Most providers bill by the hour, so the smallest instance for ten minutes costs almost nothing. Create it, run the four commands from section 02, note the answer, and destroy it. Do that before you commit to a monthly plan or a yearly one.
Found out you have KVM? Use it.
OS Installer deploys Windows 10 Pro, Windows 11 Pro, Windows Server 2022 or Server 2025 on your Ubuntu 24.04 server over SSH — with hardware acceleration when your provider gives it to you, and without it when they do not.
