我有一台 Windows 8.1 主机,试图通过 Hyper-V 启动虚拟机。虚拟机配置为使用 10GB RAM,我有 16GB,它应该可以启动,但实际上却没有。
相反,我得到了信息
‘{VM NAME}’无法初始化。
系统内存不足,无法启动虚拟机 {VM NAME}
主机有 16GB RAM,其中只有 4.8GB 被使用。这样至少还有 11GB 可供 Hyper-V 使用。但它不能。
更准确地说,任务管理器报告以下内存情况:-
- 使用中 - 4.8GB
- 可用 - 11.0 GB
- 已承诺 - 7.5/21.9GB
- 缓存 - 10.8GB
- 分页池 - 592MB
- 非分页池 - 309MB
我知道我目前有 10.8GB 的“待机”内存。但如果 Hyper-V 要求,应该释放这些内存,对吗?
如果我重新启动然后立即要求 Hyper-V 启动机器,它可以工作,但我必须快速行动,因为备用内存很快就会被填满。
这是正常的吗?有没有办法清空待机内存并将其恢复,以便我可以启动虚拟机而无需重新启动主机?
答案1
VM 配置为使用 10GB RAM,我有 16GB,它应该启动,但却没有启动。
信息不够。
主机有 16GB RAM,其中只有 4.8GB 被使用。这样至少还有 11GB 可供 Hyper-V 使用。但它不能。
太少了。我喜欢为每个虚拟机添加 1GB 作为保留。
而且您已经承诺了 7.5gb - 这已经是不正确的了。
你实在是太瘦了。你现在可以:
- 获取更多内存或
- 减少静态内存分配或
- 转到动态内存分配,只需为机器提供 512mb 即可启动,然后它会根据需要增加。
答案2
我的虚拟机也遇到了这个问题。我几乎尝试了所有方法。最后,当我进入虚拟机设置,单击左侧菜单中的“自动启动操作”时,它终于起作用了。对于“当物理计算机启动时,您希望此虚拟机执行什么操作”,我选择了“始终自动启动此虚拟机”选项,然后重新启动主机。这将提示主机在主机上启动其他服务之前启动虚拟机,从而允许主机分配虚拟机所需的内存,我希望这会有所帮助。
答案3
如果你真的没有更多的内存可用,就像我的笔记本电脑一样,可以考虑使用 SysInternals RamMap (https://technet.microsoft.com/en-us/library/ff700229.aspx),因为您可以清除工作集,这样效果很好,并且无需重启。
您还可以考虑使用动态内存,正如@TomTom 所建议的那样,如果您选择暂停它,还要尝试确保机器正在运行最低限度所需的应用程序。我还在我正在使用的虚拟机上指定了最大值,以避免/减少这种情况。