"Seiteneingabe / Sek. Ist der zu überwachende Zähler, aber Sie sollten sich keine Gedanken darüber machen, wie Windows die Auslagerungsdatei nicht wie * nixes verwendet.
Zuerst müssen Sie verstehen, dass Windows-Seiten nicht rauskommen. Ich zitiere den relevanten Teil von Eric Lipperts Blogpost (leicht bearbeitet), da ich es selbst nicht besser sagen kann:
"RAM kann nur als Leistungsoptimierung angesehen werden. Der Zugriff auf Daten im RAM, in denen die Informationen in elektrischen Feldern gespeichert sind, die sich in der Nähe der Lichtgeschwindigkeit ausbreiten, ist viel schneller als der Zugriff auf Daten auf der Festplatte, in denen Informationen in enormen Mengen gespeichert sind Eisenmetallmoleküle
Das Betriebssystem verfolgt, auf welche Speicherseiten von welchen Prozessen am häufigsten zugegriffen wird, und erstellt eine Kopie davon im RAM, um die Geschwindigkeit zu erhöhen. Wenn ein Prozess auf einen Zeiger zugreift, der einer Seite entspricht, die derzeit nicht im RAM zwischengespeichert ist, führt das Betriebssystem einen "Seitenfehler" aus, geht zur Festplatte und erstellt eine Kopie der Seite von der Festplatte zum RAM, wobei die vernünftige Annahme getroffen wird dass bald wieder darauf zugegriffen werden kann.
Das Betriebssystem ist auch sehr klug, wenn es darum geht, schreibgeschützte Ressourcen freizugeben. Wenn zwei Prozesse dieselbe Codeseite aus derselben DLL laden, kann das Betriebssystem den RAM-Cache zwischen den beiden Prozessen gemeinsam nutzen. Da der Code vermutlich durch keinen der beiden Vorgänge geändert wird, ist es durchaus sinnvoll, die duplizierte Seite des Arbeitsspeichers durch gemeinsame Nutzung zu speichern.
Aber selbst mit cleverem Sharing wird diesem Caching-System irgendwann der Arbeitsspeicher ausgehen. In diesem Fall schätzt das Betriebssystem, auf welche Seiten in Kürze am wenigsten zugegriffen werden kann, schreibt sie auf die Festplatte, wenn sie geändert wurden, und gibt den Arbeitsspeicher frei, um etwas einzulesen, auf das mit höherer Wahrscheinlichkeit erneut zugegriffen werden kann bald.
Wenn das Betriebssystem falsch vermutet oder wenn einfach nicht genug RAM vorhanden ist, um alle häufig verwendeten Seiten in allen laufenden Prozessen zu speichern, beginnt der Computer mit dem „Thrashing“. Das Betriebssystem verbringt die ganze Zeit mit dem Schreiben und Lesen des teuren Festplattenspeichers, die Festplatte läuft ständig und Sie erledigen keine Arbeit.
Dies bedeutet auch, dass "Nicht genügend RAM" selten zu einem "Nicht genügend Arbeitsspeicher" -Fehler führt. Anstelle eines Fehlers führt dies zu einer schlechten Leistung, da die vollen Kosten der Tatsache, dass sich der Speicher tatsächlich auf der Festplatte befindet, plötzlich relevant werden.
Eine andere Sichtweise ist, dass die Gesamtmenge an virtuellem Speicher, die Ihr Programm verbraucht, für seine Leistung nicht wirklich relevant ist. Was relevant ist, ist nicht die Gesamtmenge des verbrauchten virtuellen Speichers, sondern (1) wie viel dieses Speichers nicht mit anderen Prozessen geteilt wird, (2) wie groß die "Arbeitsmenge" der häufig verwendeten Seiten ist und ( 3) ob die Arbeitssätze aller aktiven Prozesse größer sind als der verfügbare RAM.
Inzwischen sollte klar sein, warum Fehler aufgrund von "Nicht genügend Arbeitsspeicher" normalerweise nichts damit zu tun haben, wie viel physischer Arbeitsspeicher Sie haben oder wie viel Speicher verfügbar ist. Es geht fast immer um den Adressraum, der unter 32-Bit-Windows relativ klein und leicht fragmentiert ist. "
Ein paar zusätzliche Punkte:
- DLLs und Programmdateien werden immer nur ein- und nie ausgelagert, da sie sich bereits auf der Festplatte befinden (und in der Regel werden die ersten Seiten freigegeben, wenn der physische RAM fast leer ist).
- Es ist weitaus wahrscheinlicher, dass Ihnen die freien Seitentabelleneinträge ausgehen oder dass Sie mehr Speicherplatz benötigen als bei anderen Speicherproblemen (abgesehen von der bereits erwähnten insgesamt schlechten Leistung)
- Selbst wenn Sie keine Auslagerungsdatei ausführen, können Seitenfehler auftreten
- Im Allgemeinen sagt der Blick auf den festgeschriebenen Speicher mehr darüber aus, wie ein Prozess Speicher verwendet
Ein vollständiges Bild der Speicherverwaltung in Windows finden Sie unter
Der Virtual-Memory-Manager in Windows NT
Wenn Sie glauben, dass Sie ein Speicherproblem haben, empfehle ich zunächst, diese Präsentation zur Fehlerbehebung bei Windows-Speicher zu lesen
Hier ist eine großartige Erklärung, warum manchmal "kein Speicher mehr vorhanden" ist, wenn Sie sich nicht aufgrund einer Speicherfragmentierung befinden:
Siehe auch Grenzen von Windows verschieben: Physischer Speicher
Weitere Informationen zu virtuellem Speicher, Speicherfragmentierung und -lecks sowie WOW64
RAM, virtueller Speicher, Auslagerungsdatei und all das Zeug (Microsoft-Unterstützung)
Aktualisieren:
Windows 10 macht etwas anderes mit dem Speicher und im Laufe der Zeit wird ein Prozess namens "System und komprimierter Speicher" angezeigt. Windows 10 fügt der Auslagerungsliste einen "Komprimierungsspeicher" hinzu. Bei diesem RAM handelt es sich um USER-Speicher, der dem System gehört (normalerweise hatte das System nur Kernel-Speicher). Dieser Speicher wird an Ort und Stelle komprimiert, um eine durchschnittliche Reduzierung auf etwa 30% zu erreichen. Auf diese Weise können mehr Seiten im Speicher abgelegt werden (für diejenigen, die rechnen, ist das 70% mehr Speicherplatz). Beachten Sie, dass Seiten aus dem Komprimierungsspeicher (Benutzermodus Systemprozessraum) auf den geänderten Speicherplatz abgelegt werden können, wenn der Speicher immer noch unter Druck steht Liste (komprimiert), die dann in die physische Auslagerungsdatei geschrieben werden kann. Das System erkennt, dass sie aus dem Benutzermodus des Systems stammen und komprimiert sind, und versucht nicht, sie wieder in den Speicher zu stellen. Auf Windows 10-Systemen sieht es also so aus, als würde das System RAM inhalieren. Tatsächlich wird jedoch nur versucht, die Verwendung von RAM effizienter zu gestalten. Mac-Benutzer verwenden seit 2013 eine ähnliche Funktion, und neuere Versionen des Linux-Kernels verwenden eine Version der Speicherkomprimierung. Diese Methode zur Erhaltung des Arbeitsspeichers ist nicht nur besser, sondern auch bei anderen Betriebssystemen bereits üblich.