Xen与KVM在性能上


36

在相同的硬件(Xen或KVM)上,什么更快?

我正在尝试采用一种虚拟化技术,该技术可以提供最佳性能。

我在此找到了一些基准测试:http : //virt.kernelnewbies.org/XenVsKVM

他们将KVM视为赢家,并且在性能上有显着差异-这与KVM是Type-2虚拟机管理程序的想法背道而驰,按照定义,它应该比Type-1虚拟机管理程序(例如Xen)要慢-或至少网络上的文章说。

关于这个主题有什么想法吗?


这种比较似乎很糟糕,因为它比较了KVM + 1xVM和Xen + 1VM ...如果仅在VM上进行虚拟化,那有什么意义呢?
Antoine Benkemoun

KVM不是2类管理程序。它绝对是type-1,并且绝对比Xen更接近硬件。所以是的,在完全相同的条件下,KVM的性能应该更好,尤其是在使用现代virtIO驱动程序的情况下
dyasny 2010年

如果您在2017年阅读此书(有人对该问题进行了琐碎的编辑),请意识到此问题及其答案已有八年历史了。现在,KVM与Xen的格局已大不相同。
thomasrutter

Answers:


33

该基准只是将本机操作系统与单个来宾操作系统的速度进行比较。这几乎不是一个真实的测试。我认为我不会对此给予太大重视。大多数KVM阵营都认为Xen在内核和用户空间之间需要太多的中断和跳数,但是从我已经看到的大多数更实际的基准测试中来看,它并没有真正实现,而且Xen似乎要快一些比KVM。

抱歉,我没有链接可以方便地进行备份。但是我要说的是,KVM正在快速改进,并且似乎正在迅速赶上功能集和稳定性。

至于哪种方法更好。Xen阵营将争辩说,真正的轻量级虚拟机管理程序需要虚拟化才能安全且快速。Xen也开始受到某些供应商的固件支持,这也很好。KVM阵营将争辩说KVM更简单,并且Linux能够成为一个很好的管理程序。

最后,尚不清楚哪个方向最终会获胜。Xen当然具有领先优势,并且已经拥有不错的市场份额。但这还不在主线内核中。希望这种情况很快会改变,并且在过去的几个月中,在内核列表上肯定有很多讨论。红帽公司现在已进入KVM阵营,并将把它作为首选的虚拟化平台。即将推出的Red Hat Linux 5.4将是第一个包含它的。因此,这可能会吸引尚未推出或致力于虚拟化平台的商店。

就工具而言,Xen和KVM都使用libvirt和QEMU及其相关工具。因此,他们共享许多相同的工具,例如virt-manager。

我们在工作中使用Xen,它对我们来说效果很好。但是由于一些USB转发和PCI直通问题,我一直在研究KVM,而Xen却无法解决。我不确定KVM在这方面是否会更好,但是我想一旦尝试就会发现。在研究USB问题时,我注意到的一件事是,与Xen相比,KVM的文档更易于评估和组织。但是没有完美的虚拟化平台,因此您需要弄清楚什么对您有意义。


知道将来还会举行吗?由于Redhat 5.4即将提供本机KVM支持,因此我想知道在1/2年内我将不必从Xen切换到KVM。谢谢。
SyRenity

1
我无法对未来进行任何预测。但是这些平台都不会消失。RedHat表示,他们致力于支持Xen以及KVM。只有时间会证明这是如何进行的。但是我不必担心6个月内就需要更改。也许几年后,开源虚拟化平台将有明显的领导者。
3dinfluence

有趣的是,迁移到KVM以获得USB支持-由于缺乏USB 2.0支持,我不得不考虑迁移!我从您的帖子中猜测Xen不会变得更好。
jkp 2010年

1
@jkp我在等待其他基础设施的替换。刚刚完成。因此,在接下来的几周里,我也许可以更深入地了解KVM。但是就我而言,该硬件不支持IOMMU(VTd)。因此,我不确定迁移到KVM是否会有所帮助。XEN需要IOMMU支持pci直通。但是KVM使用libvirt支持USB和PCI元素直通。因此,我希望在没有IOMMU的情况下也可以使用。现在,在Xen下,我知道要通过USB的唯一方法是通过USB PCI控制器,但是此信息可能已过时。
3dinfluence 2010年

1
@ 3dinfluence:我想您可能误解了USB和PCI支持的实现方式-libvirt本身不做任何事情,它仅提供一种配置VM虚拟机管理程序基础功能的方法。在这种情况下,功能是由KVM内核模块和Qemu用户空间代码的组合提供的。
jkp 2010年

7

我个人将根据可用性,支持,可靠性和对所用虚拟机的适用性来选择虚拟化。

Xen网络数据传输速率似乎和真实硬件一样好,但是我也曾与Xen和vLans以及多个以太网卡发生过争执。我没有KVM的经验,但我也建议您也考虑使用VMware ESX(i)。


1
Vmware服务器的IO性能非常非常差。如果必须使用vmware,请使用esx。
ko-dos

6

FWIW:答案完全取决于您现在和将来的需求。

是的,我知道这是一个无用的答案。不幸的是,这是事实。您选择的虚拟化将影响您以后所做的几乎所有事情,因此您需要问自己几个问题。

(1)97%的本机性能和96%的本机性能(飞扬的数字)之间的差异对您来说真的那么重要吗?

(1a)如果一个在HD存取方面做得更好(这实际上意味着您正在使用大量的强大数据库,或者您负担不起额外的RAM),而另一个在联网方面做得更好,这对您来说更重要?

(2)您是否有信心使用任一解决方案随附的工具?

(3)一个人(对于某种)是最近的Linux内核的本机,而另一个人不是本机的,这一事实是否有所作为?

(3a)您现在还是曾经……曾经……您是否需要在虚拟化条件下运行其他操作系统?不必是Windows。可能是FreeBSD,甚至是Haiku,等等。(Xen可能在这里赢了,但我建议您检查一下。)

纵观全局,我将KVM视为Linux对Solaris区域的回答。(我宁愿拥有Solaris区域,但我也能看到类似的东西。)我将Xen视为一种成熟的虚拟机监控程序技术,它支持多个操作系统,但是如果您不需要多个操作系统,那就没关系了。

老实说,无论如何您都不会错(鉴于以上警告)。我更喜欢Xen,因为我去过剑桥。但是,如果我为RH工作,我可能会更喜欢KVM。


6

在下面的演示中,您将找到关于该主题的非常有趣的信息:Xen和KVM的定量比较

这样做的人是Xen专家,但是比较似乎很公平。


感谢您的介绍,阅读内容似乎是Xen在CPU和Network IO上排名第一,而KVM在HD IO上排名第一。但是,阅读此数字(virt.kernelnewbies.org/XenVsKVM),似乎KVM在每次比较中均胜出。知道真相在哪里吗?:)
SyRenity

我相信我的演讲似乎更加现实。一次运行一台虚拟机。测试协议似乎更接近现实。
Antoine Benkemoun,2009年

+1有趣的演讲!Xen似乎具有更好的隔离性。
乔纳斯(Jonas)

5

在这里,我可能会一a不振,但是对于这种技术,我不认为原始性能是最重要的指标。

我认为可用性和接口以及支持可靠基础架构的工具很重要。在我看来,Xen具有比KVM更强大的支持它的现有应用程序。事实并非如此,因为我没有证据支持它。

无论您采用哪种方式,请确定最适合您的解决方案,并查看整个程序包,而不仅仅是原始性能。


您需要了解RHEV-管理非常简单且用户友好。
dyasny 2010年

2

设置KVM的许多困难或难处取决于发行版。选择以Xen为中心的分布将使Xen更容易。选择以KVM为中心的发行版将使KVM更容易。

工具问题有点无关紧要,因为两者都使用libvirt。这意味着您在大多数情况下都使用相同的管理工具。


1

2017年底,以前是Xen最大的用户的亚马逊宣布将对其所有新的C5实例类型使用KVM。据我所知,只有云提供商SoftLayer才是Xen的大用户。Linode于2015年改版,并报告了主要的性能改进

很难找到切合实际的最新性能比较,但是您似乎认为这两种解决方案之间似乎没有巨大的差距。根据使用情况,Xen可以更快。KVM还有其他好处,它们是Linux内核的一部分,并被RedHat包含。例如,此答案详细说明了Google为什么选择Google Compute Engine KVM。

尽管如此,几乎所有云提供商(尤其是Google和Amazon)都选择KVM而不是Xen的事实强烈表明,对于典型的工作负载,就性能而言,KVM是一个非常好的选择。


注意:Amazon使用的是KVM的修改版本,而不是本机版本。我不会说它们具有典型的工作负载,可能它们具有非常繁重
且不

@ALex_hha我的意思是,他们必须选择最适合其客户运行的应用程序的技术。从这个意义上讲,他们必须找到一种在不同用例上都能快速运行的设置。但我同意,在其他情况下(例如嵌入式系统),Xen可能具有更好的可比性。
PhilippClaßen18年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.