Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Als u vermoedt dat er een geheugenlek in de kernelmodus is, kunt u het hulpprogramma PoolMon gebruiken om te bepalen welke pooltag aan het lek is gekoppeld.
PoolMon (Poolmon.exe) bewaakt het geheugengebruik van de pool per pooltagnaam. Dit hulpprogramma is opgenomen in de Windows Driver Kit (WDK). Zie PoolMon voor meer informatie.
GFlags-poolinstellingen
Sommige GFlags-instellingen, zoals Speciale pool, hebben invloed op de wijze waarop geheugenpools worden gebruikt. Zie GFlags en Speciale pool configureren voor meer informatie.
PoolMon gebruiken
In de PoolMon-koptekst worden de totale gecachede en niet-gecachede poolbytes weergegeven. In de kolommen wordt het gebruik van de pool weergegeven voor elke pooltag. De weergave wordt elke paar seconden automatisch bijgewerkt. Voorbeeld:
Memory: 16224K Avail: 4564K PageFlts: 31 InRam Krnl: 684K P: 680K
Commit: 24140K Limit: 24952K Peak: 24932K Pool N: 744K P: 2180K
## Tag Type Allocs Frees Diff Bytes Per Alloc
CM Paged 1283 ( 0) 1002 ( 0) 281 1377312 ( 0) 4901
Strg Paged 10385 ( 10) 6658 ( 4) 3727 317952 ( 512) 85
Fat Paged 6662 ( 8) 4971 ( 6) 1691 174560 ( 128) 103
MmSt Paged 614 ( 0) 441 ( 0) 173 83456 ( 0) 482
PoolMon heeft opdrachtsleutels waarmee de uitvoer wordt gesorteerd op basis van verschillende criteria. Selecteer de letter die bij elke opdracht hoort om de gegevens opnieuw te sorteren. Het duurt enkele seconden voordat elke opdracht werkt.
De sorteeropdrachten zijn onder andere:
Opdrachttoets | Operatie |
---|---|
P | Hiermee beperkt u de weergegeven tags tot niet-gepagineerde poolbytes, gepagineerde poolbytes of beide. Herhaaldelijk op P drukken doorloopt elk van deze opties, in die volgorde. |
B | Hiermee sorteert u tags op maximum bytegebruik. |
M | Hiermee sorteert u tags op maximale bytetoewijzingen. |
T | Hiermee sorteert u tags alfabetisch op tagnaam. |
E | Zorgt ervoor dat de weergave de pagina- en niet-paginatotalen onderaan opneemt. |
A | Sorteert tags op allocatiegrootte. |
F | Sorteert tags op vrije bewerkingen. |
S | Sorteert tags op het verschil tussen toewijzingen en vrijgaves. |
Q | Sluit PoolMon af. |
Stuurprogrammanamen weergeven in PoolMon
U kunt de parameter PoolMon/g gebruiken om de namen van Windows-onderdelen en veelgebruikte stuurprogramma's weer te geven die elke pooltag toewijzen. Als u een probleem ondervindt in toewijzingen met een bepaalde tag, helpt deze functie u bij het identificeren van het problematische onderdeel of stuurprogramma.
De onderdelen en stuurprogramma's worden vermeld in de kolom Mapped_Driver, de meest rechtse kolom in de weergave. De gegevens voor de kolom Mapped_Driver zijn afkomstig uit pooltag.txt, een bestand dat is geïnstalleerd met de WDK.
De volgende opdracht toont het gebruik van de parameter /g om de kolom Mapped_Driver toe te voegen.
poolmon /g "C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\triage\pooltag.txt"
Specifieke pools weergeven
Gebruik de parameter /i om pooltags weer te geven die beginnen met een specifieke tekenreeks, bijvoorbeeld Verbergen.
poolmon /iHid? /g "C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\triage\pooltag.txt"
Memory:33473120K Avail:20055132K PageFlts: 5 InRam Krnl:10444K P:1843072K
Commit:15035764K Limit:67027552K Peak:16677444K Pool N:1023400K P:1955448K
System pool information
Tag Type Allocs Frees Diff Bytes Per Alloc Mapped_Driver
HidC Paged 1667 ( 0) 1659 ( 0) 8 896 ( 0) 112 [hidclass.sys - HID Class d
HidC Nonp 17375 ( 0) 17256 ( 0) 119 19808 ( 0) 166 [hidclass.sys - HID Class d
HidP Nonp 1014 ( 0) 998 ( 0) 16 6704 ( 0) 419 [hidparse.sys - HID Parser]
Gebruik het hulpprogramma PoolMon om een geheugenlek te vinden
Hier volgt een methode om een geheugenlek te vinden met het hulpprogramma PoolMon:
Start PoolMon.
Als u hebt vastgesteld dat het lek zich in een niet-gepaginade pool voordoet, selecteert u P één keer. Als u hebt vastgesteld dat deze zich in een gepaginade pool voordoet, selecteert u P twee keer. Als u het niet weet, selecteert u P niet, dus beide soorten pools zijn inbegrepen.
Selecteer B om de weergave te sorteren op maximaal bytegebruik.
Start uw test. Kopieer de uitvoer van het scherm, bijvoorbeeld door een schermopname te maken en op te slaan.
Maak elke half uur een nieuwe schermopname. Door schermopnamen te vergelijken, bepaalt u welke bytes van de tag toenemen.
Stop uw test en wacht enkele uren. Bepaal in deze periode hoeveel van de tag is vrijgemaakt.
Normaal gesproken wijst een toepassing, nadat deze een stabiele status heeft bereikt, geheugen toe en maakt deze geheugen vrij met dezelfde snelheid. Als het geheugen sneller toewijst dan het vrij maakt, neemt het geheugengebruik na verloop van tijd toe. Dit duidt vaak op een geheugenlek.
Het lek verhelpen
Nadat u hebt vastgesteld welke pooltag is gekoppeld aan het lek, hebt u mogelijk alles wat u moet weten over het lek. Als u wilt bepalen welke specifieke instantie van de toewijzingsroutine het lek veroorzaakt, raadpleegt u Het kernelfoutopsporingsprogramma gebruiken om geheugenlekken in de kernelmodus te vinden.