我在 Windows 10 上运行 VirtualBox,它有 4 个内核和 8 个线程的 i5-9300H。在 Virtual Box 设置中,它仅推荐 4 个 CPU,但最多允许 8 个。我相信虚拟 CPU 是模拟的,但我的问题是,如果将 CPU 数量增加到 6 个,是否会影响主机或客户机的性能?我正在运行 lubuntu 20.10 作为客户机来执行 Linux From Scratch 项目,因此为了编译内核,我相信内核越多越好(如果我错了,请纠正我)。
答案1
不,VirtualBox 中的虚拟 CPU 不是模拟的。CPU 模拟效率极低,现代操作系统在模拟的 CPU 上无法使用。您的 CPU 实际上内置了对虚拟化即运行代码,就好像它不是虚拟机,而是在由主机代码控制的环境中运行。因此,当您设置虚拟机可用的内核数量时,实际上是在授予它访问 CPU 真实逻辑内核的权限。
VirtualBox 建议仅分配 4 个逻辑核心,因为您的 CPU 中只有 4 个物理核心。分配比物理核心更多的逻辑核心据称会比仅分配 4 个核心提供更差的性能。这是否确实适合您的用例,您必须自己测试。答案可能取决于您的 CPU 架构、主机的调度程序、客户机的调度程序以及可能的其他因素。
拥有更多核心通常比拥有更少相同核心更好,除非这会导致调度机制工作不理想(例如,如果它对该 CPU 配置的最佳配置做出错误的假设)。已知在某些情况下,禁用 SMT(将物理核心拆分为多个逻辑核心)可能会提高性能。