![硬件虚拟化可以使用处理器核心的线程吗](https://linux22.com/image/1307212/%E7%A1%AC%E4%BB%B6%E8%99%9A%E6%8B%9F%E5%8C%96%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%E5%A4%84%E7%90%86%E5%99%A8%E6%A0%B8%E5%BF%83%E7%9A%84%E7%BA%BF%E7%A8%8B%E5%90%97.png)
我有英特尔 i7 处理器,它有 4 个物理核心,每个核心有 2 个线程,总共 8 个逻辑核心。
我打算使用 Windows Server 虚拟机来充分利用处理器的所有潜力。在使用 VMWare 工作站创建虚拟机时,它要求我设置处理器数量和每个处理器的核心数量,但根本没有提到线程。假设处理器是 i7 上的核心,将处理器数量设置为 4 是否正确,假设它是每个核心的线程数,将每个处理器的核心数量设置为 2 是否正确。
这是正确的思考方式吗?或者,是否可以使用处理器核心的线程来增强虚拟机?
谢谢。
答案1
这就是应该发生的事。
超线程可让您的处理器假装拥有 X 个核心。一般来说,软件并不知道有多少个物理核心。
答案2
如果您启用了超线程,则将您的系统视为具有 8 个核心。
如果您有如此严格的性能限制,不建议这样做,那么请禁用超线程并像 4 核系统一样使用它。
从理论上来说,确定给定的核心是否是物理的是非常有可能的。
如果我在类似的 i7 系统上打开 Process Explorer,我会得到以下结果:
我们可以看到,CPU 分为 4 组(物理核心),每组 2 个成员(使用超线程生成的)。
应用程序可以设置其亲和性,以便能够最优化地使用系统(如果它甚至能够确定这一点)。