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

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

但是,我想启用多个内核 – 如下图所示,我的Windows机器有两个内核:

在此处输入图像描述

现在,当我在Ubuntu中运行lscpu ,我得到以下信息,显示只使用了1个核心:

在此处输入图像描述

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

图片

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

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

  • “常规设置”选项卡中的64位虚拟客户机硬件(适用于64位客户机)

    在此处输入图像描述

  • 在主板设置选项卡中启用I / O APIC

    在此处输入图像描述

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

    在此处输入图像描述

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

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

只有使用多个内核的软件才能提升客户端的性能。 只有这样才能为所有核心提供执行上限才有意义。

如果您的VM当前正在运行(或“已保存”),则无法更改该值。 首先关闭VM。

我正在研究一个multithreading程序,它在虚拟机上按顺序执行。 我遇到了类似的问题。 我修理了:

  1. 停止虚拟机或退出。
  2. 启动VMWare – >选择机器 – >单击系统 – >单击处理器 – >更改数字处理器。
  3. 启动虚拟机。

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

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