-1

I'm having this error on my server: "Not enough memory in the system to start the virtual machine. Ran out of memory (0x8007000E)" when starting an 8 GB VMs on a 12 GB RAM FREE server.

Here is my set up.

Host specs: 32 GB RAM - E3-1240v3 CPU - 4 TB HDD. Numa spanning enabled.

Created:

  • 6 x 2 Gb - 1 vCore - 100 GB HDD.
  • 2 x 4 GB - 1 vCore - 100 GB HDD - Dynamic memory enabled with min: 3.5 GB. So it's 20 GB for VMs (haven't counted dynamic memory) + leave 2.5 GB for the host so the total is 22.5 GB and I still have around 11.5 GB left on the server.

Why can't I start the 8 GB VM? Any comment is appreciated, I've searched everywhere and seems can't have a proper answer.

2

You ran out of memory. You have to reserve some for the host and other processes, and 2.5G isn't much for Windows as a hypervisor. Just because memory is free doesn't mean it isn't subject to resident allocation by a more important host process, and hyperv rightfully accounts for this. There's usually never a situation in which you would want a single VM to memory cripple the host OS.

Also consider that you may be having trouble allocating memory in the amounts you're requesting. I'm sure your allocations don't have to be so pretty as they are now, so you could easily rob a little from your other workloads to accommodate your host.

  • Well, 2gb is enouh for the host ;) That said, 2+(1*vm) takes out 10gb. You put it really tight - particularly 32gb is not really a host for anything but windows desktop and playing with VM for local development. – TomTom Apr 6 '18 at 5:47
  • 2GB is enough for the host OS, but we really need some wiggle room for processes to run and I/O to freely move. For example, you'll want to run a backup program without totally memory starving the host, possibly (de)compress files, manage any software defined storage arrays, etc. 4GB is a sane value considering this. Windows is relatively memory hungry, and if you're to use it as a hypervisor that's something you're going to have to deal with. One could use a core deployment to free a significant amount of resources - then maybe ~2G would be fine but that would need to be tested. – Spooler Apr 6 '18 at 15:44
0

You have around 11.5GB left on the server but when you try to assign 8GB to the VM you are not able because you run out of memory. Since it leaves Hyper-V with 3.5GB spare memory only.

In your scenario with 32GB RAM you need to leave atleast 4.5GB free memory:

  • 2-2.5GB reserve
  • 2GB management OS
0

Have you enabled NUMA spanning in your HyperV settings? if not enable it i bet that will solve your issue.

By default, Windows Server enables NUMA spanning, which provides the most flexibility as virtual machines (VMs) can access and use memory in any NUMA node. But it may result in lower performance compared to forcing VMs to use memory on the same NUMA node as the processor cores.

By disabling NUMA spanning, you ensure that VMs use memory and processor cores in the same NUMA node, giving the best performance. This should only be changed once, if, as an administrator, you feel comfortable with NUMA and the implications of disabling and also if you have some additional management suite that can help ensure best configuration.

To configure NUMA spanning, open the Hyper-V Settings and select the NUMA Spanning option and disable it, I am sure, it will get solved; I struggled with the issue for a week and resolved it by disabling NUMA.

I am sure this would be marked as resolved by disabling NUMA in Hyper-V Manager.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.