高负载下 Xen 与 VirtualBox 相比如何?

高负载下 Xen 与 VirtualBox 相比如何?

在虚拟服务器的 CPU 和内存使用率较高的情况下,Xen 和 VirtualBox 哪个性能更好?

答案1

Xen 的性能通常比 VirtualBox 好得多,因为 VirtualBox 以客户操作系统不知道其在虚拟环境中运行的方式运行客户操作系统。或者换句话说,客户操作系统没有经过修改以虚拟方式运行。因此,VirtualBox 必须“捕获”内核类型指令,运行一些自定义代码,然后将控制权返回给客户。它可以使用 Intel 和 AMD 提供的硬件虚拟化支持,但即便如此,开销也会增加。

同时,Xen 确保客户操作系统重新编译以适应 Xen 模型。因此控制权可以顺利地从客户操作系统流向虚拟机管理程序,而无需假装客户操作系统可以直接访问硬件。

有关多种虚拟化技术的概述(包括性能测试数据),请阅读本报告。它只谈论 Linux,但涵盖了 Linux-Vserver、Xen、OpenVZ、KVM、VirtualBox 和 QEMU。Linux-Vserver 和 Xen 通常表现最佳,但请阅读报告以了解不同的工作负载。

综上所述,VirtualBox 在某些方面可能优于 Xen。如果您的客户操作系统有图形窗口层,那么 VirtualBox 可以很好地支持它,特别是如果您在客户操作系统中安装了一些特殊的 VirtualBox 组件。

最后,您应该知道 Xen 只能运行经过修改的客户操作系统。它无法运行未经修改的客户操作系统。

答案2

Hamish Downer 的回答最后一点是错误的。Xen 可以运行未修改的客户机,但它们必须作为完全虚拟化的 HVM 客户机运行。这样做需要主机具有支持 Intel VT 或 AMD-V 的 CPU 的硬件虚拟化支持。

Xen 和 Virtualbox 各有千秋,但它们是两种不同类型的虚拟机管理程序。Xen 是 1 型虚拟机管理程序,而 Virtualbox 是 2 型虚拟机管理程序。1 型虚拟机管理程序往往是您在服务器环境中发现的,而 2 型虚拟机管理程序往往更常用于运行您以桌面形式交互的多个操作系统。我认为这主要是因为它们简单且桌面集成性更好。然而,2 型虚拟机管理程序下的客户机距离底层硬件较远,并且往往比 1 型虚拟机管理程序下的客户机慢。正如所有事情一样,总会有例外。

答案3

我只能谈论 Xen,因为我只使用 Virtualbox 在我的 Mac 桌面上虚拟化 Windows 机器。

正如其他人提到的,Xen(以及基于 Xen 的 XenServer)使用半虚拟化内核,可显著改善 CPU 和内存受限的性能特征。但是,这仅适用于具有专用内核的 Linux 主机。您需要一个“启用”Xen 的内核才能利用这一点。

此外 - Windows 不支持以这种方式进行虚拟化,但其各自 CPU 上的 Intel VT 和 AMD-V 扩展会“捕获”Windows 并使其以半虚拟化方式运行。Windows 2003 和 Windows 2000 永远不会意识到它们正在虚拟化运行,而另一方面,Windows 2008 会检测到这一点并以所谓的“启蒙”模式运行,这可以与 Linux“半虚拟化”模式进行比较。

相关内容