Own kernel vs shared, dedicated vs floating memory, WireGuard and Docker, how to detect the virtualization type on your server, and which to choose.

When you pick a VPS, the spec sheet almost always names the virtualization type: KVM or OpenVZ (sometimes written as LXC or "container"). It decides whether the server has its own kernel, whether WireGuard and Docker will work, and whether the RAM is guaranteed. Here is how the two approaches differ, how to tell which one you have, and which to choose for a given job.

In short. KVM is a full virtual machine: its own Linux kernel, its own memory and swap, you can load kernel modules, install any OS, run a VPN and Docker with no caveats. OpenVZ is a container: all servers share the host's kernel, there is no kernel of your own, RAM can be "floating", and some settings are off limits. OpenVZ is cheaper and denser but finicky. For a VPN of your own, Docker, and predictable performance, choose KVM.

What VPS virtualization is

The provider takes one physical server and splits it into many virtual ones. How it is split is the virtualization type. There are two families.

Hardware virtualization (KVM, also Xen HVM, VMware) - the physical server runs a hypervisor, which creates separate virtual machines. Each machine believes it is a real computer: its own BIOS, its own OS kernel, its own virtual disks and network card.

OS-level virtualization (OpenVZ, LXC, containers) - the physical server runs a single Linux kernel, and that kernel isolates groups of processes from one another. Each group looks like a separate server, but they all share the same kernel - the host's.

KVM: a full virtual machine

KVM (Kernel-based Virtual Machine) is hardware virtualization built into the Linux kernel. A KVM VPS:

  • Has its own kernel. You can update it independently of the provider, load modules (wireguard, nf_tables, tun), build a custom kernel.
  • Gets dedicated memory. Whatever the plan says is what you have; it will not be lent to a neighbour.
  • Has real swap. A swap file or partition is created and behaves like on any normal server.
  • Runs any OS. Linux, Windows, FreeBSD - the hypervisor does not care.
  • Gives full system access. dmesg, changing kernel parameters (sysctl), enabling BBR, packet forwarding, nested Docker and LXC containers inside the VPS.

The price is a small overhead: the hypervisor spends a few percent of resources on emulation. In practice it is not noticeable.

OpenVZ and LXC: OS-level virtualization

OpenVZ (and its relative LXC) does not create a virtual machine. It slices one physical server into isolated environments on top of a shared kernel. An OpenVZ VPS:

  • Has no kernel of its own. It is shared with the host and usually older than what you would install yourself. Kernel modules cannot be loaded.
  • Often gets "floating" memory. Instead of real swap there is vSwap; the stated amount may be "up to" rather than "guaranteed".
  • Is limited in settings. Parts of /proc and /sys are read-only, a number of sysctl values cannot be changed, dmesg is empty.
  • Linux only. No Windows or BSD.
  • Is denser and cheaper. Almost no overhead, the provider fits more clients on one machine - hence the low price, but also a higher noisy-neighbour risk.

A sign of OpenVZ is a /proc/vz directory or a /proc/user_beancounters file inside the server.

OpenVZ's own trajectory is worth a note: the industry has treated it as a fading technology for a while. Major cloud providers moved to KVM back in the 2010s, the official OpenVZ project moves slowly these days, and most modern distributions do not prioritize testing their kernel against it. LXC as a format is still alive and used - but more often as a wrapper around the same KVM/QEMU stack (LXD and Incus, for instance, can run both system containers and full VMs) rather than as a standalone replacement for hardware virtualization. In practice, if a plan lists OpenVZ, it is almost always a budget VPS from a small provider, not the 2026 mainstream choice.

KVM vs OpenVZ: a table

Aspect

KVM

OpenVZ / LXC

Own kernel

yes

no, shared with host

Kernel modules (WireGuard etc.)

load normally

cannot

RAM

dedicated

often "up to", vSwap

Swap

real

vSwap or disallowed

Operating system

Linux, Windows, BSD

Linux only

Docker

no caveats

provider-dependent, can break

Access to kernel parameters

full

limited

Overhead

a few percent

near zero

Noisy-neighbour risk

lower

higher (denser packing)

Price

higher

lower

How to tell which virtualization your server uses

Log in over SSH and run any of these.

systemd-detect-virt

Prints kvm, openvz, lxc or none (the last one means a physical server).

hostnamectl | grep Virtualization

A line like Virtualization: kvm or Virtualization: openvz.

ls /proc/vz /proc/user_beancounters 2>/dev/null

If either exists, you are on OpenVZ. If the command prints nothing, it is most likely KVM.

lscpu | grep -i hypervisor

On KVM the output includes Hypervisor vendor: KVM.

What it changes in practice

  • A VPN of your own. WireGuard on KVM installs as a kernel module in a couple of commands. On OpenVZ there is no module - only a userspace implementation works, and not with every provider.
  • Docker and Kubernetes. On KVM, out of the box. On OpenVZ there can be trouble with cgroups and the overlay filesystem; some providers simply forbid Docker on OpenVZ.
  • Load at peak. On KVM, memory and cores are dedicated - under load the server behaves predictably. On OpenVZ with "floating" memory a process can be killed by the OOM killer unexpectedly, because the real amount is less than stated.
  • Fine network tuning. BBR, forwarding, non-standard sysctl, custom nftables rules with modules - all of this is KVM territory.
  • Your own kernel and fresh features. New kernel capabilities are available on KVM right away; on OpenVZ - whenever the provider brings them to the host.

Which to choose

Choose KVM if you plan a VPN of your own, Docker, non-standard networking, Windows, or if predictable performance under load matters. It is the default for most jobs.

OpenVZ makes sense only when you need the cheapest possible server for a simple task with no kernel requirements: a small site, a bot, a cache, a test bench - and you accept that a neighbour on the same machine may drag performance down.

WeaselCloud servers run on KVM: dedicated memory, your own kernel, WireGuard and Docker with no caveats.

Common questions

Are OpenVZ and VPS the same thing? No. A VPS is any virtual server. KVM and OpenVZ are two ways to build one.

Is KVM slower because of the overhead? The difference is a few percent, invisible in real work. In return there is no risk of the provider overselling memory.

Can I change the virtualization type on my own server? No, it is set by the provider. To switch, you need a new server on the virtualization you want.

What is KVM in the cloud? Most cloud providers use KVM (or an evolution of it) under the hood. A "cloud VPS" is almost always KVM with an extra management layer.

Next steps

🎁 40% off the first month of a new VPS. Promo code GUIDE40
Enough theory. Grab a VPS and check the virtualization type with a command yourself.
Enter GUIDE40 at checkout. One use per customer.
Pick a VPS and claim the discount →