VirtualBox 无法在 Windows 上分配缓存内存(不认为它可用)

VirtualBox 无法在 Windows 上分配缓存内存(不认为它可用)
  • 主机:Windows 7 64x 位,6 GB RAM
  • 访客:Red Hat 64x 位

未运行任何虚拟机的主机资源:

Windows 资源

[案例一] 具有 2 GB 内存的客户机

当我在客户机上运行内存消耗进程时,我收到来自 VirtulBox 的致命错误(这是致命的,因为它会导致系统崩溃)

 Error ID: HostMemoryLow
 Severity: Non-Fatal Error

错误期间的主机内存(MB):

 Total: 6002
 Cached: 2149
 Available: 2133
 Free: 9

据我所知,缓存内存中有未使用或已在交换中复制的非活动数据,系统应该能够在需要时释放它,而现代操作系统保留缓存内存是为了充分利用更大的内存。我猜问题的原因是 Windows 无法突然释放大量内存,或者 VirtualBox 不认为缓存内存可用于分配,并且在可用内存已满(但仍为缓存)时立即返回错误。

[案例 II] 关闭惰性内存分配的 Guest

关闭惰性内存分配时,虚拟机管理程序会在启动时使用以下命令分配完整的虚拟机内存:

VBoxManage setextradata "VM_name" VBoxInternal/RamPreAlloc 1

我遇到过更糟糕的情况,虚拟机拒绝以超过 1280 MB 的内存启动,并显示错误,表示主机中没有足够的内存可供分配,并且 Windows 可用内存暂时下降到 8,但缓存内存仍然相同(保留大量内存)并且 Windows 永远不会释放它!

 The fatal variant of VINF_EM_NO_MEMORY (VERR_EM_NO_MEMORY)
 Result Code: E_FAIL (0x80004005)
 Component: Console
 Interface: IConsole {8ab7c520-2442-4b66-8d74-4ff1e195d2b6}

无论是可用内存还是缓存内存,VirtualBox 都无法分配超过 1280 MB 的内存!

答案1

已解决,问题是安装了 2 块具有不同总线带宽(1066 MHz 和 1660 MHz)的 RAM,这会产生冲突。移除其中一个后,VirtualBox 能够为虚拟机分配超过 2GB 的 RAM,即使主机中只有 4GB 的总内存

相关内容