我有 2 块内存,总共 32GB。但系统只使用了 27GB。即使系统遇到内存问题,比如我的程序抛出与内存问题相关的错误,从 SSD 加载资源管理器中的 30 个文件目录需要一分钟,等等,也是如此。
硬件信息和进程浏览器都报告剩余的 5Gb 可用物理内存。
从我第一次构建系统时起,我的系统就不能使用超过 27Gb 的 RAM。我以为这只是一个巧合。当时,我运行了一天的 memtest,没有出现任何错误。(现在不能这样做了。我的程序全天候运行。)Ryzen 3600 + X570 主板 + Win 10 组合中曾经存在稳定性问题。在主板固件更新后,这个问题就消失了。除此之外,我没有遇到任何硬件问题。但最近我一直需要 RAM 空间,所以 RAM 瓶颈是一个大问题。
造成内存瓶颈的可能原因有哪些?如何让系统使用更多的物理 RAM?
系统规格:
操作系统:Win 10
中央处理器:Ryzen 3600
显卡:GTX 1660 Ti
主板:华硕 X570 TUF Gaming PLUS Wifi
内存:2 块 G.SKILL Trident Z Neo,每块 16GB。型号 F4-3600C16D-32GTZNC
SSD 提及:ADATA S8200PNP,1Tb
顺便说一句,该 SSD 也是保存页面文件的地方。目前 Explorer 报告 SSD 上有 101Gb 可用空间。页面文件限制设置为自动。
当没有明显内存问题时,通过 Process Explorer 查看内存使用情况的示例:(当存在明显内存问题时,我很难操作系统。)
答案1
您的提交费用非常高。这意味着以下两种情况之一:
- 您正在尝试运行需要比您现有 RAM 更多的程序(4 倍)
- 您的软件存在内存泄漏
请不要接受约 95 GiB 的提交费用为正常情况。这并非如此,仅 32 GiB 的物理 RAM 就无法实现。
您在评论中指出 Windows Explorer 的提交大小超过 27 GiB。这不正常,完全可能是问题所在。当然,这不是 Explorer 本身,而是所谓的 shell 扩展。您可以使用ShellEx查看器调查您拥有哪些 shell 扩展。它还可以禁用 shell 扩展。
所以你要做的是:
尝试禁用不同的 shell 扩展,最好始终启用 Microsoft 扩展。我认为您需要重新启动 Explorer(例如从任务管理器重新启动)以使更改生效。找到罪魁祸首后,您可以永久删除它。
仅供参考:在我的系统上有以下第三方 shell 扩展,Explorer 使用的内存不到 100 MiB:
- 7-Zip(2 个扩展)
- 差异扩展
- Git 扩展
- 哈希校验
- Macrium Reflect (5 个扩展)
- 记事本++
- NVIDIA 显卡驱动程序(4 个扩展)
- 苏门答腊 PDF (2 个扩展)
当应用程序请求内存时,它不会请求物理内存,而是请求“承诺费用”。可用的“承诺费用”的最大量是物理内存(显然是固定量)+页面文件(通常是动态大小)。一旦 Windows 将页面文件增长到可接受的限制(无论该限制是多少),请求内存的程序就会出现内存不足错误。通常,Windows 还会显示一个警告对话框,说明内存不足。
当太多程序占用过多内存但又不使用它时,即使物理 RAM 尚未完全使用,内存也会耗尽。预订的。这很可能就是您所看到的。