Although virtulized machines behave almost like physical machines some limitations apply. These affect both, the guest as well as the host system.
The following general restrictions apply when using KVM:
KVM allows for both memory and disk space overcommit. It is up to the user to understand the implications of doing so however, as hard errors resulting from actually exceeding available resources will result in guest failures. CPU overcommit is also supported but carries performance implications.
Most guests require some additional support for accurate time keeping. Where available, kvm-clock is to be used. NTP or similar network based time keeping protocols are also highly recommended (for host and guest) to help maintain a stable time. When using the kvm-clock running NTP inside the guest is not recommended.
If no MAC address is specified for a NIC, a default MAC address will be assigned. This can result in network problems when more than one nick receives the same MAC address. It is recommended to always specify a unique MAC address for each NIC.
Live Migration is only possible between hosts with a processor from the same vendor. Guest storage has to be accessible from both hosts.
The management tools (virt-manager,
vm-install) can only be used by the user
root
. In order to invoke qemu-kvm from the
command line, a user has to be a member of the group kvm
.
Suspending or hibernating the host system while guests are running is not supported.
The following limits hardware limits for guests have been tested, and are supported:
max. Guest RAM size |
512 GB |
max. Virtual CPUs per guest |
16 |
max. NICs per guest |
8 |
max. Block devices per guest |
4 emulated, 20 para-virtual (using |
max, number of guests |
no more than 8 times the number of cpu cores in the host |
Basically workloads designed for physical installations can be virtualized and therefore inherit the benefits of modern virtualization techniques. However, virtualization comes at the cost of a slight to moderate performance impact. You should also always test your workload with the maximum anticipated CPU and I/O load to verify if it is suited for being virtualized. Although every reasonable effort is made to provide a broad virtualization solution to meet disparate needs, there will be cases where the workload itself is unsuited for kvm virtualization.
We therefore propose the following performance expectations for guests performance to be used as a guideline. The given percentage values are a comparison of performance achieved with the same workload under non-virtualized conditions. The values are rough approximations and cannot be guaranteed.
Category |
Fully Virtualized |
Paravirtualized |
Host-Passthrough | ||
---|---|---|---|---|---|
CPU, MMU |
7% |
not applicable |
| ||
Network I/O (1GB LAN) |
20% (Realtek emulated NIC) |
75% ( |
95% | ||
Disk I/O |
40% (IDE emulation) |
85% ( |
95% | ||
Graphics (non-accelerated) |
50% (VGA or Cirrus) |
not applicable |
not applicable | ||
Time accuracy (worst case, using recommended settings without NTP) |
95% - 105% (where 100% = accurate) |
100% ( |
not applicable |