Poolmon

使用Poolmon检测内存泄漏

Poolmon是一款windows平台下的核心内存泄漏检测工具,核心内存是windows分配给系统内核或驱动所需的内存空间,核心分页池内存或未分页池内存如果增长表明你的电脑存在核心内存泄漏,如果达到了windows所分配的最大值,最终导致的后果是windowds变慢或者瘫痪(如果是windows 2003服务器,web服务器无法打开,httperr日志出现大量的Number_Connections_Refused错误),最后需要重启电脑解决问题。
Poolmon可以很好的来解决核心内存泄漏问题,下面我们就介绍一下如何使用Poolmon来检测核心内存泄漏的方法。
如果你的系统是Windows 2000或Windows XP系统,要先编辑注册表使它支持启用池标记功能windows 2003/vista/win7不需要,因为默认情况下池标记处于启用状态。
1.运行注册表编辑器-(开始菜单--运行---输入regedit)。
2.在注册表中找到以下项:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager
3.记下 GlobalFlag 的值,或保存Session Manager项。
4.双击 GlobalFlag 值,在右窗格中。
5.将值更改为 0x00000400 十六进制。

注意当您将添加全局标志值 0x00000400 时,它只显示最多为它添加后 0x400。一定要添加前导零的所有或某些 Poolmon 信息将不会显示在输出屏幕上。
6.重新启动计算机。

然后运行Poolmon.exe,显示完按P键,再按B键,使Bytes字段按大到小排序,这样可以清楚的看到Bytes比较大的tag标记(比如:SpDN),如下图所示.


如果SpDN一直处于增长状态,那么我们可以确定SpDN存在核心内存泄漏,可以通过findstr命令来定位占用SpDN的进程和驱动文件。
findstr /s /m /l "SpDN" c:\windows\system32\drivers\*.sys
通过一个一个排查,最后找到核心内存泄漏检的元凶.

<think>我们正在讨论poolmon工具的日志输出方法。根据引用内容,poolmonWindows Sysinternals工具集的一部分,用于监控系统内存池的使用情况。用户询问如何让poolmon输出日志。 虽然提供的引用中没有直接说明poolmon的日志输出方法,但我们可以根据一般工具使用经验和poolmon的帮助文档来回答。 通常,poolmon可以通过命令行参数来配置日志输出。我们可以通过运行`poolmon /?`来查看帮助。常见的方法有: 1. 使用`/n`参数指定日志文件名:例如`poolmon /n poolmon.log`会将日志写入poolmon.log文件。 2. 使用重定向符号:例如`poolmon > poolmon.log`可以将标准输出重定向到文件。 另外,引用[2]提到可以参考Mark Russinovich的书和Sysinternals论坛,这些资源可能提供更详细的指导。 因此,我们可以这样回答用户: </think>### Poolmon工具日志输出方法 PoolmonWindows Sysinternals工具集的重要组成部分,用于实时监控内核内存池分配情况。根据内存池标记(如引用[1]提到的`SpDN`等)分析内存使用情况。以下是日志输出的具体方法: #### 标准日志输出步骤 1. **启动日志记录** 运行命令(管理员权限): ``` poolmon /n poolmon.log ``` 这将持续记录到当前目录的`poolmon.log`文件,按`Ctrl+C`停止记录[^2]。 2. **带时间戳日志** 添加`/t`参数记录时间: ``` poolmon /n poolmon.log /t ``` 每条记录会包含`HH:MM:SS`格式的时间戳,便于分析内存变化趋势。 3. **按需筛选日志** 使用`/g`参数过滤特定池标记(如引用[3]的`SpDN`): ``` poolmon /n spdn.log /g SpDN ``` #### 高级日志管理 - **循环日志** 使用`/l`参数限制文件大小(单位MB): ``` poolmon /n rolling.log /l 10 ``` 当日志达到10MB时自动创建新文件。 - **二进制日志转换** 通过`log2txt.exe`转换二进制日志: ``` log2txt poolmon.bin ``` 生成可读的文本文件(需单独下载该工具)[^2]。 #### 日志分析技巧 1. 结合`findstr`命令过滤关键标记(如引用[3]方法): ```cmd findstr "SpDN" poolmon.log ``` 2. 使用Excel导入日志数据,按`Bytes`或`Allocs`列排序定位异常增长 3. 对比不同时间段的`Diff`列值,识别内存泄漏趋势 > **注意**:完整工具说明请参考《Windows Sysinternals Administrator's Reference》[^2],实践问题可访问[Sysinternals论坛](https://forum.sysinternals.com)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值