题 在8 GB RAM计算机上删除页面文件有什么好处或不利?


我在双核,x64 AMD和8 GB RAM上运行Windows 7。

我甚至需要一个页面文件吗?

删除它有助于或损害性能吗?

如果这是服务器或桌面,它会有所作为吗?

Windows 7与Windows 2008是否会对页面文件产生影响?


214
2018-06-10 19:50






答案:


TL; DR版本:让Windows处理您的内存/页面文件设置。 MS的人花了一个 批量 比我们大多数系统管理员更多的时间考虑这些问题。

很多人似乎都认为Windows会根据需要将数据推送到页面文件中。 EG:有些东西需要大量内存,并且没有足够的内存来满足需求,因此Windows在最后一分钟开始疯狂地将数据从RAM写入磁盘,以便它可以释放RAM以满足新的需求。

这是不正确的。引擎盖下还有更多内容。一般来说,Windows维护着 支持商店,这意味着它希望在磁盘上的某个地方看到内存中的所有内容。现在,当某些东西出现并需要大量内存时,Windows可以非常快速地清除RAM,因为该数据是 已经 在磁盘上,如果需要,可以将其分页回RAM。所以可以说页面文件中的大部分内容都是  在RAM;数据是 先发制人 放在页面文件中以加快速度  内存分配需求。

描述所涉及的具体机制需要很多页面(见第7章) Windows内部,并注意到 新版本 很快就会出现),但有一些值得注意的好事。首先,RAM中的大部分内容已经存在于磁盘上 - 例如从可执行文件或DLL获取的程序代码。所以这不需要写入页面文件; Windows可以简单地跟踪最初从中获取位的位置。其次,Windows会跟踪RAM中最常使用的数据,因此从RAM中清除那些在没有被访问的情况下最长的数据。

完全删除页面文件会导致更多的磁盘抖动。想象一个简单的场景,其中一些应用程序启动并需要80%的现有RAM。这将迫使当前可执行代码从RAM中 - 甚至可能是OS代码。现在,每当其他应用程序 - 或操作系统本身(!!)需要访问该数据时,操作系统必须将它们从磁盘上的后备存储中分页,导致大量颠簸。因为没有页面文件可以作为临时数据的后备存储,所以可以分页的唯一内容是可执行文件和具有固有后备存储的DLL。

当然有许多资源/利用方案。你有一个场景可能不会因为删除页面文件而产生不利影响,但这些都是少数。在大多数情况下,删除或减少页面文件将导致峰值资源利用率方案下的性能降低。

一些参考:

dmo指出 最近 Eric Lippert的帖子 这有助于理解虚拟内存(虽然与问题的关联性较小)。我把它放在这里是因为我怀疑有些人不会向下滚动到其他答案 - 但如果你发现它有价值,你欠 DMO 投票,所以使用 链接 到那里!


301
2018-06-10 21:15



对于杰夫和乔尔:它与“鸭子”押韵 - quux
在Solaris上,它甚至更为复杂。交换文件在像tmpfs这样的ram磁盘中被镜像,因此内存总是几乎已满 - 但显然这是最佳策略。 - Martin Beckett
我一直认为,我应该将其设置为固定数量(例如,最小2GB,最大2GB),而不是允许Windows管理我的页面文件大小,因为让它增长和缩小会导致碎片问题。这是好的想法,还是我应该遵循你的第一行,让Windows处理一切? - John Fouhy
@Mehrdad:因为你不想让50%的RAM免费。当然,你可以这样做,但是你会失去50%的物理RAM,你可以将它用作活动数据的磁盘缓存。免费RAM是效率低下的标志,它就像联邦快递卡车在仓库而不是在路上。这意味着你 不 尽可能多的运费,因为你花了太多时间装卸货物。 - David Schwartz
@Mehrdad:问题是,没有页面文件,有很多数据 必须 保存在RAM中,即使它永远不会被访问。例如,考虑由系统启动时启动的进程分配的任何内存,但提供几天不会使用的服务。系统无法证明数据不会被访问,除了RAM之外没有其他地方可以保存。因此,磁盘缓存会缩小,而数据会保留在数天内未访问的RAM中。 - David Schwartz


Eric Lippert最近写了一篇 博客文章 描述Windows如何管理内存。简而言之,Windows内存模型可以被认为是一个磁盘存储,其中RAM充当性能增强缓存。


80
2018-06-24 19:47





正如我从其他答案中看到的那样,我是唯一一个禁用页面文件并且从不退回它的人。太棒了:-)

无论是在家还是工作,我都拥有Vista 64位和8 GB RAM。两者都禁用了页面文件。在工作中,对于我来说,几乎没有Visual Studio 2008,带有Windows XP的Virtual PC,2个SQL Server实例和带有大量标签的Internet Explorer 8实例,这对我来说并不是什么不可思议的事情。我很少达到80%的记忆力。

我每天都在使用混合睡眠(睡眠休眠),没有任何问题。

当我拥有2 GB内存的Windows XP时,我开始尝试使用它,我真的看到了它的不同之处。经典的例子是控制面板中的图标一个接一个地停止显示,但是一下子全部显示。 Firefox / Thunderbird的启动时间也大幅增加。点击某些东西后,一切都立即开始起作用。不幸的是,2 GB对我的应用程序使用来说太小了(Visual Studio 2008,Virtual PC和SQL Server),所以我启用了它。

但是现在有了8 GB我永远不想回去并启用页面文件。

对于那些谈论极端情况的人来说,从我的Windows XP时代开始。
当您尝试从SQL查询中加载Excel中的大型数据透视表时,Excel 2000会相当快地增加其内存使用量。
当您禁用页面文件时 - 稍等一会然后Excel会爆炸,系统将清除其后的所有内存。
当您启用页面文件时 - 等待一段时间,当您注意到出现问题时,您几乎不能对系统执行任何操作。你的硬盘工作就像地狱一样,即使你以某种方式设法运行任务管理器(等待几分钟后)并杀死 excel.exe 你必须等待一分钟左右,直到系统从页面文件中加载所有内容。
正如我后面看到的,Excel 2003处理相同的数据透视表而没有禁用页面文件的任何问题 - 因此它不是“太大的数据集问题”。

所以在我看来,一个禁用的页面文件甚至可以保护你有时候写得不好的应用程序。

简而言之:如果你知道你的内存使用情况 - 你可以安全地禁用它。

编辑: 我只是想补充说我安装了Windows Vista SP2没有任何问题。


47
2018-06-28 21:10



我已经禁用了我的页面文件,并且在我真正使用内存的那一刻后悔了。所以要开心,你有比你需要更多的记忆。 - Sam
+1,“我也是”:-)。相同的故事 - 8GB内存,Vista x64,运行Visual Studio与ReSharper + SQL Server Express + IIS + 1-2虚拟机(每个具有1500MB内存)+一堆实用程序 - 从未出现过问题。 - Milan Gardian
我喜欢它,每个人都在说“微软花了很多时间思考这个问题,所以不要乱用它”,但完全忽略了现实世界的经验。我从XP开始就禁用了分页文件而且从不后悔。就像电脑注入了令人敬畏的电脑一样。 - AngryHacker
在iSCSI引导的服务器上禁用分页是非常标准的做法,通过SAN进行分页会很慢。你只需要观察你的内存使用情况,并远离最大值。 - Chris S
-1我在这个答案中没有看到任何参考文献。实际上我的系统崩溃是因为页面文件被禁用而我的分页池内存已满。然而,我的物理内存使用量仅为2 GB ...... - Tom Wijsman


在进行页面文件调整之前,您可能需要进行一些测量以了解自己的系统如何使用内存。或者(如果您仍想进行调整),之前 之后 说调整。

Perfmon是这个的工具;  任务管理器。一个关键的柜台是 内存 - 页面输入/秒。这将具体图表  页面错误,即在进程可以继续之前需要从磁盘读取的页面错误。 柔软的 页面错误(默认情况下绘制的大部分项目) 页面错误/秒 计数器;我建议忽略那个计数器!)不是真正的问题;它们只是显示正常从RAM读取的项目。

Perfmon图http://g.imagehost.org/0383/perfmon-paging.png

上面是一个系统的例子,没有后顾之忧。偶尔会出现硬故障 - 这些都是无法避免的,因为硬盘总是大于RAM。但该图基本上是零平面。因此操作系统很少从后备存储中进行分页。

如果你看到了 内存 - 页面输入/秒 图形比这个图形更加苛刻,正确的响应是降低内存利用率(运行较少的程序)或添加RAM。更改页面文件设置不会改变系统需要的内存大于实际内存的事实。

一个方便的附加计数器监视器 PhysicalDisk - 平均队列长度 (所有实例)。这将显示您的更改对磁盘使用量本身的影响程度。一个表现良好的系统将显示该计数器平均值为4或更低 每个主轴


34
2018-06-10 21:52



喘气 有人甚至不顾一切地展示如何检查交换文件。真棒。 - cgp
图片的死链接。需要修复。 - kinokijuf
是, “ImageHost.org已关闭” - Peter Mortensen


多年来我一直没有页面文件运行我的8 GB Vista x64盒子,没有任何问题。

当我真正使用我的记忆时出现了问题!

三周前,我开始在Photoshop中编辑非常大的图像文件(~2 GB)。一个编辑会话消耗了我所有的记忆。问题: 我无法保存我的工作,因为Photoshop需要更多内存来保存文件!

因为它本身就是Photoshop本身,它耗尽了所有的记忆,我甚至无法通过关闭程序来释放记忆(好吧,我做了,但它太少了,无法帮助)。

我所能做的只是废弃我的工作,启用我的页面文件并重做我的所有工作 - 由于这个原因我丢失了很多工作,并且不建议禁用您的页面文件。

是的,它在大多数时候都会很好用。但它打破它的那一刻可能会很痛苦。


34
2017-07-22 09:43



你应该经常保存:D,以尽量减少损失 - alexandrul
很容易说,保存时需要几分钟,这是一个皮塔饼。 - Sam
如果你使用更复杂的软件,我们都会很高兴,但有时候,“崩溃”最终会与“哦废话,我暂时没有保存”对齐。 - Damon


虽然这里的答案很好地涵盖了这个主题,但我仍然建议阅读:

http://blogs.technet.com/markrussinovich/archive/2008/11/17/3155406.aspx

他几乎在最后谈到PF大小:

有些人认为没有分页文件会带来更好的性能,但一般来说,拥有分页文件意味着Windows可以在修改后的列表上写入页面(代表未被主动访问但尚未保存到磁盘的页面)分页文件,从而使该内存可用于更有用的目的(进程或文件缓存)。因此,虽然可能有一些工作负载在没有分页文件的情况下表现更好,但通常有一个工作负载意味着系统可以使用更多可用内存(更别提Windows在没有大小的分页文件的情况下无法编写内核故障转储足以容纳他们)。

我非常喜欢马克的文章。


19
2018-06-29 00:42



+1,对于Mark Russinovich链接来说很简单。值得指出的是,win7甚至会弹出一个通知,指出如果禁用交换文件,您将无法“追踪系统问题”。 - cgp


我能想到的最好的答案是,在正常负载下你可能不会耗尽8 GB,但这是你遇到麻烦的意外负载。

使用页面文件,一旦开始点击页面,系统将至少缓慢运行。但是如果删除页面文件,它就会死掉(据我所知)。

此外,8 GB现在似乎很多,但几年之后,它可能被认为是许多软件的最小内存量。

无论哪种方式 - 我建议保留至少一个小页面文件;但如果我不在基地,请其他人纠正我。


13
2018-06-10 19:56



我会走得更远 不 限制页面文件。那不是真正改善的事情。让窗户做到......他们知道的更好。 - Michael Haren
刚尝试使用Media Player Classic加载6GB mkv文件。它让我脱离了我的RAM和页面文件内存。很快回到VLC。 +“你永远不会知道你会遇到什么”。最终MPC崩溃了,我的RAM恢复了,但是如果你在内存泄漏的第三方软件中得到一个DLL怎么办?如果你有一些磁盘支持的内存来帮助你,你会有更多的里程。 - mpbloch
再加上一点,如果你不得不生活在实际使用它的恐惧中,有8GB的好处是什么?! - David Schwartz
“保留至少一个小页面文件”对我来说似乎有点奇怪,因为不清楚Windows将如何使用它。例如,它可能会比提供更多空间的更大页面文件更糟糕 - 我猜,但只要没有可靠的源代码,我会认为小页面文件建议可能有害,并推荐标准做法。 - mafu


你没有提到它是否是64位版本的Windows,但我想是的。

页面文件提供了许多功能,包括生成内存转储 蓝屏 (蓝屏死机)。

如果您没有页面文件,如果内存不足,Windows将无法分页到磁盘。您可能认为8 GB不会达到该限制。但是随着时间的推移,你可能会有糟糕的程序泄漏内存

我认为如果没有页面文件,它不会让你进入休眠/待机状态(但我还没试过)。

Windows 7/2008 / Vista不会更改页面文件的使用。

我看到Mark Russinovich(微软院士)解释说,没有页面文件而不是页面文件(即使有足够的RAM),Windows可能会更慢。但我找不到根本原因。

你没有磁盘空间吗?如果是BSoD,我会保留至少1 GB的内核转储。


6
2018-06-10 19:59



你是说这个吗? blogs.technet.com/markrussinovich/archive/2008/11/17/...  如果是这样,他的建议是蹩脚的。他说页面文件会提高性能,因为如果会给其他应用程序更多的ram。没错,如果你没有太多的公羊。但如果你有足够的东西,页面文件永远不会更快。 - Pyrolistical
这是与Salomon的系统内部视频。它与内核页面池有关 - Mathieu Chateau
当你不知道时,你不能发布“答案”:我有一台带有4GB内存的Windows Vista 32位笔记本电脑,我一直把它置于待机状态。您是否至少可以限制自己为实际知道答案的问题提供答案? - PP.
PP试图说的是:休眠过程使用与交换文件分开的文件,因此在这种情况下这不是问题。 - mafu
Pyrolistical,你看到这个可能为时已晚,但转过身来并将其作为一个问题:如果页面文件减慢了什么?一个很好的答案将证明你的理论。 - quux


我禁用了我的页面文件(在x86笔记本电脑上为8 GB),即使有2500 MB免费也有两个问题:

  1. 尝试激活WCF服务时出现ASP.NET错误:内存门检查失败,因为可用内存(399,556,608字节)小于总内存的5%。因此,该服务将无法用于传入请求。要解决此问题,请减少计算机上的负载或调整serviceHostingEnvironment配置元素上的minFreeMemoryPercentageToActivateService的值。

    3.7 GB如何低于8 GB的5%我永远不会知道!

  2. 入门 关闭程序以防止信息丢失 对话框:当我使用75%的RAM时,我会看到一个对话框,告诉我关闭程序。 您可以通过注册表修改禁用此功能(要么 或者 通过禁用“诊断策略服务”)。

最后我决定重新开启它。简单而简单的Windows从未被设计为在没有页面文件的情况下使用。它被优化为使用分页运行,而不是没有。如果您计划使用超过75%的内存并且不想弄乱您的注册表 - 那么它可能不适合您。


5
2017-09-18 09:21



ASP.NET错误可能是32位问题,但如果您提供的数字是正确的(399556608 = 399,556,608),那么错误是正确的 - 约400MB约为8GB的5%。 - fencepost
@fencepost好抓 - 必须因为某些原因读取为kb。奇怪的 - Simon


唯一可以告诉您服务器或工作站是否“需要”页面文件的人是 ,仔细使用性能监视器或这些天所谓的。您正在运行哪些应用程序,它们看到了什么用途,以及哪些应用程序最高 可能 您可能会看到内存使用情况?

为了在较小的硬盘上节省一点钱,稳定性值得妥协吗?

当您下载一个非常大的补丁(比如一个Service Pack)时会发生什么。如果安装程序服务决定它需要的内存比你想要解压缩补丁的内存多,那么呢?如果您的病毒扫描程序(正确地)决定扫描这个非常大的包,那么在解压缩和扫描这个补丁文件时它需要什么样的内存使用 - 我希望补丁存档文件本身不包含任何存档,因为这绝对是 谋杀 记忆使用数字。

我是什么 能够 告诉你,删除你的页面文件的伤害概率远高于帮助。我不明白为什么你不会有一个 - 我敢肯定可能会有一些专业案例,我在那个问题上错了,但这是另一个领域。


5
2018-06-10 20:16





您可用的总内存是您的页面文件+实际内存。

关键问题是您预计所有应用程序的总内存使用量和操作系统使用量是否接近8 GB。如果您的平均内存使用量为2 GB,并且您的最大内存使用量仅为4 GB,则拥有页面文件毫无意义。如果你的最大内存使用量接近6-7 Gb或更高,那么最好有一个页面文件。

PS:不要忘记将来增长!


2
2018-06-26 01:59



你不是指可能有总内存吗?大多数寻呼系统保留快照页面副本。 - Jé Queue
请注意,还有分页池内存,即使您只使用2 GB的物理内存也可以耗尽。 - Tom Wijsman