性能与资源

无法分配内存 - Windows Server

· 52CE 我爱测

本文提供了无法从系统分页池分配内存的问题的解决方法。 原始 KB 数: 312362 现象 服务器负载过大时,服务器服务可能会在系统事件日志中重复记录以下错误。 它指示服务器已退出分页池内存: 源 - SRV 类型 - 错误 事件 ID - 2020 描述- 服务器无法从系统分页池分配,因为池为空。 数据 - 0000:00040000 00540001 000000000 c00007e4 0010:00000000 c000009a 000000000

本文提供了无法从系统分页池分配内存的问题的解决方法。

原始 KB 数: 312362

现象

服务器负载过大时,服务器服务可能会在系统事件日志中重复记录以下错误。 它指示服务器已退出分页池内存:

源 - SRV 类型 - 错误 事件 ID - 2020 描述-

服务器无法从系统分页池分配,因为池为空。 数据 - 0000:00040000 00540001 000000000 c00007e4 0010:00000000 c000009a 00000000000000 0020: 00000000 000000000 0000000b

原因

多种因素可能会耗尽分页池内存的供应。 启用池标记并采用 poolsnaps 不同的时间间隔可能有助于了解哪个驱动程序正在使用分页池内存。 poolsnaps如果指示 MmSt 标记(Mm 节对象原型 PTE)是消耗最大的使用者和分页池内存,或者系统正在记录错误事件 2020 年代,则存在大量在服务器上打开的文件的可能性很大。 默认情况下,当系统达到总分页池的 80% 时,内存管理器会尝试剪裁已分配的分页池内存。 根据系统配置,计算机上的可能最大分页池内存可以为 343 MB,此数字的 80% 为 274 MB。 如果内存管理器无法快速修剪以满足需求,则可能会发生本文的“症状”部分中列出的事件。 通过优化内存管理器以更早地启动剪裁过程(例如,达到 60%)可以跟上突发高峰期的分页池需求,并避免耗尽分页池内存。

解决方法

重要

此部分(或称方法或任务)介绍了修改注册表的步骤。 但是,注册表修改不当可能会出现严重问题。 因此,按以下步骤操作时请务必谨慎。 作为额外保护措施,请在修改注册表之前先将其备份。 如果之后出现问题,您就可以还原注册表。 有关如何备份和还原注册表的详细信息,请单击下面的文章编号,查看相应的 Microsoft 知识库文章:322756 如何备份和还原 Windows 中的注册表

以下优化建议有助于缓解问题:

  1. 启动注册表编辑器(Regedt32.exe)。

  2. 在注册表中,找到并单击以下注册表项:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Memory Management

  3. 在“编辑”菜单上,单击“添加值”,然后添加以下注册表值: 值名称:PoolUsageMaximum 数据类型:REG_DWORD Radix:Decimal 值数据:60

    将值设置为 60 会通知内存管理器在 PagedPoolMax 的 60% 处启动修整过程,而不是默认设置 80%。 如果阈值 60% 不足以处理活动峰值,请将此设置减少到 50% 或 40%。

    值名称:PagedPoolSize 数据类型:REG_DWORD 弧度:十六进制 值数据:0xFFFFFFFF

    将 PagedPoolSize 设置为0xFFFFFFFF分配最大分页池,而不是将其他资源分配给计算机。

注意

不建议在具有 64GB RAM 的基于 32 位的 Windows Server 2003 计算机上使用 0xFFFFFFFF PagedPoolSize 设置。 这可能会导致免费系统 PTE 条目关闭,并可能导致计算机连续重启。 对于此配置,请根据要求和可用资源仔细选择一个值。 4. 退出注册表编辑器。 5. 重启服务器,使更改生效。

Status

Microsoft已确认,在“适用于”部分中列出的Microsoft产品中存在问题。

资料来源与适用范围

资料来源
微软官方中文故障文档
适用范围
适用于”部分中列出的Microsoft产品中存在问题。
内容语言
中文;命令、路径和错误标识保留技术原文
本地收录日期
2026-10-26
授权说明
CC BY 4.0

正文与所需资源由本站本地存储。查看来源及更新记录 ↗

请按适用版本和实际日志确认原因;本站没有对每一种系统或设备逐项执行文中的操作。