什么是页面文件?在配备 32GB 内存的 Windows 11 电脑上禁用它会有什么影响 不,微软并不建议仅仅因为电脑有 32GB 内存就关闭页面文件。Windows 会利用页面文件增加可以向应用承诺的内存量,并在电脑遇到蓝屏死机(BSOD)时保存崩溃转储文件;而 Windows 11 现在显示的是黑屏。微软表示,页面文件的合适大小取决于每台电脑的峰值工作负载,“无法一概而论”,因此 Windows 默认会自动调整其大小。
如今,32GB 内存已是游戏电脑的常见配置。今年早些时候,微软甚至将其称为游戏升级的“安心之选”。但我仍然看到不少优化指南和 Reddit 帖子建议 32GB 内存用户关闭页面文件,以腾出 SSD 空间、提升游戏速度。
页面文件是一个名为 pagefile.sys 的隐藏文件,默认保存在 Windows 系统盘 C: 的根目录下。我很年轻时第一次了解到它,当时把内存想成桌面,把页面文件想成抽屉。这个比喻很容易理解:Windows 可以把应用修改过、但一段时间没用到的数据移进抽屉,从而释放内存,供你当前正在做的事情使用。
硬盘上已有的应用和 DLL 通常不会被移到页面文件中,因为 Windows 可以从它们的原始文件重新加载。只有修改过的数据才可能进入页面文件,例如记事本里尚未保存的文本。
我们大多数人都有查看任务管理器中内存使用情况的习惯,但它也能体现页面文件更重要的作用。在性能 > 内存中,“正在使用”表示电脑当前正在使用的内存;“已提交”则表示 Windows 已向应用承诺的内存量,其显示的上限等于内存容量加上页面文件大小。
任务管理器分别显示已提交内存及其上限,以及正在使用的内存。图片来源:Windows Latest在我的 32GB 游戏电脑上,任务管理器显示正在使用的内存为 24.7GB,已提交内存为 39.2GB,上限则为 54.4GB。本周我们用于测试 Windows 11 26H2 的 8GB 笔记本电脑,上限为 10GB。
应用经常会要求 Windows 提交一些暂时用不到的内存。微软的雷蒙德·陈(Raymond Chen)早在 2009 年就解释过,内存提交“只是一种承诺:当你需要页面时,它就会在那里。”只有应用实际使用内存时,Windows 才会分配物理内存。
不过,每一项承诺都会计入提交上限。微软表示,关闭页面文件后,上限会降至略低于已安装的内存容量。因此,即使任务管理器显示还有数 GB 内存空闲,32GB 电脑向应用承诺的内存也无法超过约 32GB。
达到上限后,微软警告称,应用和系统本身“可能无法获得已提交的内存”,这“可能导致冻结、崩溃和其他故障”。游戏也不例外。负责将 PlayStation 游戏移植到 PC 的工作室 Nixxes 建议遇到显存崩溃的玩家:“我们建议让 Windows 自动管理虚拟内存大小。”Egosoft 的《X4: Foundations》故障排除页面也建议玩家不要限制页面文件。
马克·鲁西诺维奇(Mark Russinovich)是 Sysinternals 的联合创始人,现任微软 Azure 首席技术官。他在 2008 年写道,少数工作负载在没有页面文件时可能运行得更好,但页面文件通常意味着可用内存更多;“更不用说,如果没有足够大的页面文件,Windows 就无法写入内核崩溃转储文件。”
微软文档指出,页面文件大小“取决于系统崩溃转储设置的要求,以及系统提交量的峰值或预期峰值。”即使两台电脑配置完全相同,所需的页面文件大小也可能不同。
好在默认勾选的“自动管理所有驱动器的分页文件大小”选项会处理这一切。Windows 会先创建一个较小的页面文件,并在已提交内存超过上限的 90% 时将其扩容。对于一台 32GB 电脑,上限为 96GB(内存容量的三倍),但最大不能超过磁盘容量的八分之一。按我的计算(而且我从来不会算错),512GB SSD 上的上限约为 60GB。
默认的虚拟内存设置允许 Windows 调整页面文件大小。图片来源:Windows Latest崩溃转储是另一个需要考虑的因素。Windows 默认使用“自动内存转储”,只需要较小的页面文件。如果电脑在四周内再次崩溃,Windows 会将页面文件增大到内存容量和 32GB 中较小的那个值,因此 32GB 电脑上的 pagefile.sys 最终可能达到 32GB。如果没有页面文件,也没有管理员另行设置的专用转储文件,Windows 就无法保存转储文件。
Windows 11 默认保存自动内存转储,这需要用到页面文件。图片来源:Windows Latest微软也提到了一种特殊情况:频繁分配内存的应用,可能会在自动页面文件仍在扩容时随机遇到“内存不足”错误。此时,微软建议手动设置页面文件大小,初始大小设为内存容量的1.5 倍。
对于高级用户,鲁西诺维奇的方法更合适。像平时一样同时运行所有常用程序,记录提交量峰值(Process Explorer 可在“系统信息”中显示),再减去内存容量。如果结果小于零,就根据崩溃转储设置来确定页面文件大小。
如果你的提交量峰值远低于 32GB,那么游戏运行期间 Windows 几乎没有理由写入页面文件,因此关闭它并不能带来多少速度提升。不过,如果游戏、几十个 Chrome 标签页和 Discord 同时运行,导致用量超过上限,你就失去了这道安全保障。
微软还表示,只要没有达到提交上限,页面文件显示 100% 使用率并不意味着性能有问题。而且,并非所有硬页面错误都来自读取页面文件:Windows 也会把从 EXE 和 DLL 文件读取数据计为硬页面错误。因此,游戏卡顿并不一定是 Windows 正在把内存转存到 SSD 上。
我的电脑上,由系统管理的 pagefile.sys 占用了 25.6GB,这就是关闭页面文件后能腾出的全部 SSD 空间。
如果你的 32GB 电脑运行正常,页面文件就是一个无需优化的 Windows 设置。你曾在游戏电脑上关闭过页面文件吗?