在相同的硬件、Xen 或 KVM 上哪个更快?
我正在尝试采用一种可以提供最佳性能的虚拟化技术来工作。
我在这里找到了一些关于这个主题的基准:http: //virt.kernelnewbies.org/XenVsKVM
他们将 KVM 显示为赢家,在性能上有显着差异——这与 KVM 是类型 2 管理程序的想法背道而驰,根据定义它应该比类型 1 管理程序(如 Xen)慢——或者至少是网上的文章说。
对这个主题有任何想法吗?
在相同的硬件、Xen 或 KVM 上哪个更快?
我正在尝试采用一种可以提供最佳性能的虚拟化技术来工作。
我在这里找到了一些关于这个主题的基准:http: //virt.kernelnewbies.org/XenVsKVM
他们将 KVM 显示为赢家,在性能上有显着差异——这与 KVM 是类型 2 管理程序的想法背道而驰,根据定义它应该比类型 1 管理程序(如 Xen)慢——或者至少是网上的文章说。
对这个主题有任何想法吗?
该基准仅将本机操作系统的速度与单个客户操作系统的速度进行比较。这几乎不是真实世界的测试。我不认为我会给它太多的重量。大多数 KVM 阵营认为 Xen 需要太多的中断和内核和用户空间之间的跳跃,但是从我所见过的大多数更真实的基准测试来看,这些基准还没有真正实现,而且 Xen 似乎要快一些比KVM。
抱歉,我没有方便的备份链接。但我会说 KVM 正在快速改进,并且似乎正在快速赶上功能集和稳定性。
至于哪种方法更好。Xen 阵营会争辩说,真正的轻量级虚拟机管理程序需要虚拟化才能安全和快速。一些供应商也开始在固件中支持 Xen,这也很好。KVM 阵营会争辩说,KVM 更简单,Linux 能够成为一个好的管理程序。
最终,哪个方向最终会获胜仍不清楚。Xen 肯定有一个先机,并且已经拥有不错的市场份额。但它还没有在主线内核中。希望这会很快改变,在过去的几个月里,内核列表上肯定有很多关于这个的讨论。Red Hat 现在属于 KVM 阵营,并将推动它作为首选的虚拟化平台。即将推出的 Red Hat Linux 5.4 将是第一个包含它的版本。因此,这可能会吸引尚未推出或致力于虚拟化平台的商店。
就工具而言,Xen 和 KVM 都使用 libvirt 和 QEMU 以及与之相关的工具。因此它们共享许多相同的工具,例如 virt-manager。
我们在工作中使用 Xen,它对我们很有效。但由于一些 USB 转发和 PCI 直通问题,我一直在研究 KVM,而 Xen 无法解决这些问题。我不确定 KVM 是否在这方面做得更好,但我想我一试就会知道。我在研究 USB 问题时注意到的一件事是,与 Xen 相比,KVM 的文档更易于评估和组织。但是没有完美的虚拟化平台,所以你需要弄清楚什么对你有意义。
我个人会根据您正在使用的虚拟机的可用性、支持、可靠性和适用性来选择虚拟化。
Xen 网络数据传输速率似乎与真实硬件一样好,但我也与 Xen 和 vLans 以及多个以太网卡进行了一些战斗。我没有使用 KVM 的经验,但我也建议您也考虑使用 VMware ESX(i)。
您将在以下演示文稿中找到有关该主题的非常有趣的信息:Xen 和 KVM 的定量比较
这样做的人是 Xen 专家,但这种比较似乎很公平。
我可能会在这里冒险,但我不认为原始性能是此类技术最重要的指标。
我认为可用性和界面以及支持可靠基础架构的工具都很重要。在我看来,Xen 拥有比 KVM 更强大的现有应用程序集来支持它。情况可能并非如此,因为我没有证据支持它。
无论您使用什么,确定最适合您的解决方案,并查看整个软件包,而不仅仅是原始性能。
FWIW:答案完全取决于您现在和将来的需求。
是的,我知道这是一个无益的答案。不幸的是,这是真的。您对虚拟化的选择几乎会影响您之后所做的一切,因此您需要问自己几个问题。
(1) 97% 的原生性能和 96% 的原生性能(从空气中提取的数字)之间的差异对您来说真的那么重要吗?
(1a) 如果一个人在 HD 访问方面做得更好(这实际上意味着您要么正在使用一个非常棒的数据库,或者您买不起额外的 RAM),而另一个人在网络方面做得更好,这对您来说更重要?
(2) 您对使用任一解决方案提供的工具有信心吗?
(3) 一个是(某种)最近的 Linux 内核原生的,而另一个不是,这一事实有什么不同吗?
(3a) 您现在,或者您曾经……呃……您是否需要在虚拟化下运行不同的操作系统?它不一定是 Windows。它可能是 FreeBSD,甚至是 Haiku,或者其他什么。(Xen 可能在这里获胜,但我建议你检查一下。)
纵观全局,我认为 KVM 是 Linux 对 Solaris 区域的回应。(我宁愿拥有 Solaris 区域,但我看到了并行。)我认为 Xen 是一种成熟的管理程序技术,支持多个操作系统,但是如果您不需要多个操作系统,那没关系。
老实说,无论哪种方式,您都不会出错(鉴于上述警告)。我更喜欢 Xen,因为我去了剑桥;但是,如果我为 RH 工作,我可能更喜欢 KVM。
设置 KVM 的许多难易程度取决于分布。选择以 Xen 为中心的发行版将使 Xen 更容易。选择以 KVM 为中心的发行版将使 KVM 更容易。
工具问题有些无关紧要,因为两者都使用 libvirt。这意味着您在大多数情况下都使用相同的管理工具。
2017 年底,曾经是 Xen 最大用户的亚马逊宣布将在其所有新的 C5 实例类型中使用 KVM。据我所知,只有云提供商 SoftLayer 是 Xen 的大用户。Linode 于 2015 年切换,并报告了重大的性能改进。
很难找到现实的和最新的性能比较,但两种解决方案之间似乎并没有你想象的那么大的差距。根据用例,Xen 可以更快。KVM 有其他好处,它是 Linux 内核的一部分并被 RedHat 所接受,这也是相关的。例如,这个答案详细说明了为什么 Google 选择 KVM 作为 Google Compute Engine。
尽管如此,几乎所有的云提供商,尤其是谷歌和亚马逊,都选择了 KVM 而不是 Xen,这一事实有力地证明了对于典型的工作负载,KVM 在性能方面是一个非常好的选择。