当我的 HyperV VM(运行 Ubuntu 20.04)在 HP Proliant DL380 G6(运行 Windows Server 2016)上负载过大时,12 个物理核心中只有 6 个被使用,即 2 个 CPU 中只有 1 个被使用。下面是我的任务管理器的屏幕截图。
ILO 确认了这一点(如下),因为只有处理器 2 进入 P1 电源状态。
我的 HyperV VM 是我机器上唯一的 VM,我为其配置了 24 个虚拟进程(每个逻辑核心 1 个,因为我的服务器有 12 个物理核心和 24 个逻辑核心)。下面是我的 HyperV VM 处理器设置的屏幕截图。
我希望我的 HyperV VM 能够充分利用所有 12 个物理核心。我该如何实现这一点?为什么 VM 没有充分利用所有可用核心?
请注意,当我在主机上运行多线程工作负载时,所有 12 个物理核心都按预期得到利用(如下所示)。
答案1
我记得我的虚拟机启用了“动态内存”,所以我尝试在关闭“动态内存”的情况下运行虚拟机。对虚拟机进行压力测试后,所有 12 个物理核心都亮了。很高兴有人能通过解释为什么这能解决我的问题来扩展这个答案。