14

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?

Mat Fergusson
  • 243
  • 1
  • 2
  • 4

3 Answers3

7

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.
TomTom
  • 50,857
  • 7
  • 52
  • 134
  • I see now that "In Use" and "Committed" are different. While it claimed that I had 11GB "Available" I actually didn't. Since my committed total was 7.5GB then I actually only had 8.GB _remaining un-committed_. – Mat Fergusson Feb 12 '14 at 10:53
  • I freed up another 1/2 GB to get "Committed" down to below 7GB and reduced the VM's allocation to 9GB and then it worked. – Mat Fergusson Feb 12 '14 at 11:04
  • 1
    @MatFergusson Yeah. One thing you can also do in later versions is DYNAMIC memory. I always allocate minimum512mb to my machines, starting 1gb (and 2 processors). Works like a charm - memory then expands as needed. – TomTom Feb 12 '14 at 11:33
5

I had this problem with my VM. I tried almost everything. It finally worked when I went to the virtual Machine settings, clicked on Automatic Start Action in the menu on the left. and for the What do you want this virtual machine to do when the physical computer starts I chose the option "Always start this virtual machine automatically" and restart the host machine. This will prompt the host to start the vm before other services start on the host machine, allowing the host to allocate the memory required for the vm I hope this will help.

hoz
  • 103
  • 3
JacobK
  • 51
  • 1
  • 1
2

If you really don't have more memory to spare, as I have on laptop, consider using SysInternals RamMap (https://technet.microsoft.com/en-us/library/ff700229.aspx), as you can clear the working set, which works well and then eliminates the reboot for me.

You can also look at using dynamic memory, as @TomTom recommended, buy also try and make sure the machine has minimum required apps running, if you choose to suspend it. I have also specified a maximum on a VM I am using to avoid / lessens situations like this.

Anthony Horne
  • 133
  • 1
  • 9