我的 Windows 7 计算机具有 16GB 的物理 RAM,偶尔会警告内存不足,要求我关闭程序以释放内存。当我检查任务管理器或资源监视器时,我发现有近 8GB 的可用内存。几个(一个或两个)进程(rdbms、tomcat 服务器等)将消耗大量内存(每个约 4GB),但显示此警告时计算机似乎没有内存不足。
我的问题:
- 如果物理内存量似乎足以完成当前的任务,为什么会显示此警告?
- 有没有办法设置发出这些低内存警告的阈值?
答案1
问题是,虽然内存可用,但 Windows 7 已经将其承诺给应用程序。解决方案是确保您有足够大的页面文件。这样 Windows 就可以继续做出承诺,而不必担心如果一次性索取所有承诺,它将没有足够的物理内存来满足这些承诺。
我更详细地解释了这一现象这里。您可以拥有足够的可用内存,但 Windows 仍然无法分配更多内存,因为这些可用内存已经承诺给可能永远不会使用它的应用程序。