Hyper-V 内存管理

Hyper-V 内存管理

我有一台 2016 Hyper-V 服务器,配备 2 个 CPU(16 核)和 128GB RAM。

该服务器托管 6 个虚拟机,均采用静态内存分配。

  • VM1 - 4GB + 2 个 vCPU
  • VM2 - 4GB + 2 个 vCPU
  • VM3 - 24 GB + 4 个 vCPU
  • VM4 - 48GB + 8 个 vCPU
  • VM5——1GB + 1 个 vCPU
  • VM6 - 8GB + 2 个 vCPU

总的来说,我为虚拟机分配了 89GB,剩余约 30GB(Hyper-V 使用量较少)

VM4 报告内存需求高,我尝试将其增加到 60GB (+12GB),但当我尝试启动 VM 时,Hyper-V 建议我内存不足。

附言:我禁用了 NUMA,因为这“似乎”会导致性能问题。在禁用之前,VM4 有 60GB 并显示“内存跨度”。我读过一些文章,建议启用和禁用 NUMA。

这里发生了什么?

答案1

Hyper-V NUMA 跨越允许虚拟机的虚拟 NUMA 节点跨越多个物理节点。当客户操作系统无法感知不均匀的内存延迟时,这会降低性能。

不启用该功能对性能更好,但操作起来比较复杂。正如您所发现的,如果无法将客户机放置在一个节点中,它将无法启动。假设您有两台 64 GB 内存的机器。8 + 60 GB 内存装不下。

尝试迁移(或关闭)虚拟机,然后启动大型虚拟机。作为实验,看看撤离一个节点有多困难。

考虑将添加内存作为容量规划的一部分。可以享受无需担心内存不足的奢侈,但这可能是一笔不小的开支。

相关内容