如何在我的虚拟环境中启用多个核心?


20

我已经使用Oracle VM VirtualBox Manager在虚拟环境中安装了Ubuntu,并且效果很好。

但是,我想启用多个内核-如下面的Windows计算机中的图像所示,它具有2个内核:

在此处输入图片说明

现在,当我lscpu在Ubuntu中运行时,我将获得以下信息,显示仅使用了1个内核:

在此处输入图片说明

我尝试更改虚拟框的设置以启用多个处理器,但不允许这样做,如下图所示:

图片

如何在我的虚拟环境中启用多个内核(处理器)?

Answers:


17

要在VM中启用多个CPU,还需要以下设置:

  • 常规设置标签中的64位虚拟来宾硬件(适用于64位来宾)

    在此处输入图片说明

  • 在“主板设置”标签中启用I / O APIC

    在此处输入图片说明

  • 在“加速”选项卡中启用硬件虚拟化(VT-x / AMD-V)

    在此处输入图片说明

请注意,如果在所有可用内核上运行VM,则在为CPU分配执行上限时可能会获得更好的主机性能。

如果您尚未启用virtualbox 的热插拔CPU功能,则只能在已关闭的机器上更改内核数。

只有使用多个内核的软件才能预期来宾性能的提高。只有这样,才能为所有内核赋予执行上限。


所以这在32位Ubuntu上是不可能的?

1
@cipricus感谢您的通知,当然,只有64位来宾才需要64位。
塔卡特2014年

@Takkat我正在使用32位Ubuntu作为来宾OS。如何启用多个cpus?
smwikipedia 2015年


1

我正在研究一个多线程程序,该程序在虚拟机上按顺序执行。我和你有类似的问题。我通过以下方式修复它:

  1. 停止虚拟机或退出。
  2. 启动VMWare->选择计算机->单击系统->单击处理器->更改编号处理器。
  3. 启动虚拟机。

标准线程的早期std :: thread :: hardware_concurrency()返回1,但更改后返回虚拟机设置上的CPU数量。

现在,我能够在VM上成功运行我的多线程程序。

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.