查看: 17066|回复: 40
收起左侧

[教程] [微软Wiki]解决虚拟内存、休眠文件、应用等空间占用纠纷

  [复制链接]
翼风Fly
发表于 2015-6-7 22:49:49 | 显示全部楼层 |阅读模式
本帖最后由 翼风Fly 于 2015-6-29 18:44 编辑

近期有朋友分享了一篇来自微软社区的文章:[Microsoft Answers]如果我的内存足够大,是否还需要设置虚拟内存?若Windows遇到了问题,其实最好的方式就是先去微软那边寻求答案,你会了解更多。推荐:
问题答疑:微软社区
帮助信息:微软帮助和支持中心  
问题修复:Microsoft Fix it  → 不过近期微软突然把页面撤掉算是什么情况。。。

因为看到大家说有关 休眠文件 、分页文件(虚拟内存) 的设置问题,特再Copy一篇科普文供大家参考。
关于排版等有啥意见,欢迎指正 ^_^

如果您觉得帖子有用,求帮顶,让更多的人知道,Thanks~

=====================      阅  读  提  示         =======================


  • 1楼 文章内容
  • 2楼 内容摘要  →  不喜欢看一堆文字就看这里,但还是建议看原文
           相关内容补充
  • 3楼 其他补充说明




====================                正                    文                 =====================



我的硬盘空间都到哪里去了?

作者: 刘晖 MVP(微软最有价值专家)

安装好操作系统后,随着使用时间的延长,可能会遇到系统盘硬盘空间不足的问题。或者在正常使用过程中,系统盘可用空间急剧降低。硬盘空间都到哪里去了?如何揪出耗费空间的罪魁祸首?

一些需要注意的问题
首先要注意,Windows 是一套庞大复杂的操作系统,本身就需要占用一定的硬盘空间,取决于不同机型、配置,以及安装的软硬件,正常情况下不同电脑的系统盘空间占用情况并不完全相同。
虽然我们可以在安装软件时选择将软件安装到非系统盘,但 Windows 8 新增了一种 Modern 应用,这种应用只能安装到系统盘,无法选择其他位置安装。这类应用都在相互隔离的“沙箱”中运行,程序运行过程中产生的数据,例如临时文件,缓存文件,或其他文件也都会保存在系统盘。(楼主备注:似乎Win10有相关改进,具体细节请Win10正式之后了解)
一般情况下,如果是给新硬盘中安装系统,建议给系统盘分配不低于 50GB 的可用空间。这样只要不是安装了太多非常庞大的软件,就算不清理,一般也可以长时间使用,不会面临磁盘空间不足的问题。


处理休眠文件
现在很多电脑配备了大容量内存,而 Windows 的睡眠/休眠等节能状态要求在系统盘划分一块体积等同于物理内存体积 75% 的空间,用于在进入节能状态后保存内存数据。因此如果电脑安装了 8GB 物理内存,默认情况下系统盘根目录下会出现一个体积为 8GB x 75% = 6GB 的 hiberfil.sys 文件(该文件默认会被隐藏不可见)。
先来看看你的系统中休眠文件占了多少空间。
  • 打开资源管理器窗口,在“查看”选项卡下点击右侧“选项”按钮,这样可以打开文件夹选项对话框。
  • 切换到“查看”选项卡。
  • 在“高级设置”中选中“显示隐藏的文件、文件夹和驱动器”,并反选“隐藏受保护的操作系统文件(推荐)”选项。

  • 点击“确定”。
随后打开系统盘根目录,这里会出现一个体积非常巨大的 hiberfil.sys 文件。
上文提到过,默认设置下的休眠文件大小为系统物理内存总数的 75%。这是从 Windows 7 开始增加的功能。之前的系统,休眠文件大小与物理内存总数是相等的,从 Windows 7 开始我们可以将其压缩,并可指定 50%-100% 的压缩比。
要对休眠文件进行进一步压缩,请按下 Win-X 组合键,在桌面左下角出现的菜单中选择“命令提示符(管理员)”,在随后打开的命令行窗口中运行下列命令:
PowerCfg.exe /HIBERNATE /SIZE XX
其中“XX”是想要压缩到的比例,这里可输入 50-100 之间的整数,系统默认值为“75”。
要注意,如果将该数值修改得过小,可能导致系统休眠/睡眠时出现 STOP 0x000000A0 INTERNAL_POWER_ERROR 蓝屏错误。对于运行不同程序,执行不同任务的计算机,实际可用的压缩率可能不完全相同,也许有些系统可以使用 50% 的压缩率正常休眠/睡眠,但有些系统也许不能低于 60%。
因此只建议在物理内存非常大,并且系统盘空间严重不足的情况下修改该设置。如果修改后在休眠/睡眠时遇到上述蓝屏错误,可重启动,并设置一个较大的压缩率。休眠文件只能位于系统盘根目录下,无法将其设置到其他硬盘分区。


分页文件的处理
上图中还列出了一个体积超过 4GB 的 pagefile.sys 文件,这就是分页文件。
按照设计,Windows 以及应用程序在使用过程中,会将已经保存到内存中,但暂时不使用的数据移动到硬盘上,以便释放出宝贵的内存空间,供其它程序使用。而如果程序需要用到被移动到硬盘上的内存数据,则会重新读取到内存中。
操作系统的内存管理机制控制着整个过程。具体的原理和细节较为复杂,这里不准备详细介绍,感兴趣的读者可参阅下列文章:
优化您的分页文件:http://support.microsoft.com/kb/99768/zh-cn (楼主备注:机器翻译)
如何为 64 位版本 Windows 确定适当的页面文件大小:http://support.microsoft.com/kb/2860880/zh-cn (楼主备注:此为英文,单击这里获取机器翻译
RAM、虚拟内存、页面文件和 Windows 中的内存管理:http://support.microsoft.com/kb/2160852/zh-cn (楼主备注:机器翻译)
通常分页文件交由操作系统管理即可,普通用户无需修改相关设置。但如果由于硬盘空间不足,希望将分页文件转移到其他硬盘分区,或希望修改分页文件的大小,可执行下列操作:
  • 打开控制面板,依次点击“系统和安全”-“系统”。
  • 随后点击窗口左侧的“高级系统设置”,并点击“性能”选项下的“设置”按钮。
  • 打开“高级”选项卡,点击“更改”,随后会看到下图所示界面。
  • 反选“自动管理所有驱动器的分页文件大小”选项,并从硬盘分区列表中选择系统盘之外的其他分区。
  • 选择“系统管理的大小”,这样即可继续让系统自动管理分页文件,不过会将分页文件转移到我们指定的目标分区。或者可以在这里选择“自定义大小”,然后输入“初始大小”和“最大值”,这样即可将分页文件保存到其他分区,并且限制文件占用的硬盘空间。
  • 随后点击“设置”,然后点击“确定”。这里需要注意:必须首先点击“设置”按钮,否则改动无法生效。
  • 按照屏幕提示重启动系统,即可完成改动。
一般情况下,建议只将分页文件设置到非系统盘即可。此外对于包含多块物理硬盘的计算机,也可以考虑将分页文件保存到没有用于安装操作系统和其他应用程序的硬盘,这样在繁忙时,系统和程序运行的 IO 操作与分页的 IO 操作可以由不同硬盘处理,有助于改善性能。
注意:网上一直以来有一个争议,在物理内存越来越大的今天,是否有必要彻底禁用分页文件,毕竟硬盘的读写速度会严重拖累整体性能。对于这个问题,笔者个人的看法是:最好不要这样做!原因可以参考这里的讨论:在物理内存充足的情况下,是否需要禁用虚拟内存:http://www.zhihu.com/question/20728404如果不希望分页文件占用太多硬盘空间,至少可以考虑设置较小的页面文件,但不要将其彻底禁用。


Modern 应用的空间占用
上文提到过,Windows 8 新增了一种针对触控操作的 Modern 应用。这种应用比较特殊,只能安装在系统盘,并且会在相互隔离的沙盒中运行,程序运行过程中产生的所有文件,例如视频客户端的视频缓存、在线音乐播放器下载的歌曲、新闻客户端缓存的新闻文字和图片,都会保存到系统盘中。
注意:网上有教程通过修改注册表更改 Modern 应用的默认安装位置,但更改后可能会导致非常严重的后果,例如所有 Modern 应用都无法启动。如果要进行此操作务必请慎重!
想知道 Modern 应用会占用多少空间?这样做:
  • 按下 Win-C 组合键打开边栏,点击“设置”-“更改电脑设置”。
  • 依次进入“搜索和应用”-“应用大小”。随后即可看到系统中安装的所有 Modern 应用所占用的硬盘空间。

  • 接着可以根据具体的应用类型决定处理方式,例如对于在线视频客户端,可以删除缓存的视频内容;新闻阅读器,可以清空缓存。这些操作都需要在应用本身提供的选项中进行。
  • 如果某个应用的临时文件占用了大量空间,但没有提供清理选项,此时可将其卸载,然后在应用商店中重新安装。


传统桌面程序的处理
对于 x86 架构的设备,还可以安装并运行传统桌面程序,这些程序也会在运行过程中产生大量临时文件,并保存到系统盘。因此我们首先需要知道硬盘空间到底被哪个程序占用了。
Windows 本身没有提供工具帮我们方便地做到这一点,网上有很多现成的第三方工具,例如 TreeSize Free,这是一个工具软件的免费版本,功能比较少,不过用来检查硬盘的空间使用情况已经足够了。
TreeSize Free 下载地址:http://www.jam-software.com/treesize_free/
软件的使用方式如下:
  • 鼠标右键点击软件主程序或快捷方式,选择“以管理员身份运行”。
  • 在“Scan”菜单下选择要分析的硬盘分区,例如这里可以选择系统盘。

  • 稍等片刻,分析结果会显示在程序主窗口中。所有文件夹会按照空间占用的大小进行降序排列,点击文件夹前的三角形按钮可以展开查看子文件夹的空间占用。

对于一些体积较大,但用途不明的文件夹,建议首先用文件夹的名称作为关键字在网上搜索,或在论坛询问,了解这个文件夹的用途。随后再决定是否可以放心删除。



评分

参与人数 3经验 +20 人气 +2 收起 理由
绯色鎏金 + 20 版区有你更精彩: )
逆枫寒 + 1 版区有你更精彩: )
GATX011 + 1 版区有你更精彩: )

查看全部评分

翼风Fly
 楼主| 发表于 2015-6-7 22:50:17 | 显示全部楼层
本帖最后由 翼风Fly 于 2015-6-11 10:29 编辑

=================    总    结   摘   要    =================

具体细节请看原文(建议)
  • 休眠文件(hiberfil.sys)
    默认大小 = 物理内存体积 * 75%
    调整方式:
    PowerCfg.exe /HIBERNATE /SIZE XX
    其中“XX”是想要压缩到的比例,这里可输入 50-100 之间的整数,系统默认值为“75”。
    【注意】数值过小,休眠/睡眠 时会引发 STOP 0x000000A0 INTERNAL_POWER_ERROR 蓝屏错误。因此只建议在物理内存非常大,并且系统盘空间严重不足的情况下修改该设置。
  • 分页文件(pagefile.sys,常称之为“虚拟内存文件”)
    通常分页文件交由操作系统管理即可,普通用户无需修改相关设置。设置方式见主楼。
    【注意】网上一直以来有一个争议,在物理内存越来越大的今天,是否有必要彻底禁用分页文件,毕竟硬盘的读写速度会严重拖累整体性能。对于这个问题,笔者个人的看法是:最好不要这样做!原因可以参考这里的讨论:在物理内存充足的情况下,是否需要禁用虚拟内存:http://www.zhihu.com/question/20728404。如果不希望分页文件占用太多硬盘空间,至少可以考虑设置较小的页面文件,但不要将其彻底禁用。
  • Modern 应用的空间占用(Win8以上)
    包括用户数据等信息只能存储在系统盘。若要查看应用占据空间并清理,则:“设置”-“更改电脑设置”-“搜索和应用”-“应用大小”(详情见主楼)
  • 传统桌面程序的处理
    用第三方工具,例如 TreeSize Free




====================            相     关    补     充                  =======================

一、清理工具推荐
1、饭友修改(都可在软件下载区寻找):
金山垃圾清理独立版:http://bbs.kafan.cn/thread-1683558-1-1.html
金山隐私清理独立版:http://bbs.kafan.cn/thread-1755284-1-1.html
系统优化清理 CCleaner v5.06:http://bbs.kafan.cn/thread-1767298-1-1.html
完全卸载器 Total Uninstall Pro:http://bbs.kafan.cn/thread-1824893-1-1.html
2、论坛外工具推荐

二、有关分页文件(或称“页面文件”、“虚拟内存文件”)的解读
首先建议参考此文(大家应该都看过了吧 ^_^ ) : [Microsoft Answers]如果我的内存足够大,是否还需要设置虚拟内存?
我在该帖子中也Copy了不少权威观点

而且,主楼的作者还给出了一些参考文章。我把一些个人认为比较有用的简单一点:
  • 分页文件除了充当为“虚拟内存”以外,Windows在出现蓝屏故障时需要创建“故障转储文件”,这一点也是依赖分页文件的。如果蓝屏后没有故障转储文件,将无法分析蓝屏原因以进一步解决问题。
  • Windows 7是为SSD优化过的,对页面文件主要是读操作,所以无需担心对SSD寿命造成较大影响。碎片整理、Superfetch、ReadyBoost这些针对HDD时代的产物全给你禁用了,你想到的微软都考虑到了,不用担心。具体可参考MSDN说明(英文)
  • 建议仅当硬盘空间不够时才禁用页面文件。即使禁用,也不会有太多性能上的提升。
  • 分页文件默认占用大小及成因:
    各系统默认托管分页文件大小:
    操作系统
    最小的页面文件大小
    最大页面文件大小
    Windows XP 和 Windows Server 2003 小于 1 gb 的 RAM
    1.5 x RAM
    3倍内存或4 GB,取较大者
    Windows XP 和 Windows Server 2003 具有 1 GB 以上的 RAM
    1 x RAM
    3倍内存或4 GB,取较大者
    Windows Vista 和 Windows Server 2008
    1 x RAM
    3倍内存或4 GB,取较大者
    Windows 7 和 Windows Server 2008 R2
    1 x RAM
    3倍内存或4 GB,取较大者
    Windows 8 和 Windows Server 2012
    取决于崩溃转储设置 *
    3倍内存或4 GB,取较大者
    Windows 8.1 和 Windows Server 2012 R2
    取决于崩溃转储设置 *
    3倍内存或4 GB,取较大者

    * 具体参见下表:

    设置系统崩溃转储
    最小页面文件大小的要求
    小内存转储 (256 KB)
    1 MB
    核心内存转储
    取决于内核虚拟内存使用
    完全存储器转储
    1 个 RAM 加 257 MB *
    自动内存转储 **
    小、 核心或完全内存转储的自动选择


    * 1 兆字节的标头数据和设备驱动程序可以进行总计 256 MB 的辅助崩溃转储的数据。
    ** 该功能自Win8开始启用。





个人观点:现有的分页文件逻辑被淘汰是早晚的问题,但现阶段建议保守为主,咱们的硬盘不差那一个G的空间。

评分

参与人数 1人气 +1 收起 理由
GATX011 + 1 版区有你更精彩: )

查看全部评分

翼风Fly
 楼主| 发表于 2015-6-8 12:17:17 | 显示全部楼层
本帖最后由 翼风Fly 于 2015-6-9 16:24 编辑

欢迎阅读:
http://www.win7china.com/html/17305.html
我刚刚编写的百度百科:Windows资源监视器,让你更好的把控系统资源,帮助分析排除问题
http://baike.baidu.com/item/Windows资源监视器

相关内容正在编辑。
风之咩~
发表于 2015-6-8 12:19:24 | 显示全部楼层
好长呀
翼风Fly
 楼主| 发表于 2015-6-8 12:21:23 | 显示全部楼层

所以我在2楼给出摘要了啊。。。。。
你这水平的就多看看吧。。。
风之咩~
发表于 2015-6-8 12:22:20 | 显示全部楼层
翼风Fly 发表于 2015-6-8 12:21
所以我在2楼给出摘要了啊。。。。。
你这水平的就多看看吧。。。


然而我现在是无法集中精力的状态
我是隔壁的小号
发表于 2015-6-8 13:14:57 | 显示全部楼层
我只想说这篇文章对我没啥用。
一来现在硬盘不差那点空间,就算虚拟内存占用了100G我也无所谓。
二来,真是太长了,在二楼来一个总结吧。
翼风Fly
 楼主| 发表于 2015-6-8 13:23:48 | 显示全部楼层
我是隔壁的小号 发表于 2015-6-8 13:14
我只想说这篇文章对我没啥用。
一来现在硬盘不差那点空间,就算虚拟内存占用了100G我也无所谓。
二来,真 ...

2楼已经有总结了啊。。。这么不明显
我是隔壁的小号
发表于 2015-6-8 13:24:45 | 显示全部楼层
翼风Fly 发表于 2015-6-8 13:23
2楼已经有总结了啊。。。这么不明显

今天不在状态,看得头晕。
总结用变色字体吧。
Fairytale`
发表于 2015-6-8 15:14:20 来自手机 | 显示全部楼层
三剑客啊
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-4-20 03:48 , Processed in 0.166593 second(s), 17 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表