0

I have a single 2016 Hyper-V server with 2 CPU (16 cores) and 128GB RAM.

The server hosts 6 VMs all with static memory allocations.

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

In total, I have allocated 89GB to VMs, leaving approx 30GB spare (less Hyper-V usage)

VM4 is reporting high memory demands and I have tried to increase it to 60GB (+12GB) buy Hyper-V advised I have insufficient memory when I tried to start the VM.

p.s. I disabled NUMA as this "appeared" to be causing performance issues. Before disabling VM4 had 60GB and displayed "Memory Spanning". I have read articles that both advise to enable & disable NUMA.

What is going on here?

1 Answer 1

3

Hyper-V NUMA spanning is what allows a VM's virtual NUMA nodes to span multiple physical nodes. This is bad for performance, when the guest OS is unaware of uneven memory latency.

Leaving this off is better for performance, but it has operational complexities. As you discovered, if a guest cannot be placed in one node, it won't start. Consider this as if you have two 64 GB memory machines. 8 + 60 GB won't fit.

Try migrating off (or shutting down) VMs then starting the big one up. As an experiment to see how difficult it might be to evacuate one node.

Think about adding memory as a part of capacity planning. Would buy the luxury of not having to worry about enough memory, but could be a significant expense.

2
  • Ok so NUMA=Bad, if the guest is unaware. Is Svr16/19 aware? I have NUMA disabled as I had read it leads to perf issues. As I have two 64GB machines (one per CPU?) why do I need to fit 8+60? I only want to increase the VM to 60GB?
    – Dercni
    Oct 13, 2020 at 22:24
  • That is a test to see if you can fit 60 GB onto a 64 GB NUMA node, given the placement of other guests. Hyper-V could place the smaller VMs wherever, and will use both nodes to make use of their resources. Windows Server has been NUMA aware for a long time. My recommendation to avoid it is because you don't seem prepared to deal with potential performance problems of a VM that spans nodes. Oct 14, 2020 at 14:05

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .