我已经使用Oracle VM VirtualBox Manager在虚拟环境中安装了Ubuntu,并且效果很好。
但是,我想启用多个内核-如下面的Windows计算机中的图像所示,它具有2个内核:
现在,当我lscpu
在Ubuntu中运行时,我将获得以下信息,显示仅使用了1个内核:
我尝试更改虚拟框的设置以启用多个处理器,但不允许这样做,如下图所示:
如何在我的虚拟环境中启用多个内核(处理器)?
我已经使用Oracle VM VirtualBox Manager在虚拟环境中安装了Ubuntu,并且效果很好。
但是,我想启用多个内核-如下面的Windows计算机中的图像所示,它具有2个内核:
现在,当我lscpu
在Ubuntu中运行时,我将获得以下信息,显示仅使用了1个内核:
我尝试更改虚拟框的设置以启用多个处理器,但不允许这样做,如下图所示:
如何在我的虚拟环境中启用多个内核(处理器)?
Answers:
要在VM中启用多个CPU,还需要以下设置:
常规设置标签中的64位虚拟来宾硬件(适用于64位来宾)
在“主板设置”标签中启用I / O APIC
在“加速”选项卡中启用硬件虚拟化(VT-x / AMD-V)
请注意,如果在所有可用内核上运行VM,则在为CPU分配执行上限时可能会获得更好的主机性能。
如果您尚未启用virtualbox 的热插拔CPU功能,则只能在已关闭的机器上更改内核数。
只有使用多个内核的软件才能预期来宾性能的提高。只有这样,才能为所有内核赋予执行上限。
如果您的VM当前正在运行(或“已保存”),则无法更改该值。首先关闭虚拟机电源。
我正在研究一个多线程程序,该程序在虚拟机上按顺序执行。我和你有类似的问题。我通过以下方式修复它:
标准线程的早期std :: thread :: hardware_concurrency()返回1,但更改后返回虚拟机设置上的CPU数量。
现在,我能够在VM上成功运行我的多线程程序。