Cannot start machine in Hyper-V – “Not Enough Memory in the system to start the virtual machine”

hyper-vmemory usage

I have a Window 8.1 host trying to start a virtual machine through Hyper-V.
The VM is configure to use 10GB of RAM, I have 16GB, it should start but it doesn't.

Instead I get the message

'{VM NAME}' could not initialise.

Not Enough Memory in the system to start the virtual machine {VM NAME}

The host has 16GB RAM, of which only 4.8GB is in use. This leaves at least 11GB available for Hyper-V to use. Except it can't.

To be more accurate, task manager reports the following memory situation:-

  • In use – 4.8GB
  • Available – 11.0 GB
  • Committed – 7.5/21.9GB
  • Cached – 10.8GB
  • Paged Pool – 592MB
  • Non-Paged pool – 309MB

I understand that I currently have 10.8GB of "Standby" memory. But this should be released if Hyper-V asks for it right?

If I reboot then immediately ask Hyper-V to start the machine, it works, but I have to be quick because the standby memory gets filled pretty quickly.

Is this normal? Is there a way to empty the standby memory and get it back, so that I can start my VM without having to reboot the host?

Best Answer

The VM is configure to use 10GB of RAM, I have 16GB, it should start but it doesn't.

Not enough info.

The host has 16GB RAM, of which only 4.8GB is in use. This leaves at least 11GB available for Hyper-V to use. Except it can't.

Too little. I love to add 1gb per vm as reserve.

Also you already have 7.5gb committed - that smells already wrong.

You are simply too thin. You can now:

  • Get more memory or
  • Reduce static memory allocation or
  • Move to dynamic memory allocation and just give the machine 512mb to start then it grows as needed.