给定足够的物理内存,是否有理由不禁用Windows页面文件?


35

禁用Windows页面文件的问题已经讨论了很多,例如,在此处此处此处。人们继续支持这样的答案:“ 即使有足够的RAM也不应禁用页面文件 ”,但是我还没有看到给出任何具体,可验证的建议的理由。据我所知,如果您永远不需要读取页面文件(因为您有足够的RAM),则由于Windows抢先写入它,因此启用它后性能可能只会更差。充其量,性能是相同的。我看不出如何编写不需要读取的数据可以改善它。

所以我的问题是:

假设我有足够的物理RAM来执行所有操作,是否有任何理由不应该禁用页面文件?

假设Windows的版本是Windows XP x64 SP2或Windows Server 2003 x64 SP2(相同)。如果Windows Server 2008 x64有所不同,我也很想听听答案。我正在从好的来源中寻找具体的客观原因,而不仅仅是意见。诸如“这是在有或没有页面文件的情况下进行的基准测试,即使有足够的RAM,页面文件的结果也更好”或“根据此MS KB文章,如果禁用页面文件,则会出现问题X”。

到目前为止,我所看到的唯一提及的原因是:

  • 即使您认为有足够的RAM,也可能会用完。好的,但是出于这个问题的目的,让我认为我已经足够了。也许我只读过我的电子邮件,并且我有16GB的RAM。或128GB。或1TB。或其他方式-但是100%的时间足以满足我100%的工作。另一种思考的方式是:如果我有x MB的物理RAM和y MB的页文件,并且在那种配置下我从未用完RAM,那么在性能方面,使用x + y MB的物理RAM而没有更好的性能,我会更好吗?页面文件?
  • Windows被“用来”拥有一个分页文件,并且它可能无法可靠地工作(来自了解RAM对整体系统性能的影响)这相当模糊,我很难相信,因为MS提供了禁用该分页文件的选项。
  • Windows知道它比您做得更好。不-它不知道我不会运行更多程序或加载更多数据,但是我可以。

14
在阳光下几乎所有与技术相关的论坛中,这个主题都曾被讨论过。结论:做还是不做。如果它对您有用,那就太好了,继续您的生活。如果不是这样,那么只需单击几下鼠标就可以虚拟内存。除此之外,我们在这里浪费时间。最好讨论最好的浏览器或防病毒软件!:)(顺便说一句,推荐您阅读该链接)

1
@Molly,您的意思是,您的链接?:)
EMP

3
@Molly:如果您认为这是浪费时间,那么请不要评论,而忽略并继续前进。为什么要批评这个问题?您可能不在乎,但其他人则在乎。
马斯

2
我对此感到无奈。我最近从4gb的ddr2变为8gb的ddr3。一个工作的人说“请确保您的交换大小为8-12GB”。为什么?我正在做以前做过的同样的事情,现在,我的体力检查是我的两倍。为什么我需要更多交换空间?
LoveMeSomeCode 2011年

2
不是主观的-请仔细阅读问题,尤其是假设。我要求的是可靠来源而不是意见的具体原因。
EMP

Answers:


14

这是微优化。问题的关键是,我们没有理由做到这一点,在任何类似的正常运行。如果您的使用方式发生变化,很容易伤害您。

在特殊情况下,这可能是有道理的,例如,如果没有本地可写磁盘。


我同意就保留它。
user10547

Windows甚至可以从不可写磁盘启动吗?
salmomoose

是的,但是您需要进行很多更改才能使其正常工作。如注册表必须是可写的磁盘上,所以你需要把它重定向到一个ramdisk,等...
克里斯托弗

1
当然,有一个禁用交换的原因-主要是Windows交换出应用程序内存,即使物理内存可用。因此,每当您离开计算机一小时后返回计算机时,您都会花费大量时间,而硬盘驱动器会重新填充物理RAM。说没有理由禁用交换文件是绝对可怕的建议。
PP。

您实际上是否注意到禁用页面文件会加快速度?我个人没有,从我所读的内容来看,大多数人没有。正如@Segfault上尉所说,这是一个微观优化。
Sasha Chedygov

8

即使您可以将所有内容都放入RAM,也有很多理由保留页面文件。

SF的答案有125票赞成票,并链接了许多可靠的文章。看看这个:

https://serverfault.com/questions/23621/any-benefit-or-detriment-from-removing-a-pagefile-on-an-8gb-ram-machine/23684#23684


3
尽管所有这些都可能是正确的,并且我最肯定地同意,但是我很乐意提供一个链接,Microsoft(花了很多时间思考这些问题的人:)明确建议禁用虚拟内存(我的eee pc上没有页面文件将近2年,早在MS发布这些准则之前)。话虽如此,在具有现代硬盘驱动器和巨型缓存的台式计算机上,它没有任何区别。但是,每个人都要自己做。链接(PDF,第10页):download.microsoft.com/download/2/0/a/...

3
如果您的eee是2岁,则其中装有第一代SSD。禁用页面文件可以延长SSD的使用寿命,但这显然不是标准情况。
MDMarra

我没有说过标准程序,不是吗?:)并且我不建议您禁用pagefile作为“良好的计算习惯”,但是,如果有人想要这样做,那就让他们来。尽管会发生所有“坏事”,但事实证明,它可以一次又一次地正常运行。如果它不起作用,那么只需单击几下就可以创建一个全新的页面文件。如果您的硬盘驱动器/ ssd速度较慢,则可以使用某些程序将系统内存分配为硬盘驱动器缓存,以加快分页速度。

我已经阅读了该答案(实际上它与我的问题相关),这正是我发布此问题的原因。
EMP

8

从此链接:

注意:Microsoft强烈建议您不要禁用或删除页面文件。

要在Windows XP中禁用页面文件的使用,您至少应有768MB的RAM。

这是Jeff Atwood的看法的链接


注意:我认为这个数字太低了,在禁用页面文件之前,您应该有大量的内存,并且我确定您仍然会遇到各种问题。
兰斯·罗伯茨,

不过,他们没有给出建议的理由-我怀疑这仅仅是因为大多数用户不知道他们是否有足够的RAM,所以这是一个很好的“经验法则”。至于分配它们不使用的内存的应用程序,该内存应“保留”,而不是“已提交”,因此它仅占用虚拟地址空间。如果他们确实投入了大量内存,那么他们不需要页面文件并不能真正拯救我。
EMP

杰夫博客文章的链接似乎已断开。
艾萨克(Isaac)

1
@Isaac,固定..
Lance Roberts

6

我一直在运行Windows XP SP3 Professional 32位笔记本电脑,该笔记本电脑具有4GB的内存(Windows“正式”只能识别其中的3GB),已经有一年没有页面文件了。我圈子中的人也一直在吓me我,我不应该这样做。

我使用非常占用内存的应用程序-在任何给定的时间点,我至少有两个虚拟机(vmware),它们配置为在RAM中100%运行,我至少有一个Visual Studio实例(其中有很多安装的附加组件),SQL Server和一些“小型”应用程序,例如电子邮件,IM,IE等。

除此之外,我还拥有一个永久的256 MB Ramdisk。偶尔,我会使用Adobe Photoshop,而其余的应用程序都在运行。我也玩过几款游戏,包括Quake3,Neverwinter Nights和Oblivion。

而且我没有任何问题。

BlueNovember注意:我们的朋友出于客观原因非常亲切地询问。因此,诸如“我怀疑...”之类的陈述是不必要的。请在发帖之前先找出答案!休眠与分页无关。它使用一个名为hiberfil.sys的单独文件,您无需页面文件即可进入休眠状态。

PS:对不起,老兄,我拒绝返回到“正常”配置,以便我可以实际测试该设置的速度,但是仅需查看硬盘活动导致闪烁的情况就少得多了。我会为此禁用页面文件,如果没有其他原因,因为当HDD LED指示灯不持续闪烁时,至少您的计算机“感觉”更快。

唯一的理由不禁用页面文件是如果你正在使用性能监视器(PerfMon),因为这取决于页面文件和需要最少2 MB的页面文件,否则计数器将丢失以下对象:高速缓存,内存,对象,处理器和系统。


1
您将始终会发现有人倾向于告诉别人应该如何操作计算机,从而加剧了恐惧的文化(“坏东西”会在Surviv2012.com上发生)

1
h 好一个 您会注意到,我已尽力避免这种情况发生。;-)我只是在描述自己在做什么,而将分析和接受作为读者的自由选择。但是我确实想尝试消除这个神话,如果禁用页面文件,您的PC会被炸死。

我一直在使用运行32位Vista和4GB RAM的笔记本电脑(尽管自MS-DOS诞生以来,微软公司就知道如何处理比位数更多的内存,但微软还是决定使其他物理RAM无法使用。系统)而没有页面文件。没问题。有时,Firefox,MSN Messager和一些其他应用程序的两个单独实例将达到内存上限,在此之后应用程序将崩溃并消失。我想重新打开页面文件的唯一原因是侠盗猎车手(记忆猪和残酷的软件嘉豪)。
PP。

4

我相信,如果您没有页面文件,则在发生BSOD的情况下,Windows将无法编写小型转储。这意味着您将无法使用适当的工具来分析问题。

如果您没有遇到BSOD,这可能不会打扰您,您当然可以足够快地重新创建页面文件,但是为什么不准备呢?


这个..任何支持文章的真实性如何?
Pacerier 2013年

4

我发现的最好原因是该页面文件允许Windows使用更多的物理RAM进行磁盘缓存,这可能比很少使用的内存页面更好。马克·鲁西诺维奇(Mark Russinovich)上有一篇很棒的文章,《推动Windows的极限:虚拟内存》,其中说:

有人认为没有分页文件会带来更好的性能,但总的来说,拥有分页文件意味着Windows可以在修改后的列表中写入页面(这些页面代表未被主动访问但尚未保存到磁盘的页面)。分页文件,从而使该内存可用于更多有用的目的(进程或文件缓存)。因此,尽管有些工作负载在没有分页文件的情况下表现更好,但总的来说,只有一个工作负载才意味着系统可以使用更多可用的内存(不要介意,如果没有大尺寸的分页文件,Windows将无法编写内核崩溃转储足以容纳它们)。


3

我正在运行具有4GB(可用3.5GB)RAM的Windows XP。我需要运行Visual Studio 2008,这需要大量内存。我经常打开3到4个实例,每个实例占用500MB或更多的内存。

我对此非常恼火,因为每当我需要快速关闭所有Visual Studio实例时,Windows都会花很长时间来关闭实例。花了3分钟或更长时间。我意识到发生的事情是,即使有足够的可用内存,Visual Studio实例也已从RAM分页到页面文件中。关闭应用程序时,它将所有分页的数据加载回RAM,然后将其关闭。本质上,它将在关闭实例之前将2GB的数据从磁盘复制到内存中。

禁用分页后,在关闭多个Visual Studio实例时,我注意到了巨大的性能提升。它将占用100%的CPU几秒钟,然后消失。现在可以在一分钟之内关闭Windows,而不是几分钟。

但是,我没有注意到启动应用程序时性能有任何提高,这是有道理的,因为启动时仍必须从磁盘读取数据。另外,我认为禁用分页功能通常比较简单。

另外,由于内存不足,我一年只遇到几次崩溃程序。通常,如果我打开太多程序,或者某个程序发疯并开始疯狂分配内存。

总而言之,我对禁用分页感到非常满意。Windows中的内存管理非常糟糕。对于那些喜欢修改内存设置并且知道可能出现的问题的人,我建议您这样做。


对于Visual Studio用户来说,这是最好的答案,如果没有分页文件,这会更好。
79E09796 2013年

我为自己做。将8 GB的Ram放入PC并禁用页面文件。现在,当我运行VS时,我的Windows使用3.5+ GB或RAM,但运行得非常出色:)
Anirudha Gupta 2014年

2

与流行观点相反,页面文件不仅是廉价的,而且是物理内存的替代品。其目的是为了充分利用您的RAM。

即使有4GB的RAM,您可能也几乎没有足够的内存来存储所有内容。任务管理器中没有任何内容可以揭示这一点。知道了这一点,Windows设计人员创建了一个系统,在该系统中,仅在需要时将可执行代码带入内存,然后保留尽可能长的时间。如果系统发现使用的内存有更好的用途,它将被重新分配。Microsoft从1993年发布NT3.1开始就使用此系统。自1960年代以来,该系统已在大型系统中定期使用。

该系统适用于大多数形式的可执行代码。但是,必须先将修改后的数据写入页面文件的某个位置,然后才能重新分配所使用的内存。页面文件通常不用于存储代码,仅用于存储数据。能够分页代码和数据使系统在必要时灵活地分页。禁用页面文件意味着只能重新分配用于代码存储的内存。所有修改过的数据,即使是很长时间没有访问并且可能不再需要的数据,都必须永久保留在RAM中。但是分页代码将像以前一样继续。缺少页面文件或页面文件太小会导致系统失衡,并迫使Windows以次优的方式页面。这通常会损害性能。


1
您的第一句话听起来很有希望,但是答案的其余部分仍然是“您认为您有足够的RAM,但您没有”的说法。我认为您基本上要说的是,在确定我需要多少RAM时,我并没有考虑代码,仅考虑了数据。通常,这是一个有效的观点,但不能回答这个问题。如果我有x MB的物理RAM和y MB的页面文件 ,请参阅开头部分另外,我不知道缺少页面文件如何导致Windows进入页面。
EMP 2010年

1
您刚刚指出该系统自1993年以来就已使用。您是否知道与现在相比有多少可用内存?我们说的是2-4MB与2-4GB,即增加了1000倍。同时,硬盘尚未加速1000倍。因此,从RAM到磁盘分页200MB,然后再分页,这确实非常昂贵!分页200KB在1993年比现在分页200MB便宜得多。
玛斯

@Mas:现在有SSD,并且有足够的内存来关闭分页(如果您确定从未填满)。
塔玛拉·威斯曼

1

如果您的ram最大化了一个或多个请求内存的程序,则可能会突然崩溃。

这种风险将超过您可能获得的任何性能提升。


就是说,如果您像问题所表明的那样自信,那么应该不会有太大问题。我还怀疑没有页面文件集会阻止您进入休眠状态。
RJFalconer

很好-它不会最大化。我们在这里假设我有足够的RAM。顺便说一句,除非内存太少以致操作系统本身无法容纳Windows,否则我认为Windows不会蓝屏崩溃。我从来没有实际见过这种情况在实践中发生,但是,是的,我想如果您尝试在16MB的RAM上运行XP的话,可能会。
EMP

是的,您不会蓝屏,您只会遇到某种内存不足错误。
鲑鱼

1

我的建议是保留页面文件,但在系统磁盘上手动将其固定为较小的大小,例如128MB。

原因是很实用的:Windows确实希望有一个交换文件,并且如果找不到一个交换文件,通常会创建一个临时的自动管理的文件,从而使禁用它的便利性丧失了。

而且,它会在某些操作(例如BSODing,性能计数器,挂起/恢复/休眠)中静默地失败或出现异常,并以某种方式损害系统稳定性。所有这些都是基于我的经验,而这些都只是一个很小的页面文件。

请注意,交换文件很可能会在执行的前几分钟内被填充,在大多数情况下,再也不会被触摸,因此您不会遭受通常的磁盘访问惩罚交换文件。您可能会在会话中很快收到“内存不足”警报,您可以放心地忽略它(是的,交换已满,怎么办?)

(我也非常不喜欢superfetch,而是将内存留给缓存效果使用)


“(我也非常不喜欢超取,而宁愿将内存留给缓存效果使用)” 这毫无意义。SuperFetch是一个缓存。
Jamie Hanrahan

1

没有提到的一个答案是Windows使用页面文件存储故障转储。使计算机蓝屏的功能将故障转储直接写到包含页面文件的磁盘上的扇区上(绕过Windows目前无法信任的文件系统驱动程序)。

没有页面文件,您将无法获取故障转储信息。另外,如果您不使用该页面文件,也不会对您造成伤害,因此在非常有限的情况下,没有理由将其关闭。


0

请考虑一下SuperFetch用cache加载剩余的内存,这很清楚为什么我们不应该禁用页面文件。串行任务(因为多任务处理很糟糕)和缓存的应用程序启动确实很有用,因此以分页为代价让SuperFetch工作非常好。


我不希望Windows决定我可能需要的东西。我不介意等待几秒钟来加载一些东西。我讨厌的是,当我使某个应用程序失去焦点一段时间后再执行其他操作,然后又使该应用程序重新处于焦点状态时,我必须等待Windows将应用程序从磁盘加载回内存中。这对于使用大量RAM的应用程序非常明显。我发现此行为在Windows 7中得到了改善。
马斯

@Mas:这是正常行为,如果不存在SuperFetch,这将变得无关紧要。而且您仍然可以决定禁用SuperFetch,但这不会加快将非活动应用程序加载回内存的速度。如果非常明显,您确定磁盘仍处于良好状态吗?
Tamara Wijsman

我的意思是,我宁愿准备好要在内存中使用的应用程序,也不愿将它们换成Super-Fetch认为可能需要的东西。由于经常运行Visual Studio的多个实例,因此将这些实例重新加载回内存可能要花费一些时间。
玛斯

@Mas:您描述的行为不是我在几台计算机上看到的,SuperFetch并没有执行您描述的行为。如有关SuperFetch的编码恐怖文章中所述,“空缓存存储器被浪费了”。此外,由于您可以在一个解决方案中的多个项目中拥有多个文件,因此无需运行Visual Studio的多个实例。如果您正在使用多个解决方案,则可能需要考虑更改项目层次结构,因为这不是推荐的工作方式。
塔玛拉·威斯曼


0

如果您的问题是:

假设我有足够的物理内存来完成所有工作,并且

  • 我只做过一些固定的小任务,这些任务在本地访问时不会占用大量文件

  • 并且,当所有这些任务与可能运行的最大文件/数据同时运行时,以及与Windows系统进程一起运行时,它的RAM小于安装的RAM

  • 而且环境只会偶尔有新的或意外的本地文件,并且访问它们的速度并不重要

有什么原因我不应该禁用页面文件吗?

而您说的是,那么就可以了。

嵌入式环境可能是最有可能应用的环境,例如收银机OS安装。


0

简单的答案是,如果Windows内存不足,它将变得很糟糕。

事情变得非常缓慢。

许多软件包的内存泄漏会慢慢吞噬可用的RAM。

Windows将您的某些RAM用作硬盘驱动器的缓存。

除非您真正拥有更多需要的RAM,否则最终将是一个问题。


-1

页面文件

我运行具有4 GB内存的32位XP(我知道,XP仅能看到3GB,但是它是交错且非常快速的),我想提出两点:

XP只能看到3GB的内存。当我的机器已经拥有该文件时,页面文件的意义是什么?它保留了它永远无法访问的磁盘内存。除非禁用某些RAM。因此,您将来之不易的花费在顶级的美元内存上,却发现XP代替了约会磁盘。

如果您运行的是32位XP,并且具有4GB内存,请尝试以下实验:关闭pagefile。重新启动XP。删除页面文件。运行一些编,Word,Excel,Chrome,IE Ex,看电影,播放音乐或电视。所有人都应该运作良好。重新打开页面文件,这次的大小非常小,例如25 MB。重新启动XP。运行一些编,Word,Excel,Chrome,IE Ex,看电影,播放音乐或电视。您很快会收到一条消息,指出虚拟内存已用完。这证明XP甚至在不需要时也使用页面文件。检查任务管理器的“性能”选项卡(alt ctrl del)。峰值将大大低于总物理内存,那么XP为什么使用页面文件?XP为什么会认为您的内存不足?

页面文件是DOS和Windows 98时代的不合时宜的方法。如果您有足够的内存,请删除它。


4
使用页面文件根本不会禁用RAM。尽管应用程序使用的RAM可能不多(而且大多数32位应用程序也不知道大地址),但它允许Windows将内容缓存到磁盘。如果您使进程处于空闲状态,则会将其写入页面文件,以释放更多内存供您实际使用的进程使用。有时缓存可能是不合适的,但这就是它的理论。我建议您查阅一些技术文档,以了解页面文件的工作方式以及它们的确切功能。
ssube

1
David Read:您在混淆虚拟和物理地址限制。您的32位XP肯定可以寻址超过4 GB的虚拟地址空间。每个进程只有4 GB,但是您可以有许多进程。关于“即使在不需要时XP仍使用页面文件”的分析也存在缺陷。现实情况是XP一直都在使用虚拟寻址,但这并不意味着XP一直都在使用页面文件。页面文件仅允许一次存在更多虚拟地址空间。如果您没有一个,而您却需要它,程序将崩溃。
Jamie Hanrahan 2014年
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.