![Poolmon Nonp 总字节数不等于 Perfmon 内存 > 非分页池字节数](https://linux22.com/image/1405223/Poolmon%20Nonp%20%E6%80%BB%E5%AD%97%E8%8A%82%E6%95%B0%E4%B8%8D%E7%AD%89%E4%BA%8E%20Perfmon%20%E5%86%85%E5%AD%98%20%3E%20%E9%9D%9E%E5%88%86%E9%A1%B5%E6%B1%A0%E5%AD%97%E8%8A%82%E6%95%B0.png)
我们正在监控服务器是否存在潜在的非分页池内存泄漏。因此,我们设置了一个 cmd 批处理文件,每 10 分钟输出一次非分页池分配。我们还设置了一个 perfmon 计数器日志来捕获内存 > 非分页池字节数。并且当此计数器超过 185MB(以字节为单位)时发出警报。
昨天触发了警报。我们检查了当天的poolmon日志以及perfmon计数器日志文件。现在,当我将每个poolmon日志中的所有字节相加时,每次我都会得到总共~170MB。然而,在Perfmon中,它在同一时间段内显示为210MB。它会保持这个状态很长时间,所以不是峰值。任务管理器也显示这个~210MB。查看poolmon日志,顶级消费者没有太大变化,但确实发生了变化。
批处理文件使用:POOLMON.exe -p -b -n %OUTDIR%\poolmon.%ISODATE%.log
为什么两者之间存在差异?我应该相信哪一个?
任何见解都将不胜感激!
答案1
任务管理器显示分配给池的总地址空间。这包括池内的空闲区域。Poolmon 仅显示分配。差异反映了在不扩展池的虚拟(以及非分页池的物理)分配的情况下可以进行的额外分配的总大小。