KVM vs OpenVZ / LXC
KVM vs OpenVZ: why the virtualisation type matters
KVM is full hardware virtualisation: your instance runs its own kernel and cannot see the host. OpenVZ and LXC are container technologies that share the host kernel, which means no custom kernel modules, no WireGuard on older hosts, unreliable Docker, and memory accounting that lets the provider oversell. If a VPS is unusually cheap, it is usually OpenVZ.
| Dimension | KVM | OpenVZ / LXC |
|---|---|---|
| Kernel | Your own | Shared with the host |
| Custom kernel modules | Yes | No |
| Docker | Fully supported | Unreliable or unsupported |
| Nested virtualisation | Yes | No |
| Non-Linux systems | FreeBSD, OpenBSD, Windows | Linux only |
| Memory guarantee | Truly reserved | Frequently oversold |
| Overhead | 2–5% | Near zero |
| Swap | Real swap | Emulated or absent |
Which should you choose?
KVM
Choose KVM for anything real. Every OnionVPS instance is KVM, without exception.
OpenVZ / LXC
OpenVZ is defensible only for the very cheapest single-purpose containers where you control nothing about the kernel.
Frequently asked questions
Can I run Docker on an OpenVZ VPS?
Usually not, and where it appears to work it depends on unsafe host configuration. Docker needs cgroups and namespaces that container-based virtualisation does not expose. Use KVM.
How do I tell whether a VPS is KVM or OpenVZ?
Run systemd-detect-virt, or check whether uname -r shows a kernel you can replace. On OpenVZ you cannot install a different kernel at all.