向 HyperV 服务器添加新处理器?

向 HyperV 服务器添加新处理器?

我目前有一台 HyperV Server 2012 R2,运行在支持两个处理器但目前只有一个处理器的主板上。它有 64GB 内存。我现在想添加第二个处理器,将现有内存的一半移到新处理器上,这样每个处理器就有 32GB 内存。我稍后会添加更多内存。

使用最多内存的两个虚拟机均分配有 16GB。其他虚拟机最多使用 4GB。

我需要注意什么才能这样做,或者有什么理由我不应该这样做?启动虚拟机时,HyperV 会选择具有足够可用内存量的处理器吗?此外,是否可以分配比单个处理器更多的 vCPU?会有什么效果?

主板是华硕 KGPE-D16,处理器是 AMD Opteron 6320 OS6320WKT8GHKWOF,如果这有区别的话。

答案1

是的,Hyper-V 会在启动 VM 时选择容量最大的节点(处理器和内存)。如果 VM 适合节点,则它将以最佳方式运行。为了避免碎片化,您可能需要将计算机配置为首先启动大型 VM。但请记住,远程访问计算机上的内存的代价可能很小,并且您可能无法测量出最佳配置的 VM 与“跨越”节点的 VM 之间的巨大差异。

是的,可以分配比任何物理节点更多的虚拟处理器。VM 可以跨节点运行,并且运行良好。

如果虚拟机中的工作负载对性能特别敏感,您可以考虑配置虚拟机本身,使其具有多个节点。为此,您必须禁用动态内存,也就是说,虚拟机需要配置固定数量的 RAM。其次,进入虚拟机设置中处理器配置下的“NUMA”选项卡。(或使用 PowerShell。)在那里,您将看到“每个节点的最大处理器数量”。将其设置为小于或等于物理机中内核数的值。然后,虚拟机将被分解为虚拟节点。然后,每个虚拟节点将单独放置到物理节点中。

最后,如果您发现这很复杂,您只需单击“使用硬件拓扑”按钮,您的虚拟机就会向客户操作系统和应用程序堆栈展示与底层物理机一样多的节点。

如果您真的关心您的工作负载始终以最佳配置运行,并且您不关心当内存太碎片化而无法将虚拟机最佳地装入内存时虚拟机是否无法启动,您可以通过 PowerShell 在虚拟机上“禁用 NUMA 跨接”。当然,如果您这样做,您需要确保此虚拟机首先启动,以避免碎片化。如果您确保它首先启动,即使不禁用 NUMA 跨接,它也会以最佳状态运行。

相关内容