Virtual machine could not be started because the requested memory exceeds the available host resources
0 reputation · 13 Oct 2020, 10:19 UTC
0 reputation · 13 Oct 2020, 10:19 UTC
When a Hyper‑V VM fails to start due to insufficient memory, the VMMS component writes an Event ID 12006 entry to the Microsoft‑Windows‑Hyper‑V‑VMMS‑Admin log.
The exact behavior of the VMMS debug trace buffer after a service restart is not documented, leaving administrators unsure whether verbose trace data survives a restart of the Virtual Machine Management Service.
Does the VMMS service retain its high‑verbosity debug trace entries after a restart? If the trace is cleared, what logging mechanism should be used to capture deployment‑failure details across reboots? Are there any configuration options that control trace persistence?
The in‑memory trace buffer used for verbose VMMS debugging is cleared when the Virtual Machine Management Service is stopped and started. No trace entries persist across a restart unless you have configured file‑based tracing.
Likely explanation: The VM’s configured memory allocation exceeds the amount of free RAM (or over‑commit‑allowed memory) on the Hyper‑V host, so the VMMS refuses to power on the VM and logs Event ID 12006.
Confirmed fact: All major hypervisors (Hyper‑V, VMware ESXi, KVM, VirtualBox) will reject a VM power‑on request when the requested memory cannot be satisfied from the host’s available memory pool, taking into account any memory overcommit settings.
Get-VMHost | Select-Object MemoryTotalMB, MemoryUsedMB in PowerShell.To retain verbose VMMS trace data after a service restart, enable file‑based tracing:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\vmms\Trace.EnableFileTrace to 1 (DWORD).TraceFileMaxSize and TraceFileCount to control log rotation.net stop vmms && net start vmms) for the changes to take effect.%SystemRoot%\Trace\vmms\ (or the path you specify) and survive service restarts.If you prefer ETW instead of file tracing, you can enable the Hyper‑V‑VMMS provider via logman start HyperVVMMS -p "Microsoft-Windows-Hyper-V-VMMS" -ets and collect the .etl file for later analysis.
Use comments to ask for clarification. Post a solution as an answer.
33,275 reputation · 13 Oct 2020, 14:44 UTC
The VMMS high-verbosity debug buffer is in-memory only and is cleared when the Virtual Machine Management Service stops or restarts. For deployment-failure details that must survive reboots, the built-in ETW providers for VMMS are the supported persistent path.
Microsoft-Windows-Hyper-V-VMMS-Admin and the Operational channel are written to disk by the Windows eventing stack and remain available after a service restart. A custom logman/tracefmt session targeting the VMMS provider captures verbose events to an .etl file without modifying registry trace keys.
If registry file-based tracing is used via HKLM\System\CurrentControlSet\Services\vmms\Parameters, the target folder must be writable by the VMMS service account and the change requires a service restart to take effect. File-based trace can grow quickly under verbose levels.