本文为阻止基于 Windows Server 2012 R2 的虚拟机运行的问题提供了一种解决方法。 即使任务管理器指示有足够的可用内存,也会出现此问题。
原始 KB 数: 2962295
现象
在 Windows Server 2012 R2 中运行的虚拟机未启动,你会收到以下错误消息。 即使任务管理器指示有足够的可用内存,也会发生这种情况。
“<虚拟机名称>”无法初始化。 系统中没有足够的内存来启动虚拟机“<虚拟机名称**>”**
此外,以下事件将记录在 Microsoft-Windows-Hyper-V-VMMS-Admin 日志中。
日志名称:Microsoft-Windows-Hyper-V-VMMS-Admin 事件 ID:19544 级别:错误 说明: 无法启动需要 xxxx MB 内存的虚拟机“虚拟机名称”,因为系统中只有 xxxx** MB 可用(虚拟机 ID <虚拟机 ID>)。**
原因
当 Windows Server 2012 R2 启动时,Hyper-V 主机动态保留运行主机操作系统和任何应用程序所需的最小内存量。 此预留的大小取决于几个因素。
剩余内存可用于虚拟机。 但是,此数量不同于任务管理器中显示为“可用内存”的内容。因此,即使 Hyper-V 主机似乎有足够的内存,根据任务管理器,虚拟机也可能不会启动。
若要准确检查虚拟机的可用内存,请参阅“解决方法”部分以使用性能对象和计数器名称。
解决方法
若要启动虚拟机,请释放主机上的足够内存,或根据下面提到的性能计数器调整虚拟机的大小。
以下性能计数器可用于显式检查虚拟机可用的内存量:
Hyper-V 动态内存均衡器\可用内存
注意
- 实例名称为“系统负载均衡器”。
- Hyper-V 动态内存均衡器\可用内存值取决于在 Hyper-V 主机上安装的应用程序使用的内存量,以及vmwp.exe所使用的内存量。
计数器显示可用于启动虚拟机的内存量。 因此,如果遇到此问题,则任务管理器中显示的可用内存无济于事。 但是,性能计数器中显示的可用内存可能表示 Hyper-V 的实际可用内存。