我在 VirtualBox 中运行虚拟机时遇到内存不足错误,所以我检查了我的提交费用,瞧,它是1913MB!
我只有 2GB 物理 RAM。
关闭所有“应用程序”后,仍有大约 1800 MB 的内存占用。这占了我 RAM 的大部分。打开进程资源管理器后,没有发现任何似乎出现故障的进程,占用内存最多的是进程资源管理器本身,大约 26MB,其他所有进程占用的内存都小得多。
Windows 会“泄漏”内存吗?我应该怀疑是驱动程序还是赛门铁克防病毒软件之类的东西?它们的内存使用情况是否会以某种方式显示在进程资源管理器中?
经过进一步调查,我相信这是一个与 VirtualBox 相关的问题。出于某种原因,在终止某些虚拟机后,甚至在终止 VirtualBox 后,它也没有释放分配给它们的内存。出于另一个我无法弄清楚的原因,任务管理器/进程资源管理器无法看到分配给 VirtualBox 中虚拟机的内存。它不会显示在任何进程或任务列表中。发生这种情况的唯一迹象是提交费用上升。
答案1
承诺收费基本上是最大潜在页面文件使用量. 和 RAM 没关系。
Windows 基本上会根据当前页面文件使用情况在任何应用程序使用内存之前将其编入页面文件。提交费用并不反映当前内存使用情况,但反映了 Windows 当前在页面文件中编入了多少内存。
Windows 任务管理器实用程序在其“性能”选项卡中显示了三个与提交费用相关的计数器:
- 全部的是正在使用的页面文件支持的虚拟地址空间量,即当前提交的内存量。相应的性能计数器称为“已提交字节数”。
- 限制是 Total 的最大可能值;它是当前页面文件大小加上可用于分页的物理内存的总和(这不包括分配给不可分页区域的 RAM)。相应的性能计数器称为“提交限制”。
- 顶峰是自计算机上次重新启动以来总提交费用达到的最高量。
当打开并使用任何程序时,提交费用会增加,而当程序关闭时,提交费用会减少。当已运行的程序分配或释放私有虚拟内存时,提交费用也会发生变化;例如,使用 VirtualAlloc 和 VirtualFree API。
可以通过创建额外的页面文件或扩展现有页面文件(如果启用了页面文件扩展)来增加提交限制。当总提交量接近限制时,操作系统将自动扩展页面文件(如果可能)。在这种情况下,将显示一个弹出窗口,指出“系统的虚拟内存不足”。
更多信息请参见Windows XP 的文档。
答案2
这似乎是 VirtualBox 的一个问题。
我已经按照另一个论坛的建议关闭了 Virtualbox 中的英特尔虚拟化技术,到目前为止没有遇到问题。