Windows 10 Memory Leak - Tags (poolmon) FMic und Irp - Nicht ausgelagerter Pool bei 5,7 GB

1681
Sam

Ich habe in letzter Zeit eine extrem hohe Speicherauslastung festgestellt. Wenn nur Chrome mit 20 Registerkarten geöffnet ist, werden 13,5 / 16 GB meines Speichers verwendet. Der Task-Manager berichtet, dass Chrome nur etwa 3 GB Arbeitsspeicher benötigt. Alle übrigen im Task-Manager gemeldeten Prozesse machen weniger als 1 GB zusätzlichen Speicher aus, da die meisten von ihnen zwischen 10 MB und 50 MB nutzen.

Ich habe RamMap verwendet, um weitere Informationen zu erhalten, und der Nonpaged Pool ist mit 5,7 GB extrem hoch. Hier ist ein Bild von RamMap .

Ich habe verwendet poolmonund festgestellt, dass zwei Dinge eine enorme Menge des nicht ausgelagerten Pools verbrauchen. Hier ist ein Bild von Poolmon .

Gemäß einer Google-Tag-Suche und dieser Liste hier sind diese 2 Tags dafür gedacht:

  • FMic - fltmgr.sys - IRP_CTRL-Struktur
  • Irp - unbekannt - Io, IRP-Pakete

Aber jetzt habe ich eine Sackgasse erreicht. Ich habe andere ähnliche Fragen gesehen, aber keine, die sich mit diesen Tags befassen. Das Problem der anderen Benutzer kommt normalerweise von einem Treiber und sie können es einfach aktualisieren. Aber in diesem Fall weiß ich nicht, wie ich das beheben kann.

Ich habe die Datei fltMgr.sys in C: \ Windows \ System32 \ drivers gefunden, aber es scheint eine Microsoft-Sache zu sein. Unter Eigenschaften -> Details lautet der Name "Microsoft Windows Operating System" und die Dateibeschreibung "Microsoft Filesystem Filter Manager". Das ist also nicht nur ein Treiber, den ich aktualisieren kann.

Was das Irp- Tag angeht, habe ich keine Ahnung.

Irgendwelche Vorschläge? Wo nehme ich es ab und was kann ich tun?

EDIT 03/03/18 : Ich besitze keine Killer NIC.

Ich habe xperf zum Aufnehmen verwendet und bin so weit gekommen . Ich weiß nicht genau, wohin ich gehen soll, alternativ könnte ich die .etl-Datei hochladen, obwohl sie ziemlich groß ist, also nicht sicher, wo. Lassen Sie mich wissen, ob das Hochladen hilfreich sein wird.

Es ist vielleicht 40 Minuten nach dem Neustart und bereits 517 MB Nonpaged-Pool.

EDIT 04/03/18 # 1 : Nicht ausgelagerter Pool derzeit bei 1 GB nach einem Tag. Es scheint, es steigt mit einer Rate von ~ 1 GB pro Tag. Ausgabe von fltmcfinden Sie hier .

Was Irp - ich Antiviren - oder Backup - Programme nicht verwenden, es sei denn, Sie Windows Defender zählen. Ich verwende jedoch einen Symlink von meinem C: -Laufwerk (SSD) zu meinem F: -Laufwerk (HDD) für Google Chrome und die Cache-Ordner von Skype, da diese 20 GB pro Tag auf die Festplatte schreibten, was ich nicht wollte meine SSD. Dieser Cache funktioniert einwandfrei und wird auf meine Festplatte geschrieben. Ich glaube jedoch nicht, dass dies zu fehlerhafter E / A führen würde.

Ich habe auch ein Raid 0-Array mit 2 Festplatten (jeweils 1 TB), das über die integrierten Windows-Speicherbereiche erstellt wurde, nicht über das BIOS oder ähnliches. Ich vermute nicht, dass dies auch etwas mit dem Irp- Ding zu tun haben könnte .

Schließlich nehme ich auch mein Gameplay auf, wenn ich Videospiele spiele. Es läuft automatisch im Hintergrund, sobald ich ein Spiel starte, und zwar mit einem Client namens Plays.TV. Dies ist jedoch erfolgreich, und ich kann nicht erkennen, warum die E / A-Anforderung ausgegeben, aber nicht abgeschlossen wurde. Die Videos beenden die Aufnahme, sobald ich ein Spiel verlassen habe.

EDIT 04/03/18 # 2 : Ich habe typeperf "Memory\Pool Nonpaged Bytes" -si 20 -o npptracker.csvdie Ergebnisse verwendet und dann grafisch dargestellt, wie von @HelpingHand vorgeschlagen. Ich habe auch den Graphen mit allen Ereignissen kommentiert, damit Sie sehen können, welche Aktion den nicht ausgelagerten Bytes entspricht, die nach oben oder unten springen. Hier ist der Graph. Darauf sehen Sie möglicherweise ein paar Dinge, die Sie nicht kennen:

  • PUBG - Abkürzung für BattleGrounds von PlayerUnknown, ein Videospiel, das ich kürzlich gespielt habe
  • Plays.TV - Video-Recording-Client, der die Aufnahme automatisch startet, sobald ich ein Spiel betrete, und die Aufnahme stoppt, wenn ich das Spiel verlasse. Es zeichnet auch Metadaten für einige Spiele auf und platziert sie als Marker auf der Timeline des Videos. Beispielsweise sehe ich Markierungen in der Timeline, wenn ich jemanden getötet habe. Diese Metadaten werden in einer .framelets- Datei aufgezeichnet .
  • Twitch.tv - eine Website zum Streaming
  • Bot für ein Browserspiel - nur ein Bot, der HTML-Anforderungen ausführt. Es läuft nur etwa 30 bis 60 Minuten und ich bin ziemlich zuversichtlich, dass es keine Wirkung hat.

Wie Sie in der Grafik sehen können, habe ich Xperf ungefähr 7 Minuten lang mit dem folgenden Befehl verwendet: Xperf -on PROC_THREAD+LOADER+POOL -stackwalk PoolAlloc+PoolFree+PoolAllocSession+PoolFreeSession -BufferSize 1024 -MinBuffers 256 -MaxBuffers 256 -MaxFile 1024 -FileMode Circular

Dies hat eine 1 GB .etl- Datei erzeugt, die ich hier gepackt und hochgeladen habe (80 MB) .

Schließlich habe ich poolmonetwa 2-3 Minuten nach dem Stoppen noch einmal gebraucht xperf. Ich habe vergessen, es in die Timeline-Grafik einzufügen. Hier ist ein Bild des Ergebnisses.

1
Hast du eine Killer-Netzwerkkarte? David Marshall vor 6 Jahren 0
Ich würde vorschlagen, Windows Performance Toolkit zu installieren, um xperf und WPA zu erhalten. Ich würde den Computer neu starten, der Poolspeicher sollte niedrig sein. Führen Sie `Xperf -on PROC_THREAD + LOADER + POOL -stackwalk PoolAlloc + PoolFree + PoolAllocSession + PoolFreeSession -BufferSize 1024 -MinBuffers 256 -MaxBuffers 256 -MaxFile 256 -FileMode Circular aus, um eine Ablaufverfolgung zu starten. Nachdem der Pool mem erhöht wurde, führen Sie Folgendes aus: `xperf -stop -d pool.etl`, um eine Ablaufverfolgung zu erstellen. Laden Sie die pool.etl in WPA. Ablage für AIFO (Mem außerhalb von frei zugewiesen). Fühlen Sie sich frei, um die etl zu verlinken. HelpingHand vor 6 Jahren 1
Danke für die Kommentare. Überprüfen Sie die 2 Änderungen. @HelpingHand Ich kann versuchen, die .etl-Datei irgendwo hochzuladen, wenn Sie mich dazu brauchen, obwohl es scheint, als hätten sie persönliche Informationen. Zumindest ist das die Warnung, die ich bekam, als ich die Spur machte. Sam vor 6 Jahren 0
Ich frage mich, ob die Erfassung das Leck passiert oder zumindest in einer Geschwindigkeit, die offensichtlich ist? Hier ein Beispiel für eine Ablaufverfolgung, die auf dieselbe Weise mit der Microsoft / Sysinternals - NotMyFault-Test-App als Beispiel für einen Treiber erfasst wurde, der einen nicht ausgelagerten Pool verlieren kann - https://imgur.com/a/1U8UR. Beachten Sie die Auswirkungen auf die Größe und die Stapelspalten. ... HelpingHand vor 6 Jahren 0
.... in diesem Fall wird der Treiber myfault.sys als Ursache angezeigt. Haben Sie den Stack erweitert, um referenzierte Treiber anzuzeigen? Andernfalls erhalten Sie ein Gesamtprofil über die Zeit und die Geschwindigkeit des Lecks und um zu wissen, wann er erfasst, neu gestartet und ausgeführt werden soll: `typeperf" Memory \ Pool Nonpaged Bytes "-si 20 -o npptracker.csv`, bis die Anzahl eindeutig gesunken ist Dann zeigen Sie es in Excel, um anzuzeigen, wann es gestartet wurde, und die Rate. Vielleicht wiederholen Sie dies ein paar Mal, damit Sie wissen, wann und wie lange der Befehl xperf am besten ausgeführt werden soll. Möglicherweise muss der -MaxFile-Schalter an diesem Punkt ebenfalls berücksichtigt werden. HelpingHand vor 6 Jahren 0
** Irp ** bezieht sich auf E / A-Anforderungspakete. Für jede E / A-Anforderung, die ausgegeben wurde, aber noch nicht abgeschlossen ist, wird eine davon angezeigt. Die Poolmon-Anzeige zeigt, dass es etwa 5,2 Millionen davon gibt, eine enorme Anzahl. ** fltmgr.sys ** ist der Manager und das Framework für Dateisystem-Minifilter-Treiber. Wenn die Problemanalyse auf fltmgr.sys verweist, liegt das Problem fast immer in einem Minifilter. Minifilter sind normalerweise mit Antivirus-Produkten, Sicherungsprogrammen und dergleichen verbunden. Deaktivieren oder entfernen Sie zum Testen alle Drittanbieterprodukte dieser Art und sehen Sie, ob das Problem behoben ist. Jamie Hanrahan vor 6 Jahren 1
Zu Jamies Kommentar hinzuzufügen, der gut ist. Was gibt die Ausgabe des Befehls "fltmc" aus? Starten Sie eine Admin-Eingabeaufforderung, um sie auszuführen. Können Sie das Ergebnis der Frage hinzufügen? HelpingHand vor 6 Jahren 0
@HelpingHand Ich habe in einem Edit die Ausgabe von `fltmc` hinzugefügt und ich werde in Kürze die oben genannten Dinge tun. Ich habe auch ein paar zusätzliche Informationen hinzugefügt, die irgendwie mit I / O zusammenhängen, was @JamieHanrahan erwähnt. Sam vor 6 Jahren 0
Teilen Sie die ETL (komprimiert als zip), wenn Sie sie nicht analysieren können magicandre1981 vor 6 Jahren 0
@ magicandre1981 Fertig. Ich habe einen Edit EDIT 04/03/18 # 2 hinzugefügt Sam vor 6 Jahren 0
Übrigens, auch die Tatsache, dass Sie über eine große Anzahl von _both_ IRPs und Filter-Manager-IRP-Kontrollstrukturen verfügen, und die beiden Zahlen ziemlich nahe liegen, ist ein starkes Indiz dafür, dass die Symptome zusammenhängen. Jamie Hanrahan vor 6 Jahren 0
Ja, ich stellte mir vor, es ist kein Zufall, dass die Zahlen so nahe sind. Ich vermute, es hat etwas mit I / O zu tun, aber ich habe keine Ahnung, was es sein könnte. Sam vor 6 Jahren 0
@SamuilDichev Ja, es wird durch E / A-Aktivität verursacht. siehe meine [Antwort] (https://superuser.com/a/1300654/174557) magicandre1981 vor 6 Jahren 0

2 Antworten auf die Frage

2
magicandre1981

Die Analyse der Ablaufverfolgung in WPA.exe zeigt, dass die Poolnutzung FMicaus RazerCortex.exedem Zeitpunkt stammt, in dem Dateien ( KernelBase.dll!CreateFileW) erstellt werden.

enter image description here

Dies verursacht auch die Verwendung des IRP (was für ein E / A-Anforderungspaket steht ):

enter image description here

Der Treiber rzudd.sys verursacht auch die Verwendung von IRP:

enter image description here

Aktualisieren Sie also das Razor-Tool oder entfernen Sie es besser (und jede andere mit Razor zusammenhängende Software / Treiber).

Vielen Dank für Ihre Hilfe bei der Analyse. Bist du dir dabei sicher? Ich bin nicht wirklich sicher, was in den Bildern vor sich geht, aber die Zahlen und Größen scheinen kleiner zu sein als für Chrome und insgesamt etwas kleiner. Könnte das wirklich die Ursache sein? Ich werde Razer Cortex jetzt deinstallieren und ein oder zwei Tage überwachen, um zu sehen, was passiert. Ich werde auch wieder eine neue Grafik mit der Hilfe von `typeperf 'erstellen und sie mit der vorherigen vergleichen. Ich werde in ein paar Tagen ein Update posten. Sam vor 6 Jahren 0
Ich kann dir nur sagen, dass ich in der Spur sehen will. Es zeigt nicht, was vorher passiert ist (der größte Teil ist UNKNOWN für einen Prozess ohne Stack (n / a)) magicandre1981 vor 6 Jahren 0
Die Datei rzudd.sys verursacht auch die Verwendung von IRP. Entfernen Sie also wirklich alles, was mit Razor zu tun hat. magicandre1981 vor 6 Jahren 0
Vereinbart - entfernen Sie alles Razer von Ihrem Computer, Ihrer Tastatur und Ihren Mäusen. Jamie Hanrahan vor 6 Jahren 0
Ja, ich bin definitiv nicht dabei, meine Tastatur wegen eines Speicherlecks zu entfernen ... Sam vor 6 Jahren 0
Für Ihre Tastatur sind keine Treiber erforderlich. Wenn Sie nicht bereit sind, einen fehlerhaften Treiber zu entfernen, ist nicht klar, wie wir Ihnen helfen können Ramhound vor 6 Jahren 0
Ich habe den Treiber entfernt und es ist viel besser. Der obige Kommentar wollte, dass sogar Hardware entfernt wurde. Ich mache gleich noch ein paar Tests und wenn alles in Ordnung ist, werde ich es aktualisieren. Sam vor 6 Jahren 0
ok, also der Razor (Cortex) hat dafür gesorgt, dass ich von der Spur aus gesehen habe. [Akzeptieren Sie die Antwort] (https://meta.stackexchange.com/a/5235), um die Frage zu "schließen" magicandre1981 vor 6 Jahren 0
Okay, ich habe gerade ein paar Tests gemacht, nachdem ich RazerCortex entfernt hatte. Nicht ausgelagerter Pool ist insgesamt viel niedriger. Obwohl ich jetzt EtwB, smNp, smCB sehe, sind NVRM-Tags irgendwie hoch, aber nicht annähernd so hoch. Ich habe auch den "typeref" -Test gemacht und ein Diagramm erstellt. Der nicht ausgelagerte Pool wächst immer noch über die Zeit hinaus, aber nichts wie zuvor. Ich werde versuchen, die anderen Tags selbst aufzuspüren oder an anderer Stelle auf superuser.com zu suchen. Soweit diese Frage und die 2 Tags betroffen sind, ist sie gelöst :) Vielen Dank. Sam vor 6 Jahren 0
@SamuilDichev EtwB wird von der Windows Performance-Toolkit-Protokollierung verwendet. Also läufst du es immer noch. magicandre1981 vor 6 Jahren 0
Haha, fair genug. Alles scheint jetzt in Ordnung zu sein, also vielen Dank. Sam vor 6 Jahren 0
@SamuilDichev Gern geschehen ✌️ magicandre1981 vor 6 Jahren 0
-2
typhirz

Ich hatte genau das gleiche Problem. FMic- und IRP-Tags befanden sich konstant an der Spitze und nahmen Gigs eines nicht ausgelagerten Pools in Anspruch, wenn mein Computer längere Zeit ohne ordnungsgemäßen Neustart eingeschaltet war. Ich habe es auf Razer Cortex, meine einzige Razer-Software zur Zeit, festgelegt und als ich es deinstallierte, schrumpfte mein nicht ausgelagerter Pool auf 1,2 GB statt auf 3-4 GB, nachdem ich meinen Computer einige Tage eingeschaltet hatte. Zuvor hatte ich versucht, die Killer Network-Treiber erneut zu installieren und einen Razer-Treiber für ein Gerät zu entfernen, das ich nicht mehr verwendet habe. Beides half jedoch ebenso wenig wie das Entfernen von Cortex.

Dies hilft dem Autor nicht, es sind großartige Informationen, vielleicht sogar eine großartige Antwort auf Ihre Frage Ramhound vor 6 Jahren 1