删除8GB RAM机器上的页面文件有什么好处?

我正在运行Windows 7双核心,x64 AMD 8GB内存

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

将它删除有助于或伤害性能?

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

Windows 7与Windows 2008对页面文件有什么不同?

TL; DR版本:让Windows处理您的内存/页面文件设置。 MS的人花费了更多的时间思考这些问题,而不是我们大多数的系统pipe理员。

许多人似乎认为Windows会按需将数据推入页面文件。 EG:有些东西需要大量的内存,而且没有足够的内存来满足需求,所以Windows在这个最后时刻开始疯狂地将数据从RAM写入磁盘,以便为新的需求释放内存。

这是不正确的。 还有更多的内幕正在进行之中。 一般来说,Windows维护一个后备存储 ,这意味着它想要在磁盘上查看内存中的所有内容。 现在,当有东西出现,需要大量内存的时候,Windows可以很快地清除内存,因为这些数据已经在磁盘上了,如果被调用的话,准备好回到内存中。 所以可以说,页面文件中的大部分内容也在 RAM中; 数据被抢先放置在页面文件中以加速新的内存分配需求。

描述所涉及的具体机制将会花费很多页面(参见Windows内部的第7章,并注意到即将推出一个新版本 ),但是有一些好的东西需要注意。 首先,RAM中的大部分内容已经在磁盘上 – 例如从可执行文件或DLL中获取的程序代码。 所以这不需要写入页面文件; Windows可以简单地跟踪位最初从哪里获取。 其次,Windows会跟踪RAM中哪些数据是最常用的,因此从RAM中清除那些没有被访问的时间最长的数据。

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

当然有许多资源/利用情况。 你有一个情况下不会有删除页面文件的不利影响,但这些是less数。 在大多数情况下,删除或减less页面文件将导致峰值资源利用情况下的性能下降。

一些参考:

  • Windows内部书籍(第4版和第5版 )
  • 推动Windows的限制:物理内存
  • 推动Windows的限制:虚拟内存
  • 在Windows Vista内核中:第1部分
  • 在Windows Vista内核中:第2部分
  • 在Windows Vista内核中:第3部分
  • 了解虚拟内存
  • RAM,虚拟内存,页面文件和所有的东西 (这里是一个更长的版本 )
  • 内存不足综合症,或:为什么我仍然需要一个页面文件?

dmo注意到最近Eric Lippert的一篇文章 ,它帮助理解虚拟记忆(尽pipe与这个问题关系不大)。 我把它放在这里,因为我怀疑有些人不会向下滚动到其他答案 – 但如果你觉得它有价值,你欠dmo一票,所以使用链接到达那里!

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

正如我从其他答案我看到,我是唯一一个禁用页面文件,从来没有后悔。 伟大的:-)

无论是在家里和工作,我有Vista的64位与8 GB的RAM。 两者都禁用页面文件。 在工作中,对于我来说,几乎没有Visual Studio 2008的实例,Windows XP的虚拟PC,SQL Server的两个实例和带有许多标签的Internet Explorer 8一起工作。 我很less达到80%的内存。

我也每天使用混合睡眠(睡眠hibernate)没有任何问题。

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

但现在与8 GB我不想回去,并启用页面文件。

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

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

马上:如果你知道你的内存使用情况 – 你可以安全地禁用它。

编辑:我只是想添加,我安装了Windows Vista SP2没有任何问题。

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

Perfmon是这个工具; 不是任务pipe理器。 一个关键的计数器是内存 – 页面input/秒 。 这将专门绘制页面错误,即在进程可以继续之前需要从磁盘读取的页面错误。 页面错误(这是默认页面错误/秒计数器中的大部分项目;我build议忽略该计数器!)不是真正的问题; 他们只是显示正在从RAM读取的项目。

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

以上是一个无忧无虑,记忆明智的例子。 偶尔会出现硬故障 – 这是无法避免的,因为硬盘总是比RAM大。 但是图表基本上是零点。 所以操作系统很less从后台存储分页。

如果你看到的Memory – Pages Input / secgraphics比这个要高得多,那么正确的响应是降低内存利用率(运行较less的程序)或者增加RAM。 更改页面文件设置不会改变系统要求更多内存的事实。

一个方便的附加计数器监视是PhysicalDisk – 平均。 队列长度 (所有实例)。 这将显示您的更改影响磁盘使用本身。 一个行为良好的系统将显示这个计数器平均在每个主轴 4或更less。

我已经运行了我的8GB的Vista x64框没有页面文件多年,没有任何问题。

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

三周前,我开始在Photoshop中编辑真正大的图像文件(〜2GB)。 一个编辑会议吃了我所有的记忆。 问题: 由于PS需要更多内存来保存文件,因此无法保存我的工作!

既然是PS本身,谁都在吃掉所有的记忆,我甚至无法通过closures程序来释放记忆(嗯,我做了,但帮助太less了)。

我所能做的就是放弃我的工作,启用我的页面文件并重做我所有的工作 – 由于这个原因,我失去了很多工作,并且不build议禁用页面文件。

是的,大部分时间都能运行。 但是,现在它打破可能是痛苦的。

虽然这里的答案涵盖了这个话题相当好,我仍然会推荐这个阅读:

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

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

有些人觉得没有分页文件导致更好的性能,但是一般来说,有一个分页文件意味着Windows可以写修改的列表上的页面(代表那些没有被主动访问但没有被保存到磁盘的页面)分页文件,从而使该内存可用于更有用的目的(进程或文件caching)。 因此,虽然可能有一些工作负载在没有分页文件的情况下执行得更好,但通常意味着更多的可用内存可供系统使用(不必介意Windows不能编写内核崩溃转储文件足以容纳他们)。

我真的很喜欢马克的文章。

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

使用页面文件,一旦开始页面,系统将至less缓慢运行。 但是,如果你删除页面文件,它会死(从我所知道的)。

另外8GB现在看起来很多,但是几年之后,它可能被认为是很多软件的最小内存量。

无论哪种方式 – 我会build议保持至less一个小页面文件; 但其他人请纠正我,如果我不在基地。

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

页面文件服务很多,包括在BSoD (死亡蓝屏 )的情况下生成内存转储。

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

我认为它不会让你没有页面文件hibernate/待机(但我没有尝试)。

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

我从Mark Russinovich(Microsoft Fellow)那里得到了一个解释,即解释说,如果没有页面文件,页面文件可能比页面文件慢(甚至是大量的RAM)。 但是我找不到根本原因。

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

唯一可以告诉你,如果你的服务器或工作站“需要”页面文件是 ,小心使用性能监视器或任何它被称为这些天。 你正在运行什么应用程序,他们看到了什么用途,你可能看到的最高内存使用情况是什么?

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

当你下载一个非常大的补丁,比如一个服务包,会发生什么? 如果安装程序服务决定它需要更多的内存比你想解包修补程序,然后呢? 如果您的病毒扫描程序(正确)决定扫描这个非常大的包,那么在解包并扫描此修补程序文件时,需要什么types的内存使用?我希望修补程序归档文件本身不包含任何归档文件,因为这完全是谋杀记忆使用数字。

可以告诉你的是,删除你的页面文件的伤害比帮助更高的可能性。 我看不出有一个原因,为什么你不会有一个 – 我敢肯定,可能会有一些专家的情况下,我错了,但那是一个整个其他领域。

禁用我的页面文件(8GB的x86笔记本电脑),并有2500MB免费的两个问题。

1) 尝试激活WCF服务的ASP.NET错误 :内存门检查失败,因为空闲内存(399556608字节)小于总内存的5%。 因此,该服务将不可用于传入的请求。 要解决此问题,请减less计算机上的负载或调整serviceHostingEnvironmentconfiguration元素上的minFreeMemoryPercentageToActivateService的值。

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

2)获取closures程序,以防止信息丢失对话框:当我的RAM的75%被使用时,我得到一个对话框告诉我closures程序。 您可以通过registry修改来禁用此function (或者禁用“诊断策略服务”)。

最后,我决定把它重新打开。 Windows只是简单而简单,从来没有devise为没有页面文件使用。 它被优化用分页运行,而不是没有。 如果您打算使用超过75%的内存,并且不想混淆registry,那么这可能不适合您。

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

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

PS:不要忘记在未来允许增长!

似乎有很多有限的人对这个问题有一个看法,但实际上从来没有试过在没有页面文件的情况下运行他们的计算机。

几乎没有人尝试过。 更不知道Windows如何处理页面文件。 当物理内存不足时,它不会“充满”。 我敢打赌,你们大多数人甚至不知道你的“免费”内存被用作文件caching!

您可以通过禁用页面文件来获得巨大的性能改进。 你的系统将更容易出现内存不足的错误(你知道你的应用程序在这种情况下如何响应 – 大部分操作系统只是终止应用程序)。 从待机或长时间闲置的启动时间将更加快​​速。

如果微软真的允许你设置一个选项,只有在物理内存不足的情况下才使用页面文件(并且所有的文件缓冲区都被丢弃了),那么我认为从禁用页面文件中得到的好处不大。

这是反透析,但是我们为大约20个用户运行一个Windows Server 2003terminal服务器,并且有10-15个时间login,并且有8GB的RAM。 我们不运行一个页面文件,我们的服务器运行速度比以前更快。 这显然不是解决所有问题的办法,但是我们现在已经跑了两年了,而且没有我知道的问题。