Was ist die Ursache für eine hohe CPU-Auslastung von "System und komprimiertem Speicher" in Windows 10?


39

Für Windows 10 muss eine Beobachtung auf meinem Laptop gemacht werden, auf dem 24-G-Speicher verfügbar ist und 2,5 G verwendet werden. Es gibt keinen "Speicherdruck". Andere Fragen haben sich mit dem Speicherverbrauch befasst (was hier nicht das Problem ist). Bei allen hier und anderswo gestellten Fragen konnte ich in den letzten ein oder zwei Monaten nach einem der Windows 10-Updates keine ausreichende Erklärung für das Problem dieser übermäßigen CPU-Auslastung finden.

Ich kann akzeptieren, dass dieser Dienst oder Prozess von Nutzen ist, aber ich versuche, ihn kontinuierlich auszuführen und zusätzliche CPU-Ressourcen zu nutzen. Infolgedessen kann ich das Problem lösen, indem ich den Akku weniger effizient benutze.

In einem Artikel auf dieser Website wurde vorgeschlagen, SuperFetch zu deaktivieren und einen Registrierungseintrag für PrefetchParameters auf 0 zu setzen. Ich habe beides ausgeführt und einen Neustart durchgeführt.

Ich starte den Computer neu, schalte den Bildschirmschoner aus und starte den Task-Manager. Nach einigen Minuten beansprucht der Dienst mit der Bezeichnung "System und komprimierter Speicher" durchgehend 5% meiner CPU. Meine Basis-CPU-Auslastung beträgt vielleicht 1%, was den Lüfter niedrig hält. Wenn der Dienst "System und komprimierter Speicher" mit 5% ausgeführt wird, werden die Lüfter hochgefahren. Und läuft einfach weiter.

Dummheit. Warum muss dieser Dienst konstant ohne Speicherdruck ausgeführt werden? Gibt es zusätzliche Mechanismen, die ich ausprobieren kann, um es auszuschalten oder festzustellen, was es tatsächlich tut? Gibt es irgendwo Protokolleinträge? Oder ein detailliertes Diagnosewerkzeug?

How-to-Disable-Windows-10-Speicher-Komprimierung - keine wirklichen Antworten hier

Windows-10-System-Prozess unter-massiven-Mengen-von-RAM

17993-windows-10-memory-compression

Desktop-Build-10525-und-Windows-10-Speicher

www.techish.net/system-und-komprimierter-speicher/

Windows-10-Build-1511-Überhitzung-CPU-Lüfter-immer

Windows Performance Recorder - Benötigen Sie jetzt einen Link für Informationen zur Interpretation der Informationen

schrubben Wartung


1
Ja, ich habe nie verstanden, warum Windows die Auslagerungsdatei verwendet, wenn genügend Arbeitsspeicher vorhanden ist. Wenn Sie die Auslagerungsdatei deaktivieren, kann das Problem möglicherweise behoben werden.
Moab


@Moab: Die Annahme, dass Windows "die Auslagerungsdatei verwendet, wenn genügend Speicher vorhanden ist", ist auf eine falsche Bezeichnung im Task-Manager von Windows XP zurückzuführen. Sie haben die Diagramme als "PF-Verwendung" bezeichnet, wenn es "Commit Charge" hätte sein sollen. Wenn Sie PerfMon verwenden, um die tatsächliche Verwendung von Auslagerungsdateien zu untersuchen, werden Sie feststellen, dass diese im Allgemeinen viel kleiner sind als erwartet.
Jamie Hanrahan

2
Erfassen Sie eine Spur der CPU-Auslastung. Installieren Sie das WPT von Win10 SDK: dev.windows.com/en-us/downloads/windows-10-sdk, führen Sie WPRUI.exe aus, wählen Sie CPU, Disk, VirtualAlloc, ResidentSet aus und erfassen Sie 1-2 Minuten der SYSTEM-Nutzung und speichern Sie es in eine ETL-Datei. Zippen Sie den Ordner ETL + NGENPDB in eine 7z / RAR-Datei, laden Sie die komprimierte Datei auf OneDrive
hoch

@ magicandre1981: danke, dass du eine mögliche methodik anbietest. Die Datei finden Sie unter oneunified.net/files/rpb.20160102.WPR.7z . Wenn Sie etwas sehen, können Sie dann Ihre Methodik veröffentlichen? Ich bin mir sicher, dass viele andere Posts von dieser Technik Gebrauch machen könnten. ... Nochmals vielen Dank.
Raymond Burkholder

Antworten:


26

Die Analyse der ETL-Datei mit WPA zeigt, dass die CPU-Auslastung nicht von der Systemspeicherkomprimierung herrührt. Es kommt von ntoskrnl.exe!MiScrubMemoryWorker:

Line #, DPC/ISR, Process, Stack Tag, Stack, Count, TimeStamp (s), % Weight
8, , , ,    |    |    |- ntoskrnl.exe!MiScrubMemoryWorker, 79667, , 12,45
9, , , ,    |    |    |    ntoskrnl.exe!MiScrubNode, 79667, , 12,45
10, , , ,   |    |    |    ntoskrnl.exe!MiScrubNodeLargePages, 79667, , 12,45
11, , , ,   |    |    |    ntoskrnl.exe!MiScrubNodeLargePageList, 79667, , 12,45
12, , , ,   |    |    |    |- ntoskrnl.exe!MiScrubPage, 79663, , 12,45
13, , , ,   |    |    |    |    |- ntoskrnl.exe!RtlScrubMemory, 79653, , 12,45
14, , , ,   |    |    |    |    |    |- ntoskrnl.exe!RtlpGenericRandomPatternWorker, 38549, , 6,02

Dies ist eine Funktion zum Testen des Speichers auf Fehler, indem einige Muster gefüllt / gelesen werden ( ntoskrnl.exe!RtlpGenericRandomPatternWorker).

Dies ist beabsichtigt und geschieht, wenn die Wartungsaufgabe im Leerlauf startet, wenn Ihr Gerät im Leerlauf ist.


Danke für das. Das wirft ein Licht auf die Aktivität. Nachdem Sie das Wort Leerlauf erwähnt haben, können zwei Kommentare abgegeben werden. 1) Die ETI-Datei, die Sie ausgewertet haben, wurde erstellt, während ich auf der Konsole aktiv war, und die CPU lag bei 10% bis 15% für 'System und komprimierten Speicher' und wurde schließlich beendet. So konnte ich irgendeine Aktivität festhalten. Und Sie haben es als wartungsfrei bewertet. 2) im nächsten Kommentar ....
Raymond Burkholder

10
Unter Win 10 ging ich zum Schließen zu: Start-> Systemsteuerung-> Verwaltung-> Taskplaner Taskplaner-Bibliothek-> Microsoft-> ​​Windows-> Speicherdiagnose Es gibt zwei Werbebuchungen. Das Ausführen der Task hängt möglicherweise von Protokollereignissen ab. Ich bin mir nicht sicher, ob sie nur existieren müssen oder ob sie beim Eintritt in das Protokoll ausgelöst werden. Ich habe den RunFullMemoryDiagnosticEntry deaktiviert. Nach einigen Minuten sehe ich die Auslastung von 5% bis 12% nicht mehr. In den Eigenschaften des Tasks auf der Registerkarte "Einstellungen" können möglicherweise Einstellungen vorgenommen werden, die nicht sehr häufig ausgeführt werden. .... ein andermal testen.
Raymond Burkholder

2
Schön zu hören, dass es Ihr Problem löst.
magicandre1981

1
Um dem Kommentar hinzuzufügen, hatte ich 2 Aufgaben definiert - RunFullMemoryDiagnostic und ProcessMemoryDiagnosticEvents, die wichtigste ist die zweite. Es wurden 4 Trigger aktiviert - "Protokoll: System, Quelle: Anwendungs-Popup", "Protokoll: Anwendung, Quelle: Anwendungsfehler" und zwei verbleibende. Das Deaktivieren der beiden Auslöser löste mein Problem. Einige Apps, die ich entwickle, schreiben in das Ereignisprotokoll und verursachen Speicherüberprüfungen. Zwei verbleibende Trigger hängen vollständig vom System ab, daher ist es besser, sie nicht zu deaktivieren
zihotki

3
Ok, ein Troll hat es abgelehnt. Ja, xperf / WPR / WPA ist Level 500 Expertenwissen, also nichts für dich, ungebildete idiotische Troll- Gesichtspalme
magicandre1981

9

Zuerst re. CPU-Auslastung: Der Prozess "System und komprimierter Speicher" (kein Dienst) führt viele Funktionen aus. Nur weil Sie sehen, dass die CPU-Zeit verwendet wird, bedeutet dies noch lange nicht, dass der Speicherinhalt komprimiert wird. Um dies herauszufinden, verwenden Sie den Prozess-Explorer, um die Namen der Thread-Funktionen in dem Prozess zu finden, der die CPU-Zeit verwendet. Dazu müssen Sie Symbole in Process Explorer konfigurieren, wie in dieser Antwort beschrieben .

Der Speicher, der komprimiert wird, ist der Speicher, der war

  • Teil des privaten Arbeitssets eines Prozesses (dh geteilt mit jedem anderen Prozess); und
  • geändert, während es in diesem Prozess war; und
  • anschließend aufgrund eines Seitenwechsels aus dem Prozess entfernt und in die Liste der geänderten Seiten aufgenommen. (Dieser Algorithmus wurde für Windows 10 nicht wesentlich geändert. Sie erhalten nicht mehr Seitenersatz als früher.)

Nun ... wenn Sie keine Auslagerungsdatei haben, bleibt diese nur in der Liste der geänderten Seiten (bis der Vorgang endet). (Bitte beachten Sie: Durch Deaktivieren Ihrer Auslagerungsdatei wird das bisher beschriebene Verhalten nicht geändert.)

Wenn Sie eine Auslagerungsdatei haben (was natürlich sehr zu empfehlen ist), unterscheidet sich das Verhalten zwischen Windows 10 und früheren Versionen.

  • Vor Windows 10 wurde es in Kürze in die Auslagerungsdatei geschrieben, und die physischen Seiten wurden in die Liste der Standby-Seiten verschoben. Dies geschieht durch einen "Modified Page Writer" -Thread im Systemprozess.

  • Unter Windows 10 wird es zunächst komprimiert (etwa halb so viel Speicherplatz wie früher benötigt) und im Adressraum des Benutzermodus des Systemprozesses (jetzt als "System und komprimierter Speicher" bezeichnet) gespeichert. Falls erforderlich, um Speicherplatz freizugeben, kann dieser in die Auslagerungsdatei geschrieben und für andere Zwecke freigegeben werden. (Beachten Sie, dass die Vorteile der Speicherkomprimierung auch für den Speicherplatz der Auslagerungsdatei und die E / A-Zeit gelten.)

Also wirklich, das ist eine gute Sache. Unabhängig davon, wie viel zusätzlicher Arbeitsspeicher vom Systemprozess verwendet wurde, waren vor Windows 10 etwa doppelt so viele Änderungen in der Liste der geänderten Seiten oder der Standby-Liste enthalten. Sicherlich nimmt es nicht mehr Platz in Anspruch als früher.

Sie können diesen Mechanismus (gemäß meinen letzten Tests) deaktivieren, indem Sie Ihre Auslagerungsdatei entfernen. Dies hat jedoch keine Auswirkungen auf das Seitenersetzungsverhalten. Geänderte private Seiten, die aus Prozessen entfernt wurden, können einfach nicht für andere Zwecke freigegeben werden. Statt sich im Systemprozess zu befinden, befindet sich der Speicher (etwa doppelt so viel davon) nur in der MPL.


Wenn im Prozess-Explorer keine Debug-Symbole geladen sind, wird Folgendes angezeigt: ntoskrnl.exe! CcCopyWriteWontFlush + 0xb50 Werden beim Hinzufügen von Symbolen weitere Details angezeigt? Es gibt 12 Instanzen, von denen eine 12,5% CPU beansprucht. Es gehört zum Systemprozess.
Raymond Burkholder

@RaymondBurkholder Weitere Informationen erhalten Sie möglicherweise, wenn Sie sich den Stapel der Threads ansehen.
Daniel B

@DanielB: Ja, das war auf der Registerkarte "Threads" im Popup, nachdem Sie die Eigenschaften des Systemprozesses in PID 4 im Prozess-Explorer überprüft haben. Erläuterung: Die Stapelschaltfläche zeigt nichts an, die Modulschaltfläche zeigt jedoch an, dass sie aus der Datei ntkmlmp.exe vom 22.11.2015 stammt. Was ich denke, ist das ungefähre Datum, an dem dieses zusätzliche CPU-Ding angefangen hat.
Raymond Burkholder

Dies ist nur das Datum, an dem sich ein Windows-Update zuletzt auf diese Datei ausgewirkt hat. Es ist schließlich eine Systemkomponente.
Daniel B

@RaymondBurkholder Die Anzeige "StartAddress" ohne konfigurierte Symbole ist einfach nicht sinnvoll. Wenn Sie einen Symbolnamen (wie "CcCopyWriteWontFlush") plus einen Versatz ("+ 0xb50") sehen, ist der Symbolname mit ziemlicher Sicherheit falsch. Was Sie wollen, ist zB ntoskrnl.exe! ExpWorkerThread, ohne dass ein Offset angezeigt wird. Oh ... Sie werden Offsets für Module sehen, für die MS keine Symbole bereitstellt - fast immer handelt es sich um Treiber von Drittanbietern. Sie werden wie nvhda64v.sys + 0x30ac als moduleName + offset angezeigt. Wir können keine Symbole für diese erhalten, aber der Name des Moduls allein ist oft hilfreich beim Debuggen von Fällen.
Jamie Hanrahan

3

Es kann sich um die Software "Killer Network Manager" handeln. Wenn Sie es deinstallieren, verschwindet das Problem, aber auch das Netzwerk, da auch die Netzwerkadaptertreiber deinstalliert werden. Das gute Neue ist, es gibt eine Lösung.

Rufen Sie zunächst http://www.killernetworking.com/support/driver-downloads/item/killer-suite auf und laden Sie die neue Version herunter, installieren Sie sie jedoch noch nicht. Einfach speichern und wissen, wo sich die Datei befindet.

Deinstallieren Sie dann die aktuelle Version über die Systemsteuerung. Sie müssen den Computer neu starten. Führen Sie nach dem Sichern des Computers das neue Software-Installationsprogramm aus. Die neue Version, die im Januar 2016 veröffentlicht wurde, scheint nicht dasselbe Problem zu haben.

Ich denke, die alte Version der Software hat einen Speicherverlust, der dieses Problem verursacht.

Die "Killer Network Manager" -Software ist nur zu Ihrer Information Teil der Qualcomms Aethos Killer Wireless-AC / Wireless-N- und verdrahteten E2200 / E2400-Netzwerkkarten. Ohne die Software haben Sie kein Internet.


Ohne den Fahrer haben Sie kein Internet. Sie können den Treiber ohne all die sinnlosen Trickser und Bloatware bekommen, die der Hersteller für Sie benötigt. Am Ende der Seite, die Sie verlinkt haben, finden Sie einen Link zum Herunterladen nur für Treiber
Mokubai

2

Ich hatte ein ähnliches Problem, nachdem ich kürzlich auf Windows 10 aktualisiert hatte. Meine Maus kam plötzlich zum Stillstand, dh sie ruckelte, als ich sie über den Bildschirm bewegte, was die Bedienung sehr erschwerte.

Ich habe die CPU-Auslastung im Task-Manager überprüft und festgestellt, dass das Problem auftrat, als der Prozess "System and Compressed Memory" (System und komprimierter Speicher) anfing, 5-15% der CPU zu beanspruchen. Ich habe Process Explorer ausgeführt und die Threads überprüft und wie Raymond habe ich festgestellt, dass der Hauptschuldige CcWriteCopyWontFlush mit einem Offset von 0xb50 war. Ein bisschen googeln führte mich zu dieser Seite. Ich habe versucht, die Windows-Symbole wie hier vorgeschlagen zu installieren, aber es hat mir nie geholfen, den Versatz zu beheben.

Das Problem war auch sporadisch. Ich würde ein paar Stunden arbeiten und dann würde es für ein paar Minuten auftauchen und mich verrückt machen. Ein Neustart würde es für eine Weile heilen und dann würde es zurückkehren.

Aufgrund der Antworten hier habe ich mich entschlossen, die Treiber auf meinem PC zu suchen. Deshalb habe ich mit dem Geräte-Manager begonnen und dort habe ich meine Antwort erhalten. Wenn das Problem auftrat, wurde mein Geräte-Manager-Fenster ständig leer und wie alle ein oder zwei Sekunden aktualisiert. Es war im Wesentlichen nicht lesbar. More Googling schlug vor, ein externes USB-Gerät anzuschließen und wieder anzuschließen. Ich habe es an mein Samsung-Handy gebunden, das ich jeden Tag über ein an einen USB-Anschluss angeschlossenes Kabel von meinem PC auflade. Ich verwende außerdem den PC und MyPhoneExplorer, um mein Telefon mit Outlook zu synchronisieren, sodass ich ein paar Laufwerke mit den Samsung-Treibern für den PC dem internen und externen RAM meines Telefons zuordnen kann. Ich konnte feststellen, dass diese Laufwerke im Geräte-Manager häufig angezeigt und ausgeblendet werden.

Mein Handy ist ein Galaxy S2 und ungefähr 4 Jahre alt. Ich hatte über ein Jahr lang Verbindungsprobleme mit dem Micro-USB-Port. Das kann die sporadische Natur des Problems erklären, oder es kann die beschissenen Samsung-PC-Treiber für mein Telefon sein. Wenn es nur das Kabel wäre, weiß ich nicht, warum ein Neustart das Problem für eine Weile behebt, daher ist es immer noch ein Rätsel, aber zumindest kenne ich die Quelle und kann es beheben.

Das Trennen meines Telefons ist der einfachste Weg, um das Problem zu lösen, und ich werde es sowieso fallen lassen, da es so alt ist. Ich frage mich also, ob Raymond auch einen Samsung-Gerätetreiber mit ähnlicher Software auf seinem PC hatte. Raymond, wenn Sie noch einchecken, lassen Sie es mich wissen.

Wie ich bereits erwähnte, war das Kabel schon lange beschissen, lange vor dem Upgrade von Windows 7 auf Windows 10, und die Samsung-Software war immer schrecklich, aber in Windows 7 hatte die Flakiness keinen Einfluss auf meinen anderen PC-Betrieb. In Windows 10 wurde die Maus so ruckartig, dass sie fast unbrauchbar wurde. Es fiel mir extrem schwer, auf einem Ziel zu landen, und ich glaube, die Tastatur war auch betroffen, weil das Drücken von Tasten fehlschlug. Es ist seltsam, wie diese Faktoren zusammenhängen, und ich weiß nicht, was ich Microsoft zur Verbesserung von Windows 10 empfehlen soll, aber ich bin jetzt der Meinung, dass Windows 10 ein bisschen "heikel" ist. Mit Vorsicht verwenden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.