参考文章:
KVM ESXI 性能比较
虚拟机监控程序性能对于基础架构的影响,是需要考虑的最主要因素之一。KVM 和 ESXi 都是 1 型虚拟机监控程序,它们的性能优于 2 型虚拟机监控程序。
和 KVM 相比,ESXi 在创建和启动服务器时通常耗时更久。在运行服务器时,ESXi 的速度也要稍慢一些,尽管这种差异在运行常规负载时并不明显。在速度方面,SPECvirt_sc2013 基准测试表明,KVM 的应用运行速度接近原生速度,比业界的其他虚拟机监控程序都快。
目前市面上常用的虚拟机技术主要有KVM、xen、vmware。
KVM是指基于Linux内核(Kernel-based)的虚拟机(Virtual Machine)。KVM最大的好处就在于它是与Linux内核集成的,所以速度很快。KVM的宿主操作系统必须是Linux,支持的客户机操作系统包括Linux、Windows、Solaris和BSD,运行在支持虚拟化扩展的x86和x86_64硬件架构上,这意味着KVM不能运行在老式CPU上,新CPU如果不支持虚拟化扩展也不能运行(如英特尔的Atom处理器)。
Xen是一个开放源代码虚拟机监视器,由剑桥大学开发。Xen的缺点是操作系统必须进行显式地修改(“移植”)以在Xen上运行(但是提供对用户应用的兼容性),所以比较麻烦。使得Xen无需特殊硬件支持,就能达到高性能的虚拟化。Linux的官方内核在较早之前已经去掉了对Xen的支持。
VMWare (Virtual Machine ware)是一个“虚拟PC”软件公司。它的产品可以使你在一台机器上同时运行二个或更多Windows、DOS、LINUX系统。与“多启动”系统相比,VMWare采用了完全不同的概念。多启动系统在一个时刻只能运行一个系统,在系统切换时需要重新启动机器。VMWare是真正“同时”运行,多个操作系统在主系统的平台上,就象标准Windows应用程序那样切换。而且每个操作系统你都可以进行虚拟的分区、配置而不影响真实硬盘的数据,你甚至可以通过网卡将几台虚拟机用网卡连接为一个局域网,极其方便。安装在VMware操作系统性能上比直接安装在硬盘上的系统低不少,因此,比较适合学习和测试。
KVM、Xen、VMWare的对比如下表所示。

KVM 与 XEN 的区别
- KVM 是嵌入在 Linux 系统内核中的技术,是作为 Linux 内的一个线程运行; XEN 是在 Linux 系统上的功能模块。
- KVM 只能虚拟全虚拟化的 Windows 和 Linux 虚拟机; XEN 可以虚拟半虚拟化的 Linux 虚拟机。
- KVM 基于嵌入式虚拟化技术,性能比 XEN 及其他虚拟化技术要好很多。
- KVM 和 XEN 可以同时存在于 Linux 5.4 中,但只能单独运行一个 Kernel ,即运行 KVM 时不能运行 XEN ,反之运行 XEN 是不能运行 KVM 。 Virt-Manager 可以同时管理服务器 1 上 KVM 的虚拟机和服务器 2 上 XEN 的虚拟机。
KVM 虚拟化常见问题
1. 系统 ( 处理器 ) 需求 ?
需要一台运行最新 linux 内核的 Intel 处理器 ( 含 VT 虚拟化技术 ) 或 AMD 处理器 ( 含 SVM 安全虚拟机技术的 AMD 处理器 , 也叫 AMD-V).2. 什么是 Intel VT/AMD-V?
Intel VT 和 AMD’s AMD-V 是一套与支持该技术的虚拟机监视器相结合的硬件增强特性 ( 指令集扩展 ). KVM 可在原始硬件速度下通过运行完全隔离的虚拟机来执行任务 .3. 如何确认处理器含有 Intel VT 或 AMD-V 技术 ?
在最新的 Linux 内核下运行 : egrep ‘^flags.*(vmx|svm)’ /proc/cpuinfo
如有显示 , 您的处理器具有 VT 功能 . 你也可以通过厂商网站查询处理器型号的名称 ( 在 /proc/cpuinfo).
注 : 一些厂商禁止了机器 BIOS 中的 VT 选项 , 这种方式下 VT 不能被重新打开 .
./proc/cpuinfo 仅从 Linux 2.6.15(Intel) 和 Linux 2.6.16(AMD) 开始显示虚拟化方面的信息 . 请使用 uname -r 命令查询内核版本 .4.KVM 支持哪些用户空间工具 ?
KVM 使用稍改动的 qemu 程序来创建虚拟机 . 一旦运行后 , 虚拟机是一个标准的进程 . 你可以使用 top(1),kill(1),taskset(1) 和类似的工具来管理虚拟机 .5.KVM 支持哪些虚拟磁盘格式 ?
KVM 从 qemu 继承了丰富的磁盘格式 , 包括裸映象 (raw images), 原始 qemu 格式 (qcow), VMware 格式和更多 .6.KVM 和 Xen 有何区别 ?
Xen 是一个外部的 hypervisor 程序 ( 虚拟机管理程序 ); 它能够控制虚拟机和给多个客户机分配资源 . KVM 是 linux 的一部分 , 可使用通常的 linux 调度器和内存管理 . 这意味着 KVM 更小更易使用 .
另一方面 , Xen 同时支持全虚拟化和半虚拟化 ( 修改过的客户机能有更好的性能 ). KVM 当前不支持半虚拟化 .7.KVM 和 VMware 有何区别 ?
VMware 是一个专利产品 . KVM 是一个遵守 GPL 的自由 ( 开源 ) 软件 .8.KVM 和 QEMU 有何区别 ?
Qemu 使用模拟器 ; KVM 使用处理器扩展实现虚拟化 .9.KVM 有 windows 上的版本吗( KVM 可以安装在 Windows 上么) ?
当前没有 .10.KVM 支持哪些内核版本 ?
KVM 可以运行在最新的内核版本下 (2.6.16 或更高 , 最好是用最新的内核 )11. 我需要多什么 RAM( 内存 ) 才能运行 KVM?
你需要足够的内存在主机上运行单个或多个虚拟机 . 建议主机内存至少 1GB.12.KVM 上的虚拟机支持哪些操作系统 ?
Linux(32/64 位 ) 和 Windows(32 位 /64 位 ).13.KVM 支持在线迁移功能吗 ?
支持。14.KVM 能够在 64 为主机上运行 32 位的客户机吗 ?
KVM 支持在 64 位主机上运行 32 位客户机 , 但不支持在 32 位主机上运行 64 位客户机 .15. 如果我对一个 VM 进程使用 kill -9 将会发生什么 ?
从客户机的角度来看 , 就如你猛地把电源线从主机上拔出一样 . 从主机的角度来看 , 进程被杀掉 , 进程占用的所有资源被施放 .16.KVM 支持 SMP 主机吗 ?
支持 .