Jas*_*son 218 windows-server-2008 memory configuration windows-7 pagefile
我在具有 8 GB RAM 的双核 x64 AMD 上运行 Windows 7。
我什至需要一个页面文件吗?
删除它会帮助还是损害性能?
如果这是服务器还是台式机,会有所不同吗?
Windows 7 与 Windows 2008 对页面文件有影响吗?
quu*_*uux 305
TL;DR 版本:让 Windows 处理您的内存/页面文件设置。在MS的人都花了很多更多的时间思考这些问题比我们大多数的系统管理员。
许多人似乎认为 Windows 会按需将数据推送到页面文件中。EG:有些东西需要大量内存,但没有足够的RAM来满足需求,所以Windows在最后一刻开始疯狂地将数据从RAM写入磁盘,以便它可以释放RAM以满足新的需求。
这是不正确的。引擎盖下还有更多事情要做。一般来说,Windows 维护一个后备存储,这意味着它希望查看内存中的所有内容,也可以查看磁盘上某处的内容。现在,当某些事情出现并需要大量内存时,Windows 可以非常快速地清除 RAM,因为该数据已经在磁盘上,随时可以在需要时将其分页回 RAM。所以可以说页面文件中的大部分内容也在内存中;数据被预先放置在页面文件中以加速新的内存分配需求。
描述所涉及的特定机制需要很多页(参见Windows Internals 的第 7 章,并注意新版本将很快可用),但有一些不错的事情需要注意。首先,RAM 中的大部分内容本质上已经存在于磁盘上——例如,从可执行文件或 DLL 中获取的程序代码。所以这不需要写入页面文件;Windows 可以简单地跟踪最初从何处获取位。其次,Windows 会跟踪 RAM 中哪些数据最常使用,从而从 RAM 中清除那些使用时间最长但未被访问的数据。
完全删除页面文件会导致更多的磁盘抖动。想象一个简单的场景,其中一些应用程序启动并需要 80% 的现有 RAM。这将强制当前的可执行代码从 RAM 中取出——甚至可能是操作系统代码。现在,每次其他应用程序 - 或操作系统本身 (!!) 需要访问这些数据时,操作系统必须从磁盘上的后备存储中将它们分页,从而导致大量颠簸。因为没有页面文件作为临时数据的后备存储,唯一可以分页的内容是可执行文件和 DLL,它们具有固有的后备存储。
当然有很多资源/利用场景。删除页面文件不会产生不利影响的情况之一并非不可能,但这些只是少数情况。在大多数情况下,删除或减少页面文件会导致在资源利用率高峰情况下的性能降低。
一些参考:
dmo 注意到最近Eric Lippert 的一篇文章有助于理解虚拟内存(尽管与问题的相关性较小)。我把它放在这里是因为我怀疑有些人不会向下滚动到其他答案 - 但如果你觉得它有价值,你欠dmo一票,所以使用链接到达那里!
小智 49
正如我从其他答案中看到的那样,我是唯一一个禁用页面文件并且从不后悔的人。伟大的 :-)
无论是在家里还是在工作中,我都拥有带有 8 GB RAM 的 64 位 Vista。两者都禁用了页面文件。在工作中,有几个 Visual Studio 2008 实例、带有 Windows XP 的 Virtual PC、2 个 SQL Server 和 Internet Explorer 8 实例以及许多选项卡一起工作,这对我来说并不奇怪。我很少达到 80% 的内存。
我也每天都使用混合睡眠(带睡眠的冬眠),没有任何问题。
当我使用带有 2 GB RAM 的 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 没有任何问题。
quu*_*uux 35
在进行页面文件调整之前,您可能需要进行一些测量以了解您自己的系统如何使用内存。或者(如果您仍想进行调整),在上述调整之前和之后。
Perfmon 是这个工具;不是任务管理器。一个关键计数器是Memory-Pages Input/sec。这将专门绘制硬页面错误,在进程可以继续之前需要从磁盘读取的那些。软页面错误(这是默认页面错误/秒计数器中绘制的大多数项目;我建议忽略该计数器!)并不是真正的问题;它们只是显示正常从 RAM 读取的项目。
性能图 http://g.imagehost.org/0383/perfmon-paging.png
上面是一个没有后顾之忧的系统示例,内存方面。偶尔会出现大量的硬故障 - 这是无法避免的,因为硬盘总是比 RAM 大。但该图在零时基本持平。所以操作系统很少从后备存储调入。
如果您看到的内存 - 页面输入/秒图比这个图更加尖锐,则正确的反应是降低内存利用率(运行更少的程序)或添加 RAM。更改页面文件设置不会改变系统需要比实际内存更多的内存这一事实。
一个方便的额外监控计数器是PhysicalDisk - Avg。队列长度(所有实例)。这将显示您的更改对磁盘使用本身的影响程度。性能良好的系统将显示此计数器的平均值为每个主轴4 或更少。
Sam*_*Sam 34
我多年来一直在没有页面文件的情况下运行我的 8 GB Vista x64 盒子,没有任何问题。
当我真正使用我的记忆时确实出现了问题!
三周前,我开始在 Photoshop 中编辑非常大的图像文件 (~2 GB)。一次编辑工作耗尽了我所有的记忆。问题:我无法保存我的作品,因为 Photoshop 需要更多内存来保存文件!
而且由于是 Photoshop 本身,它占用了所有内存,我什至无法通过关闭程序来释放内存(好吧,我做到了,但它太少了,无济于事)。
我所能做的就是废弃我的工作,启用我的页面文件并重做我的所有工作 - 因此我失去了很多工作,并且不建议禁用您的页面文件。
是的,它在大多数情况下都能很好地工作。但是一旦它破裂,它可能会很痛苦。
小智 20
虽然这里的答案很好地涵盖了该主题,但我仍会推荐阅读以下内容:
http://blogs.technet.com/markrussinovich/archive/2008/11/17/3155406.aspx
他几乎在最后谈到了 PF 大小:
有些人认为没有分页文件会带来更好的性能,但一般来说,有分页文件意味着 Windows 可以将修改列表(代表未被主动访问但尚未保存到磁盘的页面)上的页面写入到分页文件,从而使该内存可用于更有用的目的(进程或文件缓存)。因此,虽然可能有一些工作负载在没有分页文件的情况下性能更好,但一般来说,拥有一个将意味着更多可用内存可供系统使用(别介意,如果没有大的分页文件,Windows 将无法写入内核崩溃转储足以容纳他们)。
我真的很喜欢马克的文章。
Dav*_*ger 14
我能想到的最佳答案是,在正常负载下,您可能不会用完 8 GB,但在意外负载下,您会遇到麻烦。
对于页面文件,一旦开始点击页面,系统至少会运行缓慢。但是,如果您删除页面文件,它就会死掉(据我所知)。
此外,8 GB 现在似乎很多,但几年后它可能被认为是许多软件的最小内存量。
无论哪种方式 - 我建议至少保留一个小页面文件;但如果我不在基地,请其他人纠正我。
您没有提到它是否是 64 位版本的 Windows,但我想是的。
页面文件有很多用途,包括在BSoD(蓝屏死机)的情况下生成内存转储。
如果您没有页面文件,则在没有足够内存的情况下,Windows 将无法将页面调出到磁盘。您可能认为 8 GB 不会达到该限制。但是随着时间的推移,您可能有坏程序泄漏内存。
我认为它不会让你在没有页面文件的情况下进入休眠/待机状态(但我还没有尝试过)。
Windows 7 / 2008 / Vista 不会改变页面文件的使用。
我看到 Mark Russinovich(微软研究员)的一个解释说,没有页面文件的 Windows 可能比有页面文件(即使有足够的 RAM)要慢。但我找不到根本原因。
你的磁盘空间不足吗?我会保留至少 1 GB 以便能够在 BSoD 的情况下进行内核转储。
唯一可以告诉您您的服务器或工作站是否“需要”页面文件的人是您,谨慎使用性能监视器或近来的任何名称。正在运行什么应用程序,还有什么作用看,什么是最可能的内存使用情况,你可能会看到什么?
为了在较小的硬盘上节省一点钱,稳定性值得妥协吗?
当你下载一个非常大的补丁时会发生什么,比如一个服务包。如果安装程序服务决定它需要比您想的更多的内存来解压补丁,然后呢?如果您的病毒扫描程序(正确地)决定扫描这个非常大的包,那么它在解压缩和扫描此补丁文件时需要使用什么样的内存 - 我希望补丁存档文件本身不包含任何存档,因为那绝对是谋杀记忆使用数字。
我可以告诉你的是,删除页面文件造成伤害的可能性远远高于帮助。我想不出你为什么不拥有一个的原因——我敢肯定可能有一些专业案例我在那个案例上是错的,但那是另一个领域。
我禁用了我的页面文件(在 x86 笔记本电脑上为 8 GB),即使有 2500 MB 可用空间也有两个问题:
尝试激活 WCF 服务的 ASP.NET 错误:内存门检查失败,因为可用内存(399,556,608 字节)小于总内存的 5%。因此,该服务将无法用于传入请求。要解决此问题,请减少机器上的负载或调整 serviceHostingEnvironment 配置元素上 minFreeMemoryPercentageToActivateService 的值。
我永远不会知道 3.7 GB 是 8 GB 的不到 5%!
入门关闭方案,以防止信息丢失对话框:当我的RAM的75%用于我得到一个对话框,告诉我要关闭程序。您可以通过修改注册表(或可能通过禁用“诊断策略服务”)来禁用此功能。
最后我决定重新打开它。简单明了的 Windows 从来没有被设计为在没有页面文件的情况下使用。它被优化为与分页一起运行,而不是没有。如果您打算使用超过 75% 的内存并且不想弄乱您的注册表 - 那么它可能不适合您。
| 归档时间: |
|
| 查看次数: |
80054 次 |
| 最近记录: |