WinFuture-Forum.de: Memory-Leak im Non-Paged Pool diagnostizieren - WinFuture-Forum.de

Zum Inhalt wechseln

Windows 10: Alle News, der Download sowie zahlreiche Screenshots und Videos zum neuen Betriebssystem von Microsoft. Jetzt im WinFuture Windows 10 - Special informieren!
Seite 1 von 1

Memory-Leak im Non-Paged Pool diagnostizieren


#1 Mitglied ist offline   adrianghc 

  • Gruppe: aktive Mitglieder
  • Beiträge: 730
  • Beigetreten: 12. Juli 14
  • Reputation: 121

geschrieben 02. Juli 2019 - 17:36

Ich bin auf Windows 10 Version 1903 und habe einen Memory-Leak im Non-Paged Pool, der sich im Modern Standby manifestiert. Das passiert üblicherweise nach mehreren Stunden im Standby, allerdings gibt es ganz selten gar keinen Leak (bis jetzt nur einmal direkt beobachtet, könnte auch öfter passiert sein). Der Non-Paged Pool wächst dabei jedes Mal um einige 100 MB. Nach einigen Tagen füllt sich so langsam der ganze RAM, da der durch den Leak geforderte Speicher nie freigegeben wird, und ich muss neustarten.

Mittels poolmon habe ich mittlerweile herausgefunden, dass der Verursacher intelpep.sys ist, also das Intel Power Engine Plugin (Tag PEPI). Interessanterweise stellt man mit poolmon auch fest, dass die Größe pro Allozierung unter diesem Tag fast genau 4 KB sind (4-5 Bytes darunter). Darunter schließe ich, dass das Problem bei einer wiederkehrenden fehlerhaften 4-KB-Allozierung entsteht. Dass es insgesamt knapp unter 4 KB pro Allozierung sind, liegt vermutlich daran, dass einige kleinere, nicht fehlerhafte Allozierungen den Schnitt ganz leicht nach unten drücken. Diese 4 KB könnten also vielleicht ein nützlicher Hinweis sein, auch wenn ich noch keine Idee hab, was die 4 KB da sein könnten.

Nun komm ich aber erstmal nicht wirklich weiter. Live-Debugging wird dadurch erschwert, dass der Leak ja nur im Standby auftaucht, also muss ich mich mit einem Dump-File weiter behelfen. Ich hab dafür einen Kernel-Dump, in dem der Non-Paged Pool bereits auf über 800 MB angewachsen war. Leider kenne ich mich nicht damit aus, wie man Windows-Dump-Files am besten (oder überhaupt) analysiert, z.B. mit WinDbg. Vielleicht könnte man sich den Inhalt der 4-KB-Allozierungen genauer ansehen, falls das vielleicht etwas bringen könnte? Wenn ja, wie könnte ich das machen? Wenn nicht, hat jemand andere Ideen, wie ich weiterkommen könnte?

EDIT: Es könnte sein, dass die Allozierungen im Standby laufend stattfinden, man merkt sie nur erst nach einigen Stunden, weil sie sich vorher nicht genug akkumuliert haben. Laut meiner letzten Beobachtung könnten das 4 KB etwa jede halbe Sekunde sein.

EDIT 2: Schon nach wenigen Minuten im Standby werden eine handvoll KB alloziert, und zwar immer ein Vielfaches von 4.

EDIT 3: Ich hab mittlerweile den poolfind-Befehl in WinDbg entdeckt, mit dem ich erstens die Theorie mit den 4-KB-Allozierungen bestätigen kann und zweitens jetzt die Speicheradressen dieser Allozierungen kenne. Aus dem Inhalt bin ich aber noch nicht schlau geworden, aber man sieht schon, dass fast alle Allozierungen mit dem gleichen Inhalt beginnen, und zwar mit:

41 65 6F 42 14 00 00 00 01 00 00 00 02 00 01 00 00 00 10 00 A0 40 EB C4 D2 6C E2 11 BC FD 08 00 20 0C 9A 66 00 00 04 00 00 00 00 00 00 00 04 00 05 00 00 00 03 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00


Scheinbar nur die erste Allozierung unterscheidet sich schon nach den ersten 21 Byte.
Interpretieren kann ich das noch nicht, Text scheint es jedenfalls nicht zu sein.

EDIT 4: Text gibt es weiter vorne. Er scheint selten der gleiche zu sein, aber es finden sich Dinge wie die Namen der einzelnen Netzwerkverbindungen auf meinem Rechner. Werde da weiter nachforschen. Allerdings habe ich schon festgestellt, dass der Speicherleck immer noch auftaucht, wenn ich den WiFi-Treiber oder den Ethernet-Treiber deaktiviere.

Dieser Beitrag wurde von adrianghc bearbeitet: 03. Juli 2019 - 01:10

0

Anzeige



#2 Mitglied ist offline   thielemann03 

  • Gruppe: aktive Mitglieder
  • Beiträge: 526
  • Beigetreten: 28. Januar 19
  • Reputation: 62

geschrieben 02. Juli 2019 - 21:47

Jetzt weiß ich, dass du mit vielen Worten Nichts sagen kannst! ist es möglich das auf was Verständliches herunterzubrechen?
Niemand ist so gut, wie ich sein könnte.
0

#3 Mitglied ist offline   adrianghc 

  • Gruppe: aktive Mitglieder
  • Beiträge: 730
  • Beigetreten: 12. Juli 14
  • Reputation: 121

geschrieben 02. Juli 2019 - 22:01

Böser Treiber hat ein Speicher-Leck im Standby. Will wissen, warum. Komme nicht weiter.

Hakt es an den Fachbegriffen? Ohne wird es leider nicht gehen, fürchte ich. Oder an einem konkreten Fachbegriff? Dann könnte ich den auch erklären.

Dieser Beitrag wurde von adrianghc bearbeitet: 02. Juli 2019 - 22:02

0

#4 Mitglied ist offline   thielemann03 

  • Gruppe: aktive Mitglieder
  • Beiträge: 526
  • Beigetreten: 28. Januar 19
  • Reputation: 62

geschrieben 02. Juli 2019 - 22:04

nein, es hakt eher am Dünkel. Du bist Narzist!

Dieser Beitrag wurde von thielemann03 bearbeitet: 02. Juli 2019 - 22:11

Niemand ist so gut, wie ich sein könnte.
0

#5 Mitglied ist offline   adrianghc 

  • Gruppe: aktive Mitglieder
  • Beiträge: 730
  • Beigetreten: 12. Juli 14
  • Reputation: 121

geschrieben 02. Juli 2019 - 22:24

Ich gebe zu, dass meine "vereinfachte Darstellung" in #3 etwas giftig war, aber wenn du versuchst, dir deinen Beitrag in #2 aus meiner Perspektive durchzulesen, siehst du vielleicht auch ein, dass ich damit so kaum was anfangen kann und ich auch schlicht etwas genervt war, dass du als allererstes passiv-aggressiv damit ankommst, meine detaillierte Erklärung sei unnütz. Ich hab nämlich ganz sicher nicht "nichts" gesagt, in meinem Original-Post steckt eine ganze Menge Information. Also wenn überhaupt ist das Problem vielleicht, dass da zu viel Information ist und man deswegen den Überblick verliert. Falls es aber wie gesagt an den Fachbegriffen liegt, haben wir ein Problem, den ich könnte natürlich erklären, was poolmon ist, anstatt es einfach vorauszusetzen, aber wenn ich z.B. auch erklären muss, was Allozierungen oder Dump-Files sind, dann fehlen dir vielleicht auch einfach die Voraussetzungen, um mir bei meinem Problem zu helfen - und das soll bitte nicht als Gemeinheit aufgefasst werden, aber man muss sich so was schon neutral sagen können. Wenn das aber auch nicht das Problem ist, dann wäre es mir eine große Hilfe, wenn du dein Problem mit meinem Original-Post ein bisschen genauer beschreiben könntest, anstatt mich einfach als Narzisst zu titulieren.

Dieser Beitrag wurde von adrianghc bearbeitet: 02. Juli 2019 - 22:26

0

#6 Mitglied ist offline   Q 1 

  • Gruppe: aktive Mitglieder
  • Beiträge: 928
  • Beigetreten: 11. Januar 14
  • Reputation: 100

geschrieben 02. Juli 2019 - 22:32

Der umgangssprachliche Gebrauch des Wortes „Narzissmus“ schließt meist ein negatives moralisches Werturteil über die betreffende Person ein. :blink:
0

#7 Mitglied ist offline   Gispelmob 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.092
  • Beigetreten: 14. August 15
  • Reputation: 232

geschrieben 03. Juli 2019 - 05:51

Beitrag anzeigenZitat (adrianghc: 02. Juli 2019 - 17:36)

Nach einigen Tagen füllt sich so langsam der ganze RAM, da der durch den Leak geforderte Speicher nie freigegeben wird, und ich muss neustarten.

Macht man das nicht sowieso jeden Tag?

Beitrag anzeigenZitat (adrianghc: 02. Juli 2019 - 17:36)

Mittels poolmon habe ich mittlerweile herausgefunden, dass der Verursacher intelpep.sys ist, also das Intel Power Engine Plugin (Tag PEPI).

Update?
AMD Ryzen 2700X, Asus TUF X470-Plus Gaming, 2x8GB Corsair DDR4-3200, Asus Geforce GTX 1060 6GB, 1x 120GB Intenso SSD, 1x 1TB Sandisk SSD, Win10 Home 64Bit
0

#8 Mitglied ist offline   adrianghc 

  • Gruppe: aktive Mitglieder
  • Beiträge: 730
  • Beigetreten: 12. Juli 14
  • Reputation: 121

geschrieben 03. Juli 2019 - 09:32

Beitrag anzeigenZitat (Gispelmob: 03. Juli 2019 - 05:51)

Macht man das nicht sowieso jeden Tag?

Nein. Zumindest ich nicht.

Beitrag anzeigenZitat (Gispelmob: 03. Juli 2019 - 05:51)

Update?

Dieser Treiber wird tatsächlich direkt mit Windows mitgeliefert und hat sogar die Windows-Buildnummer als Versionsnummer (aktuell also 10.0.18382.xxx). Ein Update des Treibers fällt somit weg.

Ich sollte vielleicht hinzufügen, dass mein Bruder keinen Memory-Leak hat, obwohl er die gleiche Windows-Version und das gleiche Gerät (bei gleicher Firmware-Version) hat. Also ist es definitiv irgendein Faktor auf meiner Seite.

Dieser Beitrag wurde von adrianghc bearbeitet: 03. Juli 2019 - 09:33

0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0