Nun, zunächst einmal, bevor ich auf eine detailliertere Antwort eingehe. In Ihrem ersten Bildschirmfoto liegt Ihr Non-Paged Pool (eine Art Kernel-Speicherverbrauch) bei 1,3 GB. Das erscheint mir ungewöhnlich hoch, besonders für nur 30 Minuten nach dem Booten. Ich denke, ich könnte mir vorstellen, dass der NP-Pool nach längerer Nutzung oder mit einem Programm, das wie ein Sieb ausläuft, so hoch wird. Im Gegensatz dazu ist mein NP-Pool normalerweise zwischen 100 und 200 Megabyte groß, und mein ausgelagerter Pool kann bis zu 400 oder 500 Megabyte groß sein (und das, nachdem mein System wochenlang ohne Neustart gelaufen ist).
Sie können einige zusätzliche Spalten im Task-Manager aktivieren, indem Sie mit der rechten Maustaste auf die Spaltenüberschriften klicken und “Spalten auswählen” wählen. Sie sollten Working Set (private)
, Working Set (shared)
, Commit
und NP Pool
hinzufügen. Ich würde alle Prozesse aller Benutzer durchsuchen und nachsehen, ob einer von ihnen einen NP-Pool von mehr als 256 KB hat. Wenn Sie welche sehen, insbesondere solche, die deutlich höher sind, könnte das die Ursache des Problems sein, oder zumindest ein Teil davon.
Ihr gesamter Arbeitsspeicher, die Menge des von einem Prozess verwendeten physischen Speichers, ist die Kombination aus dem privaten und dem gemeinsamen Arbeitsspeicher (WS). Bei den meisten Prozessen ist der private Speicher größer, es kann jedoch einige geben, die einen größeren Anteil des gemeinsamen Arbeitsspeichers verwenden. Die beiden sollten normalerweise die Summe des gesamten WS ergeben. Commit ist die Menge Ihres Working Sets, die in den Backing Store (in den meisten Fällen die Windows-Auslagerungsdatei) übertragen wurde. Bei Anwendungen im Hintergrund ist der Commit-Wert häufig größer als der WS-Wert, was darauf hindeutet, dass ein großer Teil des Auslagerungspools aus dem Speicher in die Auslagerungsdatei ausgelagert wurde (was bei Desktop-Anwendungen, die minimiert und eine Zeit lang nicht verwendet wurden, ziemlich normal ist).
Der Non-Paged Pool ist Speicher, der nicht aus dem physischen Speicher ausgelagert werden kann und auch nie ausgelagert werden wird… das ist effektiv Ihr permanenter minimaler physischer Speicherverbrauch. NP-Pool-Speicher enthält oft Programmcode und kritische Abschnitte, die sich im physischen Speicher befinden müssen, um sich korrekt oder sicher zu verhalten, spezielle Heaps usw. Wenn von 60 Prozessen alle 256 KB NP-Pool-Speicher haben, dann liegt Ihr absolutes Minimum an physischem Speicherverbrauch bei etwa 15.360 KB. In den meisten Fällen haben ein oder zwei Anwendungen einen NP-Pool von 256 KB, während die meisten weniger haben, oft deutlich weniger (oder gar keinen). Es ist höchst unwahrscheinlich, dass das System jemals die Gesamtheit aller arbeitenden Prozesse auslagern würde, also erwarten Sie nicht, dass die Speichernutzung jemals so niedrig wird.
Schließlich besteht der Sinn von mehr Speicher darin, das Auslagern von Daten in und aus dem erweiterten Speicherbereich (Swap, Auslagerungsdatei) auf einer physischen Festplatte zu vermeiden. Paging ist ein Prozess, bei dem Blöcke des zugewiesenen physischen Speichers verschoben werden, wobei einige auf die Festplatte verschoben werden und andere von der Festplatte in den physischen Speicher gebracht werden. Paging ist, um es einfach zu halten, höchst unerwünscht. Es ist nicht per se “schlecht”, aber es kann eine echte Leistungsbremse sein, wenn es zu häufig auftritt. Der eigentliche Sinn einer Vergrößerung des gesamten physikalischen Arbeitsspeichers in einem System besteht darin, mehr Prozessen die Möglichkeit zu geben, mehr von ihrem Commit im physikalischen Speicher zu halten (größeres Working Set). Wenn mehr ausgeführte Prozesse mehr Speicher verwenden, ist die Gesamtleistung des Systems und die Leistung der aktiven Prozesse in der Regel höher, da die physische Festplattenaktivität im Zusammenhang mit Speicherzugriffen (insbesondere Seitenfehlern) geringer ist.
Windows verwaltet den Speicher für Sie und paginiert automatisch Daten in und aus dem Speicher in die Auslagerungsdatei (Swap). Wenn Sie einen Prozess ausführen, der 9 GB Speicher benötigt, und Ihr System bereits 4 GB (von 12 GB) verwendet, findet das System automatisch heraus, welche Prozesse nicht sofortigen Zugriff auf ihren gesamten Arbeitsspeicher benötigen, und paginiert einen Teil oder den gesamten ausgelagerten Pool in die Auslagerungsdatei aus, um die zusätzlichen 1 GB freizugeben. Wenn Ihr großer Prozess schließlich mehr Speicher benötigt, wird Windows die Arbeitsmenge anderer Prozesse weiter reduzieren, bis es genug freien Platz hat, um den neu angeforderten Block zuzuweisen. Ihr großer Prozess könnte schließlich den gesamten verfügbaren Speicher verbrauchen, mit Ausnahme des NP-Pools und vielleicht etwas zusätzlichem minimalen Overhead für periodisch ausgeführte Prozesse, die es Windows nicht erlauben, mehr von ihrer Arbeitsmenge freizugeben (d. h. sie haben anstehende Fehlseiten, die Windows sonst aus dem physischen Speicher auslagern würde, aber weil sie angefordert werden, können sie nicht verschoben werden).
Wenn ein Prozess mehr Speicher benötigt, als er zugreifen darf (32bit-Prozesse können in der Regel auf 2Gb zugreifen, und einige etwas weniger als 4Gb mit verbesserten Techniken, während 64bit-Prozesse in der Regel auf etwa 48Gb Speicher zugreifen können), dann wird Windows manchmal versuchen, seinen Speicher mit Swap Space zu virtualisieren. Wenn eine 32-Bit-Applikation die maximal erlaubten 2 GB Speicher nutzen möchte, aber nur 1,2 GB verfügbar sind, reserviert Windows die vollen 2 GB in der Auslagerungsdatei und verschiebt die prozesseigenen Daten nach Bedarf in und aus der Auslagerungsdatei, um die Speichernutzung der App zu unterstützen. Die gesamte “Speichernutzung” kann in diesem Fall größer erscheinen als der verfügbare physische Speicher, wenn man nach Total Commit. Total Commit erreicht in der Regel den Maximalwert der Gesamtgröße der Auslagerungsdatei, die, wenn sie vom System verwaltet wird, in der Regel das 2-3-fache des physischen Speichers beträgt. In Ihrem Fall würde Total Commit etwa 24 GB betragen, also das Doppelte des physischen Speichers von 12 GB (dies wird in Ihrem ersten Bildschirmfoto angezeigt, wo es heißt: Commit (GB) 3 / 23).
Ein letzter Punkt. Sie sagten in Ihrer Antwort, dass Sie 16 GB RAM haben, während der Task-Manager nur 12 GB RAM anzeigt. Hier gibt es zwei Möglichkeiten. Entweder hat Ihr System wirklich nur 12 GB RAM, oder einer Ihrer Sticks wird nicht richtig registriert. Wenn ein Stick des Arbeitsspeichers (ich gehe von 4x 4Gb-Sticks aus) defekt ist, sitzt er vielleicht nicht ganz richtig in Ihrer Hauptplatine, oder Ihre Hauptplatine hat ein Problem mit der Speichererkennung.
Um zu überprüfen, ob es sich um letzteres handelt, sollten Sie zuerst Ihr Motherboard-BIOS auf die neueste Version aktualisieren. Ich hatte ein ähnliches Problem… meine sechs Tripple-Channel-DDR3-Sticks (6x 2Gb) waren alle in Ordnung, nachdem ich sie einzeln getestet hatte… aber mein Motherboard entschied zufällig, einen oder zwei von ihnen nicht zu zählen, was dazu führte, dass ich oft nur 8Gb Ram hatte. Ein BIOS-Update hat das Problem behoben, und ich habe jetzt zuverlässigen Zugriff auf alle 12 GB meines Speichers.