Windows 上有大量“可用”内存,内存不足导致崩溃

Windows 上有大量“可用”内存,内存不足导致崩溃

在运行 Windows (10) 的计算机上,我遇到了内存使用问题。我不想让 Windows 在 RAM 可用量很高的情况下进行无用的 IO:我禁用了交换文件(任何磁盘上都没有分页文件)。

使用应用程序执行操作时,内存使用量会增加。某些时候,某些应用程序会因 OutOfMemory 异常而崩溃,或者变得不稳定并需要手动停止。

当它发生时,我看到的是:

  • 安装的 RAM 为 64 GiB
    • 2 个 DDR4 2667 16 GiB 模块
    • 2x DDR4 3200 16 GiB 模块(稍后添加)
  • 任务管理器显示
    • 图中显示内存使用量几乎已满(约 53/64 GiB)
    • 约 36 GiB“正在使用”(压缩后为 0 MiB)
    • 大约 11 GiB“可用”
    • 大约 24 GiB“缓存”
    • 约 61 GiB “已承诺”
    • 大约 2.2 GiB“分页池”
    • 大约 2.1 GiB“非分页池”
  • 没有显著的磁盘活动
  • SuperFetch/SysMain 已启用
  • Windows 10 专业版 22H2

内存中最大的应用程序通常是:Firefox、Jetbrains Rider、Teams、VS Code、一些 DBMS。

为什么有这么多内存可用,我的应用程序还是会崩溃?

=>这个答案表示空间不足,无法允许应用程序提交更多内容

是否有一些操作系统调整可以减少提交的需要?
还是每个应用程序都有特定的调整?

答案1

必须启用页面文件。否则,您将浪费物理 RAM 用于程序预留但未使用的内存。您没有耗尽内存,而是耗尽了提交限制。

我对相关问题的回答

[…] 页面文件是必不可少有效利用身体的内存。这是因为大多数程序预留的内存比它们实际使用的内存要多(这称为“承诺费用”)。Windows 不允许“过度承诺”(做出可能无法兑现的承诺),因此所有预留都必须由物理内存或页面文件支持。

在屏幕截图中,您可以看到虽然仅使用了约 9 GiB 内存,但总共保留了 12 GiB。

允许 Windows 管理页面文件大小,或者,如果您确实想要,花一些时间找出程序保留的内存量并将其设置为固定大小。

相关内容