如何使用内存池监视器 (Poolmon.exe) 来解决内核模式内存泄漏

文章翻译 文章翻译
文章编号: 177415 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

简介

本文介绍如何使用内存池监视器实用程序 Poolmon.exe,用作故障诊断工具来监视内存标签。

Poolmon 可显示从系统分页和未分页的内核池和有关使用终端服务会话的内存池,操作系统会收集有关内存分配的数据。数据分组按池分配标签。Microsoft 技术支持部门可以使用此信息来查找内核模式内存泄漏。

由应用程序或进程,用于分配内存,但是,不会释放内存的应用程序或进程完成时导致内存泄漏。因此,随着时间的推移完全使用可用的内存。通常情况下,这种情况导致系统无法正常工作。

在这种情况下,系统日志中还可能会记录以下事件:

事件 ID: 2020年
来源: Srv
描述: 服务器不能从系统页面缓冲池分配,因为该池是空的。

事件 ID: 2019 年
来源: Srv
描述: 服务器不能从非分页系统分配池因为池是空的。

更多信息

第一节介绍如何启用使用 Poolmon 标记模式。第二节介绍了如何收集使用 Poolmon 进行疑难解答的信息。

启用标记模式

在运行之前 PoolMon,必须启用池标记,然后重新启动您的计算机。标记功能池收集,并计算有关内存分配的标记值按排序的池内存统计信息。

注意在Windows Server 2003 中池标记是默认启动的,所以不需要手动启用。

若要启用池标记在基于 Windows NT 4.0,基于 Windows 2000 或 Windows XP 的计算机上,使用下列方法之一:

方法 1: 编辑注册表

若要更改注册表值,该值启用标记模式为 Poolmon.exe,请按照下列步骤。

重要提示此部分、方法或任务包含告诉您如何修改注册表的步骤。但是,如果不正确地修改了注册表,可能会出现严重问题。因此,请确保仔细按这些步骤操作。为增加保护,先备份注册表再对其进行修改。然后,您可以在出现问题时还原注册表。有关如何备份和还原注册表的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
322756 如何在 Windows XP 中备份和还原注册表
  1. 运行注册表编辑器。
  2. 在注册表中找到下面的项:
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager
  3. 记下的值的GlobalFlag,或保存
    Session Manager
    键。
  4. 双击合适的窗格中的GlobalFlag值。
  5. 将该值更改为 0x00000400十六进制。

    注意添加全局标志值 0x00000400 时,它只显示被添加后的 0x400 upas。务必要添加 leadingzeros 的所有或某些 Poolmon 信息将不会显示在 outputscreen 上。
  6. 重新启动计算机。
注意完 GlobalFlag 值恢复为原始值,则已指示要在步骤 3 中记下的调试,更改。

方法 2: 使用 Gflags.exe 实用程序

此外可以使用全局标志编辑器 (Gflags.exe) 实用程序以启用池标记。Gflags.exe 是 Windows NT 4.0 资源工具包中和在 Windows 2000、 Windows XP 和 Windows 服务器 2003 Cd-rom 的 \Support\Tools 文件夹中可用。

注意由于池标记永久启用了 Windows Server 2003 中,全局标志对话框中的启用池标记复选框将变灰,并且命令来启用或禁用池标记失败。

通过使用 Gflags.exe 进行更改,请执行以下步骤:
  1. 单击开始,然后单击运行,类型 gflags.exe然后单击确定
  2. 选择启用池标记
  3. 单击应用,然后单击确定
  4. 重新启动计算机。
注意完调试,重复上述步骤以禁用池标记。

使用 Poolmon 收集信息

Poolmon 可显示在命令窗口中的池标记信息。使用箭头键或页面向上和向下翻页键以显示所有工具返回的标记信息。

Poolmon.exe 是 Windows NT 4.0 资源工具包中和在 Windows 2000、 Windows XP 和 Windows 服务器 2003 Cd-rom 的 \Support\Tools 文件夹中可用。

使用以下步骤来复制和存储标记信息。两个小时内重复这些步骤,每隔 15 分钟。记事本文件的后面加上每个更新。
  1. 单击开始,指向设置,单击控制面板,然后双击控制台

    注意 对于 Windows 2000 中,必须执行以下步骤:
    1. 单击开始,然后单击运行,类型 cmd然后单击确定
    2. 用鼠标右键单击标题栏,然后单击属性
  2. 单击选项选项卡,单击快速编辑模式,然后单击InsertMode
  3. 单击布局选项卡,将屏幕缓冲区大小值更改为 99然后单击确定
  4. 单击开始,指向程序,然后单击CommandPrompt
  5. 在 theSupport\Debug\ 中找到 Poolmon.exe平台 在 Windows NT 4.0 CD 上的文件夹。更改到的驱动器和文件夹 Poolmon.exe 所在的位置。在 windows 2000 CD Poolmon.exe 是管理器程序。管理器是位于的 underthe \Support\Tools 文件夹。
  6. 键入 Poolmon.exe.
  7. Poolmon 可显示的第二列,直到按下 P"键入"andshows 值 分页.
  8. 按 B 最大 tosmallest 中的列进行排序。
  9. 选中整个屏幕内容,然后单击 pressENTER。
  10. 单击开始,指向程序,指向附件,然后单击记事本
  11. 编辑菜单上,单击粘贴
  12. 重复第 7 步以查找值 未分页.
  13. 重复步骤 8 至 11 日进行粘贴。
Poolmon.exe 也有几个命令键的排序您的输出。按字母下面的说明执行操作。需要为每个命令要几秒钟。以下是几个命令的列表:
P-排序标签列表分页,由非分页的或混合。请注意 P 循环通过每个。
B-对标签排序字节的最大使用率。
M-对标签排序最大字节分配。
T-按标记名称按字母顺序排序标签。
E-显示分页,跨下未分页的总数。循环。
A-对标签排序分配大小。
F-按标记"释放"。
S-排序的分配不同的标记,并释放。
E-显示分页,跨下未分页的总数。循环。
Q-退出。
有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
298102 如何查找池标记所使用的第三方驱动程序

属性

文章编号: 177415 - 最后修改: 2014年3月3日 - 修订: 13.0
这篇文章中的信息适用于:
  • Microsoft Windows Server 2003, Enterprise x64 Edition
  • Microsoft Windows Server 2003 Datacenter Edition
  • Microsoft Windows Server 2003 Enterprise Edition
  • Microsoft Windows Server 2003 Standard Edition
  • Microsoft Windows Server 2003 Web Edition
  • Microsoft Windows XP Professional x64 Edition
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional Edition
  • Microsoft Windows XP Media Center Edition 2005 Update Rollup 2
  • Microsoft Windows XP Tablet PC Edition
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows NT Workstation 4.0 开发员版
  • Microsoft Windows Small Business Server 2003 Premium Edition
  • Microsoft Windows Small Business Server 2003 Standard Edition
关键字:?
kbhowto kbmt KB177415 KbMtzh
机器翻译
重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。
点击这里察看该文章的英文版: 177415
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com