Does your VPS support nested virtualization? A 30-second check
Before you install Proxmox VE or KVM on a VPS, check that the server exposes hardware virtualization to you. Without it, VMs either won’t start or run in slow software emulation.
Running VMs inside a VPS — Proxmox VE, KVM with libvirt, a GNS3 or EVE-NG lab — needs the host to pass the CPU’s virtualization extensions through to your server. Many providers don’t. Here’s how to tell in under a minute.
1. Does the CPU show the virtualization flag?
grep -m1 -owE 'vmx|svm' /proc/cpuinfovmx means Intel VT-x is exposed, svm means AMD-V. No output means the flag isn’t passed through and hardware-accelerated VMs won’t work. lscpu says the same thing in words:
$ lscpu | grep -E '^Virtualization:'
Virtualization: VT-xDon’t count matches with grep -c vmx /proc/cpuinfo. Newer kernels print a separate “vmx flags” line for each CPU, so the count comes out double — our 4-CPU test server reported 8.
2. Is /dev/kvm there?
ls -l /dev/kvmThe KVM device appears once the kvm_intel or kvm_amd module is loaded. If the flag from step 1 is present but /dev/kvm isn’t, load the module and look again:
modprobe kvm_intel # or: modprobe kvm_amd
lsmod | grep '^kvm'
ls -l /dev/kvmOn Ubuntu, kvm-ok from the cpu-checker package runs these checks for you and prints a verdict.
What the results mean
| vmx / svm flag | /dev/kvm | What you can do |
|---|---|---|
| Present | Present | Hardware-accelerated VMs work. Proxmox VE, KVM and libvirt will run VMs at near-native speed. |
| Present | Missing | Load kvm_intel / kvm_amd (above). If loading fails, ask your provider — the flag may be shown without working support. |
| Missing | Missing | No nested virtualization. VMs only run in software emulation (QEMU TCG), which is far too slow for a real workload. Containers (LXC, Docker) still work. |
Nesting one more level
If you plan to run a hypervisor inside one of your VMs (a lab inside Proxmox inside a VPS), check whether your server’s KVM module allows nesting further:
cat /sys/module/kvm_intel/parameters/nested # Y = allowed (kvm_amd on AMD)Proxmox’s nested virtualization page covers turning it on and the CPU type the inner VM needs.