如果我们减小 hiberfil.sys 的大小会发生什么情况

如果我们减小 hiberfil.sys 的大小会发生什么情况

我今天发现我们可以使用命令行工具设置 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 reducedpowercfg /h /type full设置正常大小。

相关内容