虚拟机与物理主机的性能有何不同?


15

在我工作的地方,我们使用Debian Linux Distribution运行相对强大的PC。但是,对于某些我们需要安装的程序,最好拥有CentOS,而这些将是我们的主要工作工具。可以为工作场所中的所有计算机更改操作系统,但是为了简化起见,我们试图确定使用VirtualBox是否是更好的选择。

这一切都取决于以下几点。我们需要运行的程序是模拟器,它们是处理器密集型任务,每次启动模拟时,它们可以轻松运行长达一个小时或更长时间。我们需要确定使用Virtual Box时的性能下降是否足够大以值得我们更换操作系统。

因此,我的问题是,是否有人可以证实我在虚拟机中运行处理器密集型任务而不是在本机PC上运行对性能有何影响?

谢谢。

Answers:


15

对于数字运算程序(每个CPU都非常有限),VM的性能几乎应为零。这些指令直接在CPU上运行,主机和VM上的指令相同。

即使是严肃的编译任务,性能差异也几乎不明显。我们在Windows的VMware中运行CentOS VM。

由于您在主机上运行Linux,因此您可能还会考虑使用KVM(内核虚拟机)而不是VirtualBox。它是一系列内核模块,使用大多数现代CPU上可用的Intel VT-x虚拟化扩展,在Linux中提供虚拟化服务。QEMU使用KVM作为加速器,直接在主机CPU上运行x86代码。

只需安装virt-manager即可试用。


好。我会试一试。谢谢回复。
aarelovich

在性能方面,KVM与VirtualBox相比如何(假设在Linux系统上运行Windows 10)?
罗伊

如果VirtualBox利用CPU虚拟化扩展(如KVM一样),并且它们的工作负载主要受CPU约束,则它们应该几乎相同。如果任务是I / O繁重的任务,则性能将取决于所选的硬件。KVM具有超虚拟化驱动程序(virtio),可以大大超过仿真设备(例如E1000 NIC和LSI SCSI磁盘控制器)的驱动程序。通常,尽管它们应该合理地接近。
乔纳森·莱因哈特

6

对此没有一个好的答案。这在很大程度上取决于您如何使用VM以及使用哪些程序。

例如,使用VMWare(类型2虚拟机管理程序)和纯CPU绑定程序可产生几乎全CPU速度。如果我使用相同的系统管理程序,并且该程序具有许多系统调用,则我的速度将大大降低。

当您使用1型虚拟机管理程序(无来宾)操作系统时,情况也会发生变化。即使在这些之间,您也有很多差异。例如,它支持的Xen具有5(IIRC,来自上个周末FOSDEM关于Xen的演讲)。从硬件使用到虚拟化。

总结:根据要求,它的变化范围从几乎没有变慢到严重变慢。


现在,如果我专注于VirtualBox,那就是2型虚拟机管理程序。完全由CPU绑定的程序应该可以。


这些程序大多数都必须将一种语言转换为C代码并进行编译。当我们运行模拟时,将运行此编译。根据您的要求,可以吗?
aarelovich

我怀疑性能会很好。我的虚拟盒子体验有限(我主要使用VMware工作站),但是我看不出为什么它会变慢的技术原因。
Hennes

在性能方面,KVM与VirtualBox相比如何(假设在Linux系统上运行Windows 10)?
罗伊

5

实际上,听起来Docker可能是您正在做的事情的更好选择。Docker提供了容器,这些容器是在同一内核之上运行的隔离沙箱。系统调用/ IO开销为零,因为容器中的进程与主机上的进程没有什么不同。

由于您已经在运行Linux,因此Docker是提供CentOS环境的好方法,而无需重新安装所有计算机。

另外,请查看我的实用程序Scuba,它可以轻松在Docker容器中运行诸如构建之类的事情。如果不运行,make您会运行scuba make。就这样!


如果您想尝试一下并需要任何帮助,请告诉我。
乔纳森·莱因哈特

谢谢,但是这是很久以前的事了,因此决定做出此举。但是,当必须运行运行con CentOS时遇到问题的程序时,我会考虑到这一点。
aarelovich
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.