AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 23621
Accepted
Jason
Jason
Asked: 2009-06-11 11:50:46 +0800 CST2009-06-11 11:50:46 +0800 CST 2009-06-11 11:50:46 +0800 CST

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

  • 772

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

我什至需要页面文件吗?

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

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

Windows 7 与 Windows 2008 对页面文件有影响吗?

windows-server-2008 memory configuration windows-7 pagefile
  • 13 13 个回答
  • 81102 Views

13 个回答

  • Voted
  1. Best Answer
    quux
    2009-06-11T13:15:56+08:002009-06-11T13:15:56+08:00

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

    许多人似乎认为 Windows 会按需将数据推送到页面文件中。EG:某事需要大量内存,但没有足够的 RAM 来满足需求,所以 Windows 在最后一刻开始疯狂地将数据从 RAM 写入磁盘,以便腾出 RAM 来满足新的需求。

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

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

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

    当然有很多资源/使用场景。您可能会遇到一种情况,在这种情况下删除页面文件不会产生不利影响,但这些只是少数。在大多数情况下,删除或减少页面文件会导致在资源利用峰值场景下的性能下降。

    一些参考资料:

    • Windows Internals 书籍(第4 版和第 5 版)
    • 突破 Windows 的极限:物理内存
    • 突破 Windows 的极限:虚拟内存
    • Windows Vista 内核内部:第 1 部分
    • Windows Vista 内核内部:第 2 部分
    • Windows Vista 内核内部:第 3 部分
    • 了解虚拟内存
    • RAM、虚拟内存、页面文件和所有这些东西(这里有一个更长的版本)
    • 内存不足综合症,或者:为什么我还需要页面文件?

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

    • 306
  2. dmo
    2009-06-25T11:47:45+08:002009-06-25T11:47:45+08:00

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

    • 82
  3. SeeR
    2009-06-29T13:10:36+08:002009-06-29T13:10:36+08:00

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

    无论是在家还是在工作中,我都有 64 位的 Vista 和 8 GB 的 RAM。两者都禁用了页面文件。在工作中,很少有 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 没有任何问题。

    • 50
  4. quux
    2009-06-11T13:52:08+08:002009-06-11T13:52:08+08:00

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

    Perfmon 就是这方面的工具;不是任务管理器。一个关键计数器是Memory - Pages Input/sec。这将专门绘制硬页错误,即在进程可以继续之前需要从磁盘读取的错误。软页面错误(这是默认页面错误/秒计数器中绘制的大多数项目;我建议忽略该计数器!)并不是真正的问题;它们只是显示正常从 RAM 读取的项目。

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

    上面是一个没有后顾之忧的系统示例,内存方面。偶尔会出现大量硬故障——这些是无法避免的,因为硬盘总是比 RAM 大。但该图基本持平于零。所以操作系统很少从后备存储分页。

    如果您看到的内存 - 页面输入/秒图表比这个图表要高得多,那么正确的响应是降低内存利用率(运行更少的程序)或添加 RAM。更改页面文件设置不会改变系统需要的内存比实际内存更多的事实。

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

    • 36
  5. Sam
    2009-07-23T01:43:39+08:002009-07-23T01:43:39+08:00

    多年来,我一直在没有页面文件的情况下运行我的 8 GB Vista x64 机器,没有任何问题。

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

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

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

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

    是的,它在大多数情况下都会很好用。但一旦它破裂,它可能会很痛苦。

    • 34
  6. Radim Cernej
    2009-06-29T16:42:57+08:002009-06-29T16:42:57+08:00

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

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

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

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

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

    • 20
  7. Dave Drager
    2009-06-11T11:56:23+08:002009-06-11T11:56:23+08:00

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

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

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

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

    • 14
  8. Mathieu Chateau
    2009-06-11T11:59:49+08:002009-06-11T11:59:49+08:00

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

    页面文件有很多用途,包括在BSoD (蓝屏死机)的情况下生成内存转储。

    如果您没有页面文件,Windows 将无法在内存不足的情况下分页到磁盘。您可能认为使用 8 GB 不会达到该限制。但是随着时间的流逝,您可能会遇到错误的程序泄漏内存。

    我认为它不会让你在没有页面文件的情况下进入休眠/待机状态(但我还没有尝试过)。

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

    我从 Mark Russinovich(Microsoft Fellow)那里看到了一个解释,他解释说没有页面文件的 Windows 可能比使用页面文件的速度慢(即使有足够的 RAM)。但我找不到根本原因。

    你的磁盘空间不足吗?我会保留至少 1 GB 以便能够在 BSoD 的情况下进行内核转储。

    • 6
  9. Rob Moir
    2009-06-11T12:16:26+08:002009-06-11T12:16:26+08:00

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

    为了在较小的硬盘上节省一分钟的钱,是否值得牺牲稳定性?

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

    我可以告诉你的是,删除你的页面文件比帮助更容易受到伤害。我看不出你没有的理由——我敢肯定,可能有一些专业案例我错了,但那是另一个领域。

    • 6
  10. Simon
    2010-09-19T01:21:10+08:002010-09-19T01:21:10+08:00

    我禁用了我的页面文件(在 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

相关问题

  • 笔记本电脑 - RAM 与磁盘的性能

  • 从 2003 年迁移到 2008 年 Microsoft 群集技术

  • 有什么理由使用 Windows Server 2003 而不是 Server 2008?

  • 是否可以在单个 W2008 服务器上安装 Exchange Server?

  • 为什么 Virtual PC 与 Windows 7 捆绑在一起很重要?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve