我工作的地方运行的是功能相对强大的 PC,使用的是 Debian Linux 发行版。但是对于我们需要安装的某些程序,最好使用 CentOS,这些程序将是我们的主要工作工具。更改我们工作场所所有计算机的操作系统是可能的,但我们正在尝试确定使用 VirtualBox 是否是简化操作的更好选择。
这一切都取决于以下几点。我们需要运行的程序是模拟器,这些程序是处理器密集型任务,每次启动模拟时很容易运行长达一小时或更长时间。我们需要确定使用 Virtual Box 时的性能下降是否足以值得我们更换操作系统。
所以我的问题是,是否有人可以可靠地告诉我,在虚拟机中运行处理器密集型任务与在本机 PC 上运行处理器密集型任务相比,对性能的影响如何?
谢谢。
答案1
对于数字运算程序(非常依赖 CPU),VM 的性能几乎不会受到影响。指令直接在 CPU 上运行,对于主机和 VM 来说都一样。
即使对于严肃的编译任务,性能差异也几乎不明显。我们在 Windows 上的 VMware 中运行 CentOS VM。
由于您在主机上运行 Linux,您可能还会考虑虚拟机(内核虚拟机)而不是 VirtualBox。它是一系列内核模块,使用大多数现代 CPU 上提供的 Intel VT-x 虚拟化扩展,在 Linux 中提供虚拟化服务。QEMU 使用 KVM 作为加速器,直接在主机 CPU 上运行 x86 代码。
只需安装virt-manager
即可尝试一下。
答案2
实际上,听起来 Docker 可能更适合你正在做的事情。Docker 提供容器,它们是运行在同一内核上的隔离沙箱。系统调用/IO 开销为零,因为容器内的进程与主机上的进程没有区别。
由于您已经在运行 Linux,Docker 将成为提供 CentOS 环境的绝佳方式,无需重新安装所有机器。
另外,看看我的实用程序,水肺这使得在 Docker 容器内运行构建等操作变得容易。make
您可以运行而不是scuba make
。就这样!
答案3
这个问题没有一个好的答案。这很大程度上取决于你如何使用虚拟机以及使用哪些程序。
例如,使用 VMWare(2 型虚拟机管理程序)和纯 CPU 绑定程序可实现几乎全 CPU 速度。如果我使用相同的虚拟机管理程序和具有大量系统调用的程序,则会出现严重的速度减慢。
当您使用类型 1 虚拟机管理程序(无客户)操作系统时,情况也会发生变化。即使在这些操作系统之间,您也有很多变化。例如,Xen 支持 5 种模式(我记得上周末 FOSDEM 上关于 Xen 的演讲)。从使用硬件到半虚拟化。
回顾一下:正如所问的那样,它可能从几乎没有减速到严重减速。
现在,如果我专注于 VirtualBox,它就是 2 类虚拟机管理程序。纯 CPU 受限程序应该没问题。