我今天发现我们可以使用命令行工具设置 hiberfil.sys 的大小powercfg -H -size 100%
。忽略您将获得的硬盘空间,如果我们将其设置为,还会发生什么变化powercfg -H -size 50%
?它会将最大 RAM 使用率限制为 50% 吗?如果 RAM 使用率超过 50%,系统不会休眠吗?
答案1
我有找到一份 Microsoft 文档关于休眠文件。它告诉我们,内存内容在转储到休眠文件之前会被压缩,因此大多数情况下,设置较低的休眠文件百分比大小是有益的,因为浪费的磁盘空间更少。
Windows 通过将内存内容复制到磁盘来支持休眠。系统在将内存内容保存到磁盘之前对其进行压缩,从而将所需的磁盘空间减少到小于系统上的总物理内存量。
该命令的正确语法似乎是:
PowerCfg.exe /HIBERNATE /SIZE 75
该文档还指出,如果休眠文件太小,则会发生“停止错误”,并且代码将建议您需要将休眠文件大小增加多少。
这样做会不是限制系统可用的物理 RAM 数量。
因为它是压缩的,所以如果您很少达到物理内存使用的 100% 和/或您的内存可能包含合理可压缩的数据(大多数情况下应该是这样的),那么减小文件的大小就不会有问题。
从该文件中:
Windows 在休眠文件中为休眠保留了磁盘空间,该文件名为 Hiberfil.sys。对于 Windows 7,休眠文件的默认大小等于总物理内存的 75%在系统上。例如,在具有 2 GB RAM 的计算机上,默认休眠文件大小为 1.5 GB。
在极少数极端情况下使用内存,包括通过内存性能或测试实用程序进行内存验证,由于内存内容无法充分压缩,因此休眠可能会失败以适合休眠文件的大小。
我会尝试使用较低的数字,但我个人不会将其设置为 50% 这么低。不过,这也许没问题,最糟糕的情况是休眠会失败,您必须正常重新启动并将大小设置得稍微大一些。
答案2
Windows 10 中的语法略有不同
PowerCfg /h[ibernate] off
将关闭休眠模式并删除文件 C:\hiberfil.sys
PowerCfg /h[ibernate] on
将重新打开该功能并创建与可用内存大小大致相同的文件 C:\hiberfil.sys(16GiB RAM 系统创建 15.9GiB 大小的 hiberfil.sys)
PowerCfg /h[ibrnate] size 75
将创建一个 hiberfil.sys 文件或将其大小减少到大约 75% (12GiB)
PowerCfg /h size 100
效果与打开该功能相同
尺寸值大于 100 会导致参数错误消息,尺寸小于 40 会将有效尺寸设置为 40%。
答案3
在 Windows 11 上设置一半大小,使用powercfg /h /type reduced
和powercfg /h /type full
设置正常大小。