Hyper-V 处理器限制

Sco*_*ott 14 virtualization central-processing-unit hyper-v-server-2008-r2

我们最近购买了一台运行 Hyper-V 2008 R2 裸机的服务器。该服务器有两个带超线程的四核 Intel Xeon 处理器,所以如果我理解正确的话,这给了我们 16 个内核。在 Hyper-V 中,我们创建了一个运行 Windows Server 2008 R2 的虚拟机,带有 4 个虚拟处理器。处理器设置屏幕告诉我,这代表了系统总处理能力的 25%。这是否意味着剩余的 75% 不能被虚拟操作系统利用?我们将运行其他一些虚拟机,但这是用于 SQL Server 的,我们希望尽可能多地使用它。

Chr*_*s S 15

一个 vCPU 只能映射到单个物理 CPU。你不能用 4 个物理 CPU 来制造一个速度快 4 倍的 vCPU;这不是它的工作原理。

Hyper-V 仅限于为 VM 分配 4 个 vCPU(我上次检查过)。如果您需要显著CPU功率,去身体,有一个在开销增加虚拟化的东西没有任何意义的是CPU密集型和摆在首位平行。

此外,正如 Holocryptic 指出的那样,如果您为 VM 分配 4 个 vCPU,则在 Hyper-V 获得 4 个物理 CPU 内核来运行它们之前,该 VM 无法运行。根据您的配置,这可能是一个主要的绊脚石(例如,如果您有一台带有一堆 4 个 vCPU 虚拟机的 6 核机器,一次只能运行一个,其他两个内核将始终基本上未使用)。根据Jake Oshins 的说法,这对于任何版本的 Hyper-V 都不是真的。他指出,Hyper-V 不对 CPU 使用成组调度;就像几乎所有其他管理程序一样。因此,如果有一个物理 CPU 内核可用,Hyper-V 可以使用它来运行多 CPU 虚拟机。(还提到,由于 NUMA 分区,Hyper-V 可能不会使用当时可用的所有物理内核)

旁注:SQL 不一定首先使用您可以投入的所有核心。这实际上取决于您使用它的目的以及负载的可并行性。

  • 克里斯,Holocryptic 的说明完全是错误的。Hyper-V 不会等到有 4 个虚拟 CPU 空闲时才从 4 VP VM 调度虚拟处理器。Hyper-V 会在有可运行的物理处理器时调度虚拟处理器,但有一些注意事项。例如,它会在与 VM 的其余部分相同的物理 NUMA 节点中查找物理处理器。 (4认同)