it-swarm.cn

删除8 GB RAM)机器上的页面文件?

我在具有8 GB RAM的双核x64 AMD上运行Windows 7。

我什至需要页面文件吗?

删除它会帮助还是损害性能?

如果这是服务器还是台式机,会有所不同吗?

Windows 7和Windows 2008的页面文件是否有所不同?

213
Jason

TL; DR版本:让Windows处理您的内存/页面文件设置。与我们大多数系统管理员相比,MS的人们在这些问题上花费了很多小时。

许多人似乎认为Windows会根据需要将数据推送到页面文件中。 EG:某物需要大量内存,并且没有足够的RAM来满足需求,因此Windows开始疯狂地将数据从RAM最后一分钟,以便它可以腾出RAM满足新需求。

这是不正确的。引擎盖下还有更多事情要做。一般来说,Windows维护后备存储,这意味着它希望查看磁盘上某处内存中的所有内容。现在,当出现某种情况并需要大量内存时,Windows可以非常快地清除RAM),因为该数据已经)已经在磁盘上,随时可以返回到RAM)。因此可以说,页面文件中的大部分内容是 also 在RAM中;数据是抢先放置在页面文件中,以加快 new 内存分配需求。

描述涉及的特定机制将花费很多页面(请参阅 Windows Internals 的第7章,并注意 新版本 即将面世),但是还有一些不错的东西要注意。首先,RAM)本质上已经存在于磁盘上-从可执行文件或DLL)中获取程序代码。因此,这不是需要写入页面文件; Windows可以简单地跟踪最初从何处获取位。第二,Windows可以跟踪RAM)中最常用的数据,因此从RAM最长的数据没有被访问。

完全删除页面文件可能会导致更多磁盘抖动。想象一个简单的场景,其中某些应用程序启动并需要80%的现有RAM。这将迫使当前的可执行代码超出RAM-甚至可能是OS代码。现在,每当其他应用程序-或OS本身(!!)需要访问该数据时,OS必须分页它们由于没有页面文件充当瞬态数据的后备存储,因此唯一可以分页的是可执行文件和具有内在后备存储的DLL。

当然,有许多资源/利用方案。并非不可能有一种情况,在这种情况下,删除页面文件不会造成不利影响,但这只是少数情况。在大多数情况下,删除或减少页面文件将导致峰值资源利用情况下的性能下降。

一些参考:

注意dmo 最近的 Eric Lippert帖子 有助于理解虚拟内存(尽管与问题的相关性较小)。我将其放在此处是因为我怀疑某些人不会向下滚动到其他答案-但是,如果您发现它有价值,那么您应该欠dmo票,所以请使用 链接 到达那里!

302
quux

埃里克·利珀特(Eric Lippert)最近写了一个 博客条目 描述Windows如何管理内存。简而言之,可以将Windows内存模型视为磁盘存储,其中RAM充当性能增强缓存)。

80
dmo

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

无论是在家里还是在办公室,我都具有64位Vista和8 GB RAM。两者都禁用了页面文件。在工作中,拥有几个Visual Studio 2008实例,带有Windows XP的Virtual PC,两个SQL Server实例和Internet Explorer 8以及许多选项卡可以协同工作对我来说并不是什么稀奇事。我很少达到80%的内存。

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

当我使用Windows XP且具有2 GB的RAM)时,我开始尝试使用它,我确实看到了区别。经典示例是当控制面板中的图标停止显示时本身一个接一个,但是一次又一次。Firefox/ Thunderbird的启动时间也大大增加。单击某些东西后,一切立即开始工作。不幸的是2 GB对于我的应用程序使用(Visual Studio 2008,Virtual PC和SQL Server)太小),因此我将其重新启用。

但是现在有了8 GB,我再也不想返回启用页面文件了。

对于那些在说极端情况的人,请从我的Windows XP=倍)中获取。
当您尝试通过SQL查询在Excel中加载大型数据透视表时,Excel 2000会相当快地增加其内存使用量。
禁用了页面文件后,请稍等片刻,然后Excel将崩溃,并且系统将清除所有内存。
启用页面文件后-等待一段时间,当您发现某处出现问题时,几乎无法对系统执行任何操作。您的HDD像地狱一样工作,即使您设法以某种方式运行了任务管理器(经过几分钟的等待)并杀死Excel.exe,您必须等待几分钟左右,直到系统从页面文件中加载所有内容。
正如我稍后看到的,Excel 2003处理相同的数据透视表时页面文件被禁用没有任何问题-因此它不是“数据集太大”。

因此,我认为,禁用的页面文件有时甚至可以保护您免受编写不良的应用程序的侵害。

简短地说:如果您知道自己的内存使用情况,则可以安全地禁用它。

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

48
SeeR

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

Perfmon是实现此目的的工具; not任务管理器。关键计数器是内存-页数输入/秒。这将专门绘制页面错误,这些错误需要在继续处理之前从磁盘读取。 Soft页面错误(默认情况下显示的大多数项目Page Faults/sec计数器;我建议忽略该计数器!)并不是真正的问题;它们只是显示通常从RAM.

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

上面是一个在内存方面无后顾之忧的系统示例。偶尔会出现尖峰的硬故障-由于硬盘总是大于RAM,因此无法避免这些故障。但是,该图基本为零。因此,操作系统很少从后备存储中调入。

如果看到一张[Memory-Pages Input/sec图,它比这张图更加精巧,那么正确的响应是降低内存利用率(运行较少的程序)或增加RAM。更改页面文件设置不会改变以下事实,即系统对内存的需求超出了实际需求。

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

35
quux

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

当我真正使用内存时,确实出现了问题!

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

而且由于是Photoshop本身占用了所有内存,因此我什至无法通过关闭程序来释放内存(嗯,我确实做到了,但这太少了,无法提供帮助)。

我所能做的就是取消我的工作,启用我的页面文件并重做所有工作-由于此,我失去了很多工作,因此不建议禁用您的页面文件。

是的,它在大多数情况下都能正常工作。但是一旦中断,可能会很痛苦。

34
Sam

尽管此处的答案很好地涵盖了该主题,但我仍然建议您阅读以下内容:

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

他几乎在最后谈到了PF尺寸:

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

我真的很喜欢Mark的文章。

19
Radim Cernej

我能想到的最佳答案是,在正常负载下您可能不会用完8GB内存,但这是意外负载,您会遇到麻烦。

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

同样,现在8 GB似乎已经很多了,但是几年下来,它可能被认为是许多软件的最小内存量。

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

13
Dave Drager

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

该页面文件提供了许多功能,包括在 BSoD (死亡蓝屏)的情况下生成内存转储。

如果没有页面文件,则如果没有足够的内存,Windows将无法将页面调出到磁盘。您可能认为8 GB不会达到该限制。但是随着时间的流逝,您可能会遇到不良的程序来泄漏内存。

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

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

我看到Mark Russinovich(Microsoft研究员)的一种解释,该解释解释说,没有页面文件的Windows可能比没有页面文件的Windows慢(即使有足够的RAM)。但我找不到根本原因。

您的磁盘空间不足吗?对于BSoD,我将至少保留1 GB的空间以进行内核转储。

6
Mathieu Chateau

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

为了在较小的硬盘上节省少量资金,稳定性是否值得妥协?

如果下载一个非常大的补丁(例如Service Pack),会发生什么情况。如果安装程序服务确定所需的内存比解压缩补丁所需的内存多,那么该怎么办?如果您的病毒扫描程序(正确)决定扫描此超大文件包,则在解压缩并扫描此补丁文件时将需要使用哪种内存-我希望补丁存档文件本身不包含任何存档,因为那绝对谋杀内存使用数字。

可以告诉您,删除页面文件造成伤害的可能性比提供帮助高得多。我看不出您为什么没有这样的原因-我敢肯定,可能会有一些专家案例在那方面我弄错了,但这是另外一个方面。

5
Rob Moir

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

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

    3.7 GB不足8 GB的5%,我永远不会知道!

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

最后,我决定再次将其重新打开。单纯而简单的Windows从来没有设计成没有页面文件就可以使用。它经过优化,可以与分页一起运行,而不是没有。如果您打算使用超过75%的内存,并且不想弄乱注册表,那么它可能不适合您。

5
Simon

似乎很多受严格限制的人对此主题都有意见,但从未真正尝试过在没有页面文件的情况下运行计算机。

几乎没有人尝试过。似乎更不知道Windows如何处理页面文件。当物理RAM用完时,它不会“只是”填满。我敢打赌你们大多数人甚至都不知道您的“免费” RAM)被用作文件缓存!

通过禁用页面文件,可以大大提高性能。您的系统将更容易出现内存不足错误(并且您知道您的应用程序在那种情况下会如何响应-大多数情况下,操作系统只是终止应用程序)。从待机状态或长时间的空闲状态开始的启动时间将更加迅速。

如果Microsoft实际允许您设置一个选项,仅当物理RAM(并且所有文件缓冲区都已被丢弃))用完时,才使用页面文件。页面文件。

2
PP.

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

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

PS:别忘了允许将来增长!

2
John Lim