当我的 HyperV VM 负载过大时,为什么我的 HP Proliant DL380 G6 仅使用 12 个物理核心中的 6 个?

当我的 HyperV VM 负载过大时,为什么我的 HP Proliant DL380 G6 仅使用 12 个物理核心中的 6 个?

当我的 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 个物理核心都亮了。很高兴有人能通过解释为什么这能解决我的问题来扩展这个答案。

相关内容