Windows - Rendszer memóriaszivárgásának megfigyelése kernel módban

Ha valamely eszközmeghajtó hibás, akkor előfordulhat, hogy memóriaszivárgást okoz, mivel memóriát foglal le, de azt nem szabadítja fel, tehát folyamatosan lefoglalt marad a terület. Az ilyen memóriaszivárgások megtalálásához mutatunk be egy hatásos eszközt cikkünkben.
Amikor egy folyamat memóriát foglal le, de dolga végeztével nem szabadítja fel, akkor a szabad memória végül is használatban marad.
Rosszul megírt eszköz-meghajtó programok gyakran okoznak memóriaszivárgást.
A cikkünkben alkalmazott Gfalgs.exe és Poolmon.exe a Support Tools részei, ezért telepítsük fel a támogatási csomagot az operációs rendszer telepítőlemezéről. A Poolmon.exe eszköz segítségével megfigyelhetők a memóriaszivárgások.
Ahhoz, hogy a Poolmon-t használni tudjuk, be kell kapcsolnunk a készletcímzést. Ez a Windows 2003 szerverben alapesetben be van kapcsolva. Egyéb rendszerekben az alábbi módon kapcsolható be:
  • Kattintsunk a Start / Run-ra, írjuk be, hogy Gflags.exe, majd OK.
  • Jelöljük be az Enable Pool Tagging-et.
  • Kattintsunk az Apply-ra és az OK-ra.
  • Kapcsoljuk ki és indítsuk újra a gépet.
Amikor befejeztük az ellenőrzést, akkor kapcsoljuk ki a Pool Tagging-et.

Mielőtt használnánk a Poolmon-t, beállíthatjuk a parancssor néhány tulajdonságát:
  • Kattintsunk a Start / Run-ra, írjuk be, hogy CMD.exe, majd OK.
  • Kattintsunk jobb egérgombbal a címsorra és válasszuk a Tulajdonságokat.
  • Válasszuk a Beállítások lapot.
  • Jelöljük be a Gyorsszerkesztés és Beszúrási módot.
  • Válasszuk az elrendezés lapot.
  • Állítsuk a Képernyő puffer oszlop méretét 99-re, és kattintsunk az OK-ra.

  • A Beállítások alkalmazása ablakban válasszuk a Beállítások alkalmazása csak az aktuális ablakra jelölést, és kattintsunk az OK-ra.

Ahhoz, hogy információkat gyűjtsünk a Poolmon segítségével, ismételjük a következő eljárást 15 percenként legalább két órán át. Bővítsük az összegyűjtött információt egy Notepad fájl végére:
  • Kattintsunk a Start / Run-ra, írjuk be, hogy CMD.exe, majd OK.
  • Írjuk be, hogy Poolmon.exe.
  • Üssük le a P-t, amíg a Poolmon megjelenti a második oszloptípust és megmutatja a lapozott értéket.
  • Üssük le a B-t, hogy csökkenő sorrendbe rendezzük az oszlopokat
  • Jelöljük ki az egész megjelenített tartalmat, és üssünk Enter-t, hogy kimásoljuk azt a vágólapra.
  • Nyissuk meg a Notepad-et, és illesszük be az információt.
  • Üssük le a P-t, amíg a Poolmon megjelenti a második oszloptípust és megmutatja a nem lapozott értéket.
  • Jelöljük ki az egész megjelenített tartalmat, és üssünk Enter-t, hogy kimásoljuk azt a vágólapra.
  • Illesszük be az előző tartalom után a Notepad-be.
Vizsgáljuk meg a különféle memóriafoglalásokat, hogy eldöntsük, melyik a szivárgó.
Hogyan lehet a készletből meghatározni egy meghajtó nevet?
  • Nyissunk egy CMD prompt ablakot.
  • Váltsunk át a meghajtók mappába:
cd /d %SystemRoot%\System32\Drivers
  • Írjuk be az alábbi parancsot:
findstr /m /l <pool tag> *.sys
  • Ha több fájlt kapunk, akkor adjunk egy h-t a <pool tag>-hez. A findstr /m /l hTCPt *.sys parancs TCPIP.SYS-t ad vissza.
Poolmon parancsok
  • P – Rendezi a címlistát lapozott, nem lapozott, vagy kevert módon. Ciklikus megjelenítés.
  • B – Maximum felhasználás szerint rendez.
  • M – Maximum lefoglaltság szerint rendez.
  • T – Névsor szerint rendezi a címeket.
  • A – Lefoglalt méret szerint rendezi a címeket.
  • F – Felszabadítás szerint rendezi a címeket.
  • S – Lefoglalások és felszabadítások közötti különbség szerint rendez.
  • E - Rendezi a címlistát lapozott, nem lapozott összesként hátulról haladva. Ciklikus megjelenítés.
  • Q - Kilépés.