KVM (Kernel-based Virtual Machine) is the virtualization technology built into the Linux kernel. It turns a Linux server into a hypervisor that runs many isolated virtual machines, each with its own kernel and operating system. Most modern VPS hosting, including all VPS.DO VPS plans, is built on KVM. Here’s what that means for you as a user.

How KVM works

  • Hardware virtualization: modern CPUs have extensions (Intel VT-x, AMD-V) that let guest operating systems run directly on the CPU, at near-native speed, while the host keeps control.
  • The kvm kernel module exposes this to user space. Each virtual machine is a normal Linux process on the host, scheduled like any other.
  • QEMU emulates the rest of the machine: disks, network cards, the BIOS/UEFI, and the console.
  • virtio drivers in the guest give fast, paravirtualized disk and network I/O, instead of emulating old hardware.
  • Management tools (libvirt, and the provider’s control panel) create, start, stop and reinstall VMs.

Full virtualization vs containers

KVM (full virtualization) Containers / OS-level (LXC, OpenVZ)
Kernel Own kernel per VM Shared host kernel
Operating systems Any Linux distribution, Windows, BSD Same-kernel Linux only
Isolation Strong (hardware-level boundary) Process-level
Kernel modules, custom kernels Yes No
Docker, Kubernetes, WireGuard kernel module Yes Limited or provider-dependent
Overhead Small Smaller

See KVM vs OpenVZ vs LXC.

What a KVM VPS lets you do

  • Run any supported OS: Ubuntu, Debian, CentOS, AlmaLinux, and Windows Server (on plans with enough disk). See KVM VPS and Windows VPS.
  • Load kernel modules, and tune kernel parameters with sysctl (TCP settings, BBR congestion control, and more). See TCP BBR.
  • Run Docker, Podman, Kubernetes (k3s, kubeadm) and VPN servers (WireGuard, OpenVPN) without restrictions. See Docker VPS and WireGuard VPN server.
  • Use your own firewall (iptables or nftables, UFW) inside the VM.
  • Access the server through a VNC console in the control panel, even when networking is broken. That’s handy for firewall mistakes.

Check that you’re on KVM

systemd-detect-virt          # prints "kvm"
lscpu | grep -i hypervisor   # Hypervisor vendor: KVM
lsmod | grep virtio          # virtio drivers loaded

Performance considerations

  • vCPU: each vCPU is a thread scheduled on the host’s physical cores. Performance depends on the host CPU and on how the provider allocates resources. See vCPU explained.
  • Steal time (st in top) shows time your VM waited for the host CPU. Consistently high steal means contention.
  • Disk: virtio-blk or virtio-scsi on SSD storage gives good I/O. Benchmark with fio. See fio disk benchmark.
  • Network: virtio-net provides near line-rate throughput. Test with iperf3. See iperf3 bandwidth test.
top        # watch the "st" value in the CPU line
vmstat 1 5 # "st" column

Nested virtualization

Running VMs inside a KVM VPS (for example a hypervisor, or Android emulators) requires nested virtualization, which many providers don’t enable. Containers (Docker, LXC) work fine without it.

KVM vs other hypervisors

KVM competes with VMware ESXi, Microsoft Hyper-V and Xen. KVM dominates in Linux-based hosting and public clouds, because it’s part of the Linux kernel, open source, and well supported by tooling (libvirt, Proxmox VE, OpenStack).

Quick reference

Item Meaning
KVM Linux kernel hypervisor (hardware virtualization)
QEMU Device emulation for KVM guests
virtio Fast paravirtualized disk and network drivers
Check systemd-detect-virt → kvm
CPU contention st (steal) in top / vmstat

Related: what is a VPS and VPS vs cloud hosting.

  • Virtualization
  • KVM
  • VPS Guide