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


17

我今天发现,我们可以使用powercfg -H -size 100%命令行工具来设置hiberfil.sys的大小。忽略您将获得的辛苦空间,如果将其设置为,还会发生什么变化powercfg -H -size 50%?是否将最大RAM使用量限制为50%?如果我们超过50%的RAM,系统不会休眠吗?


2
当使用的RAM大于休眠文件可以存储的大小时,系统将因此bucheck(msdn.microsoft.com/en-us/library/ff559341%28v=vs.85%29.aspx)而崩溃
magicandre1981

Answers:


21

我已经找到有关休眠文件的Microsoft文档。它告诉我们的是,内存的内容在转储到休眠文件之前已进行了压缩,因此大多数情况下,将休眠文件的百分比设置为较小是有益的,因为会浪费更少的磁盘空间。

Windows通过将内存内容复制到磁盘来支持休眠。系统先压缩内存内容,然后再将其保留在磁盘上,这将所需的磁盘空间减少到小于系统上物理内存的总量。

该命令的正确语法似乎是:

PowerCfg.exe /HIBERNATE /SIZE 75

该文档还指出,如果休眠文件太小,则会发生“停止错误”,并且代码将建议您增加休眠文件大小所需的数量。

这样做不会限制系统可用的物理RAM数量。

由于压缩后,如果仅很少使用100%的物理内存和/或内存很可能包含在大多数情况下应该合理压缩的数据,那么减小文件大小就不会有问题。

从该文档中:

Windows在休眠文件(名为Hiberfil.sys)中为休眠保留了磁盘空间。对于Windows 7,休眠文件的默认大小等于系统上总物理内存的75%。例如,在具有2 GB RAM的计算机上,默认的休眠文件大小为1.5 GB。

在极少数极端的内存使用情况下,包括通过内存性能或测试实用程序进行内存验证,由于无法对内存内容进行足够的压缩以使其无法适应休眠文件的大小,因此休眠可能会失败

我会尝试使用较低的数字,但就我个人而言,我不会低至50%。不过,这可能很好,而最糟糕的情况是休眠将失败,并且您必须正常重启并设置更大的大小。


2
感谢您的回答。我不知道官方的一个但都powercfg -H -size 100%PowerCfg.exe /HIBERNATE /SIZE 75正常工作

1
看起来在Windows 10上,该powercfg命令不再接受/SIZE参数-至少不再记录在案,但如果指定该参数,则不会产生错误。
马丁内

当我将百分比降低到60%(Windows 7 SP1)时,我发现从休眠状态恢复的时间大大增加了。我是唯一一个?
deddebme

@martineau完全有可能由于Windows中的混合关闭而使休眠文件的大小变得与交换文件类似,从而具有适应性。除了看到休眠文件大约占系统RAM大小的35%之外,我没有机会进行调查,但是我并不感到惊讶。
Mokubai

1
@intrepidis:我完全意识到这一点。您知道吗,如果您只使用它,那么所有可能参数的powercfg /?清单将更长。如果您仔细查看这些内容,最终会发现它们(不是按字母顺序排列),此外,它还将接受一个位置-与链接的MS文档相匹配。-HIBERNATE, -H-H <ON|OFF>-H -Size <PercentSize>-Size Specifies the desired hiberfile size in percentage of the total memory. The default size cannot be smaller than 50. This switch will also enable the hiberfile automatically.
马丁内

4

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%。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.