oflyhigh avatar

谁吃掉了我的空间?休眠模式 (hiberfil.sys)以及虚拟内存(Pagefile.Sys)

oflyhigh

Published: 10 May 2022 › Updated: 10 May 2022谁吃掉了我的空间?休眠模式 (hiberfil.sys)以及虚拟内存(Pagefile.Sys)

谁吃掉了我的空间?休眠模式 (hiberfil.sys)以及虚拟内存(Pagefile.Sys)

每次重装电脑总会遇到各式各样的问题,这次重装完NUC系统后,还没装啥软件呢,我就发现C盘空间占掉了快一半,我记得以前Windows体积没这么夸张啊?

image.png
(图源 :pixabay)

查看一下C盘属性,发现C盘占据了约67G空间:

image.png

看了一下C盘根目录下文件的属性,发现所有文件夹一共占据了约28G空间:

image.png

这样一计算,丢了足足39G空间,这可不是一个小数目啊?是谁吃掉了我的39G空间呢?

找到罪魁祸首

在C盘根目录下,文件管理器中查看(view)选项中挑选显示隐藏文件(Hidden Items)后,发现根目录下多出来$WinREAgent以及ProgramData两个隐藏目录,但是查看一下,不过占了几百M空间,显然不是罪魁祸首。

在文件管理器的Options中(View->Options->View)中挑掉Hide protected operating system files (recommended)

image.png

挑掉后会弹出提示(选Yes就好):

image.png

选择Apply后,回到C盘根目录下,你会发现多了好几个隐藏文件:

image.png

尤其是hiberfil.sys以及pagefile.sys竟然分别占据26.6G以及9.9G空间,这简直是罪不可赦!下面我们分别来把他们消灭掉。

关闭休眠

说到hiberfil.sys,就要提到Windows关机的几种模式,最常用的关机(Shut down)以及重启(Restart)应该不用多说了。

另外,常用的还有一种睡眠(Sleep)模式,这种模式会关闭除内存外的所有设备,所以电脑会有极低的消耗,当唤醒时瞬间恢复满血工作状态(睡眠时啥样,醒来后还是啥样)。

除此之外,还有一种休眠(Hibernate)模式,如果选择这种模式,那么系统会将内存中所有的数据,转存到硬盘,然后关闭所有的设备。当启动时,系统会将硬盘里的数据恢复到内存,然后进入满血的工作状态。

乍一看,貌似休眠模式更多优点,比如说完全不耗电,又比如说不怕中途断电。可是缺点也是明显的,要增加一个内存转储到硬盘以及从硬盘读出数据到内存的过程。占据磁盘空间不说,SSD总这么几十G几十G的写入,心疼呀。

所以我觉得在台式机系统,最好完全禁用休眠(Hibernate)!禁用休眠的步骤如下:

在开始菜单附近的搜索框中敲入cmd,再弹出的结果命令行提示符(command Prompt)程序上右键选择以管理员身份运行(Run as administrator):

image.png

输入如下指令并回车:

powercfg -h off

再回到C盘根目录,你会惊奇地发现hiberfil.sys文件不见啦,一下子多出来26.6G空间。(具体hiberfil.sys空间占用大小和安装的内存有关,内存越大hiberfil.sys文件越大)。

当然了,如果你有特殊的需求(我并不认为会有这样需求),那么也可以用同样的步骤开启休眠(Hibernate)功能:

powercfg -h on

关闭虚拟内存

关于虚拟内存,相比大家都会知道一点点,说白了就是内存不够大,然后在磁盘上分配一块空间,必要的时候当作内存使用,这样内存就变大了。

不过,现在的问题是,我的内存已经足够大了(64G),我暂时想象不出来有啥程序能吃掉这么多内存。(我大台机是128G内存的哦)

所以我决定把Windows的虚拟内存彻底关闭掉,关闭方法如下:

Setting->About右侧选择Advanced System Setting,进入到如下页面:

image.png

选择Setting->Advanced:

image.png

在虚拟内存(Virtual Memory)栏目下,我们可以看到,现在虚拟内存占用了9728M空间,又是一个吃空间大户啊。

选择Change...,我们发现现在是Windows自己管理呢:

image.png

挑选掉Automatically manage paging file size for all drives:

image.png

现在我们就能自己管理虚拟内存啦,然后把C盘也设置为No paging file,这会导致一个警告⚠:

image.png

大意是禁用或者设置小于800M的页面文件,当发生系统错误时,Windows可能没法记录有助于发现问题的细节信息。哎,等有问题再说吧,其实就算记录,我也看不懂啊。

不过不同于关闭休眠,我们完成虚拟内存的设置后,重启以后pagefile.sys才会被删除,不过这都无所谓啦。

结论

Windows的休眠机制以及虚拟内存机制,导致生成两个超大的文件(hiberfil.sys & Pagefile.Sys),根据我电脑的实际情况以及个人偏好,我选择关闭了休眠功能以及关闭了虚拟内存,进而找回来近40G的磁盘空间。

小伙伴们可以根据自己的情况进行设置,不过事先声明,以上内容仅供参考,如果你把自己的电脑搞冒烟了,我可不负责哦。

Leave 谁吃掉了我的空间?休眠模式 (hiberfil.sys)以及虚拟内存(Pagefile.Sys) to:

Written by

Programmer, Maker, Freelancer, Witness. Make friends, Make money, Make life better!

Read more #cn posts


Best Posts From oflyhigh

We have not curated any of oflyhigh's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From oflyhigh