我的 Windows 10 主机有 24 GB 内存,其中 8 GB 分配给由 VMWare Workstation 12 Player 处理的 64 位 Windows 7 客户机。客户机操作系统中的系统信息正确识别所有 8 GB。
但是,当我的内存使用量达到 60% - 70% 左右时(根据任务管理器),我就会不断收到来自客户操作系统的低内存警告。如果我尝试超过这个上限,就会出现应用程序崩溃之类的情况。
我最初只分配了 4 GB,当内存使用率超过 90% 时,就会看到这些错误,这似乎是正确的。那时我将 VM 设置增加到 8 GB,但系统似乎承认了所有 8 GB,甚至报告了预期的使用情况,但不知何故仍然限制为 4 GB。
我有一个固定的2GB页面文件。
有什么想法吗?
答案1
低内存警告意味着提交费用即将达到提交限制。这与可用 RAM 不足无关。即使可用内存充足,也会出现此警告。
提交限制是 RAM 大小 + 页面文件大小 - 一个小的开销。提交费用不是 RAM 使用量、页面文件使用量或两者的任意组合。它是临时数据存储所需潜在空间的度量。当应用程序或 OS 组件分配内存(实际上是虚拟地址空间)时,内存管理器承诺或承诺将有可用于分配的存储空间。存储空间可能是 RAM 或页面文件,由内存管理器自行决定。提交费用是所有此类分配的总和。最初不保留任何存储空间(无论是 RAM 还是页面文件),只是确保有足够的可用空间。通常不需要所有这些提交的存储,至少不需要同时使用。但 Windows 更愿意稳妥行事,绝不允许提交费用超过提交限制,即实际可用的存储空间。
有三种方法可以解决内存不足警告:
- 通过减少运行次数来降低承诺费用。这通常不切实际。
- 添加更多 RAM。如果 RAM 使用率很高,这将是一个好主意。否则这只是浪费。
- 增加页面文件的大小。这通常是最简单、最经济的解决方案。而且,由于足够大的页面文件实际上可以提高性能,所以这也是一个额外的原因。它提供了一个位置,操作系统可以卸载很少使用的数据,从而为更重要的用途留出更多的 RAM。
在这种情况下,2 GB 的页面文件显然不够用。如果磁盘空间不是问题,将页面文件设置为系统管理是一个好主意。不要担心这会导致页面文件不断调整大小或页面文件碎片。这两种情况都不常见,而且在大多数情况下根本不会发生。