我最近在处理一个问题,服务器在几天内耗尽了NonPagedPool。通常,我们只需要使用像PoolMon这样的工具来识别有问题的pool标记,然后使用本文中的方法找到使用该pool标记的驱动程序。然而,让这个案例有趣的是pool标记,而且我们无法使用常规方法识别驱动程序。你一会儿就会明白我的意思了。支持给我提供了服务器处于状态时的内核转储,这就是我发现的。
让我们先看看虚拟内存的使用情况:

2: kd> !vm*** Virtual Memory Usage ***Physical Memory:851420 ( 3405680Kb)

Page File: \
??\C:\pagefile.sys

Current:
3584000 Kb Free Space: 3568552Kb

Minimum:
3584000 Kb Maximum: 3584000Kb

Available Pages:
573277 ( 2293108Kb)

ResAvail Pages:
800628 ( 3202512Kb)

Locked IO Pages:
1067 ( 4268Kb)

Free System PTEs:
25102 ( 100408Kb)

Free NP PTEs:
335 ( 1340Kb)

Free Special NP:
0 ( 0Kb)

Modified Pages:
22 ( 88Kb)

Modified PF Pages:
22 ( 88Kb)

NonPagedPool Usage:
31369 ( 125476Kb) ß Very high

NonPagedPool Max:
31986 ( 127944Kb)********** Excessive NonPaged Pool Usage *****PagedPool0 Usage: 19071 ( 76284Kb)

PagedPool
1 Usage: 735 ( 2940Kb)

PagedPool
2 Usage: 747 ( 2988Kb)

PagedPool
3 Usage: 720 ( 2880Kb)

PagedPool
4 Usage: 746 ( 2984Kb)

PagedPool Usage:
22019 ( 88076Kb)

PagedPool Maximum:
38912 ( 155648Kb)********** 3 pool allocations have failed **********

标签: none

添加新评论