Answers:
Xen通常会比VirtualBox表现更好,因为VirtualBox会以一种来宾OS不知道它在虚拟环境中运行的方式来运行来宾OS。或者换句话说,来宾OS并未修改为虚拟运行。因此,VirtualBox必须“捕获”内核类型指令,运行一些自定义代码,然后将控制权返回给来宾。它可以使用Intel和AMD提供的硬件虚拟化支持,但即便如此,开销仍会增加。
同时,Xen确保将客户机OS重新编译以适合Xen模型。因此,控制从来宾OS顺利流向虚拟机管理程序,而不必冒充来宾OS可以直接访问硬件的开销。
有关许多虚拟化技术的概述,包括性能测试的数据,请阅读此报告。它仅涉及Linux,但涵盖了Linux-Vserver,Xen,OpenVZ,KVM,VirtualBox和QEMU。Linux-Vserver和Xen通常是性能最好的,但是请阅读该报告以了解不同的工作负载。
综上所述,VirtualBox在某些方面可能胜过Xen。如果您的来宾操作系统具有图形窗口层,则VirtualBox对此具有良好的支持,尤其是如果您在来宾OS中安装了一些特殊的VirtualBox组件。
最后,您应该知道Xen将仅运行经过修改的来宾OS。它不能运行未修改的来宾操作系统。
Hamish Downer的答案在最后一点上是错误的。Xen可以运行未修改的guest虚拟机,但是它们必须作为完全虚拟化的HVM guest虚拟机运行。为此,要求主机计算机具有支持Intel VT或AMD-V的cpu的硬件虚拟化支持。
Xen和Virtualbox都有各自的位置,但是它们是两种不同类型的虚拟机管理程序。Xen是类型1虚拟机管理程序,其中Virtualbox是类型2虚拟机管理程序。在服务器环境中通常会看到类型1虚拟机管理程序,而在服务器环境中,类型2虚拟机管理程序对于运行与台式机交互的多个OS更为常见。我认为这主要是由于其简单性和更好的桌面集成性。但是,类型2虚拟机管理程序下的客户机比底层硬件更远,并且往往比类型1虚拟机管理程序下的客户机慢。与所有内容一样,规则总是有例外。
我只能说Xen,因为我只使用Virtualbox在Mac桌面上虚拟化Windows计算机。
就像其他人提到的那样,Xen(以及基于Xen的XenServer)使用半虚拟化内核,可以大大提高Cpu和内存绑定的性能特征。但是,这仅适用于具有专用内核的Linux主机。您需要Xen-“ enabled”内核才能利用此优势。
另外-Windows不支持以这种方式进行虚拟化,但是它们各自CPU上的Intel VT和AMD-V扩展“赶上”了Windows,并使其以半虚拟化方式运行。Windows 2003和Windows 2000从不知道它们正在虚拟化运行,而Windows 2008则检测到它们并以所谓的“启蒙”模式运行,可以将其与Linux的“半虚拟化”模式进行比较。