KVM, OpenVZ or LXC: what a KVM VPS gives you
Almost all the plans in the table above run on KVM: in recent years hosts have largely moved to it from container virtualization. The "KVM" label has become the norm, but it's still useful to understand the difference — it explains why some programs start on a cheap server and others don't.
How KVM differs from OpenVZ and LXC
KVM is hardware virtualization. Each virtual machine gets emulated "hardware" and boots its own operating system kernel, like an ordinary computer. To the system inside, it's a separate server.
OpenVZ and LXC are containers. All customers on a physical server run on one shared host kernel, and isolation is provided by the kernel itself. The overhead is lower, so containers are cheaper, but the host, not you, chooses the kernel version and its settings. More about these options on the OpenVZ VPS and LXC VPS pages.
What your own kernel gives you
- Docker and containers work without caveats, whereas in OpenVZ and LXC their support depends on the host's settings. There's a selection for this task: VPS for Docker.
- Kernel-level VPN. WireGuard is built into the Linux kernel and installs with one command on KVM; in a container you're left with a userspace implementation, if the host has opened the TUN device at all.
- Any OS. Windows, FreeBSD, your own image via ISO in the panel, disk encryption.
- Network and memory tuning. Your own swap, sysctl parameters, the BBR algorithm, nftables rules without restrictions.
That said, for a static site, a small bot or a scheduled script the difference is barely noticeable. If the program doesn't need its own kernel modules or Docker, a container will cope just as well and sometimes costs less. Problems start when the project grows and gets things a container can't do: moving to a new server mid-project is more awkward than taking KVM from the start.
Does KVM guarantee dedicated resources
Only partly. On KVM the system sees memory as ordinary RAM of the given size, with no "burst" memory above the guaranteed amount that was often sold on OpenVZ. But CPU cores are almost always virtual and shared with neighbours, and KVM doesn't change that. If you need stable CPU performance, look for "dedicated cores" or "dedicated vCPU" in the description and check steal time in top after purchase. The disk can also be overloaded by neighbours, so the drive type and IOPS limits matter more than the word KVM in the name.
How to check the virtualization
Log in to the server via SSH and run systemd-detect-virt: on KVM the command prints kvm, in a container openvz or lxc. If one thing is advertised and the system shows another, that's a reason to contact support or ask for a refund. On accsly the KVM filter is already applied, and each plan's card shows the price in your currency and the payment methods taken from the host's website.