Im Task-Manager von Windows 7 kann ich verschiedene Spalten zum Anzeigen auswählen. Es gibt eine Menge, die mit Speicher und Speichernutzung zu tun haben, aber ich bin mir nicht sicher, was das alles bedeutet.
Ich habe eine niederländische Installation von Windows, daher versuche ich, sie zu übersetzen. da ich mir der englischen namen nicht sicher bin.
In Ordnung:
- Workingset
- Spitzenarbeitssatz
- Privates Arbeitsset
- Gebühr festschreiben
- Ausgelagerter Pool
- Nicht ausgelagerter Pool
windows-7
memory
task-manager
Simon Verbeke
quelle
quelle
Antworten:
Was ist ein Arbeitsset und wofür wird es verwendet?
Ein Working Set ist eine Untermenge von virtuellen Seiten, die sich im physischen Speicher befinden.
In Windows gibt es mehrere Arten von Arbeitssätzen:
Prozessarbeitssätze enthalten die Seiten, auf die von Threads innerhalb eines einzelnen Prozesses verwiesen wird.
Die Systemarbeitsgruppe enthält die residente Teilmenge des auslagerungsfähigen Systemcodes (dies schließt hauptsächlich den Kernel und die geladenen Treiber ein), einschließlich des ausgelagerten Pools und des Systemcaches.
Sitzungsarbeitssätze , die vom Windows-Subsystem zugewiesene residente Teilmengen von sitzungsspezifischen Daten im Kernelmodus , ausgelagerten Sitzungspools, Sitzungszuordnungsansichten und andere Sitzungstreiber enthalten.
Im Wesentlichen wird anhand eines Arbeitssets entschieden, wie viel physischer Speicher verwendet werden kann, um viel Paging zu vermeiden. Wenn ein Seitenfehler auftritt, werden die Grenzen des Arbeitssatzes und die Menge des freien Speichers auf dem System untersucht. Falls erforderlich, lässt der Speichermanager zu, dass ein Prozess auf sein Arbeitssatzmaximum wächst. Wenn der Speicher knapp ist, ersetzt Windows Seiten in einem Arbeitssatz, wenn ein Seitenfehler auftritt.
Windows versucht, Speicher verfügbar zu halten, indem es geänderte Seiten auf die Festplatte schreibt. Wenn der Arbeitsspeicher knapp wird, versucht der Arbeitsgruppenmanager, die meisten Arbeitsgruppen zu kürzen, um den verfügbaren physischen RAM-Speicher des Systems zu erhöhen. Bei Prozessen mit einer größeren Anzahl von Seiten ist die Tendenz zum Betrachten höher.
Der Standardarbeitssatz für einen Prozess besteht aus mindestens 50 Seiten und höchstens 345 Seiten. Limits können geändert werden, aber die Standardeinstellungen reichen in den meisten Anwendungsfällen aus. Außerdem muss beachtet werden, dass die maximale Größe des Arbeitssatzes das beim Start berechnete systemweite Maximum nicht überschreiten kann.
Windows meldet die Gesamtmenge, den Spitzenwert und den privaten Umfang des physischen Arbeitsspeichers, der von den virtuellen Arbeitssatzseiten für einen Prozess verwendet wird. Privat gibt den Speicher an, der von den Prozessen nicht gemeinsam genutzt wird.
Was ist eine Festschreibegebühr und wofür wird sie verwendet?
Seiten im virtuellen Adressraum eines Prozesses sind frei, reserviert oder festgeschrieben. Anwendungen können den Adressraum reservieren und ihn dann festschreiben . Die Reservierung selbst beansprucht weder Speicherplatz noch Auslagerungsspeicher. Sie wird hauptsächlich durchgeführt, um den Speicherplatz zu reduzieren, indem die Seitenzusagen aufgeschoben werden.
Festgeschriebene Seiten sind Seiten, die beim Zugriff letztendlich in gültige Seiten im physischen Speicher übersetzt werden. Sie sind entweder privat und gemeinsam nutzbar oder einer Ansicht eines Abschnitts zugeordnet. Ein Abschnitt kann entweder Shared Memory oder Mapped Files sein . Wenn festgeschriebene Seiten einem Teil einer zugeordneten Datei zugeordnet sind, müssen sie möglicherweise beim Zugriff von der Festplatte eingelesen werden.
Die bekannteste zugeordnete Datei ist die Auslagerungsdatei. Hier werden geänderte Seiten gespeichert, die von einigen Prozessen noch verwendet werden, jedoch auf die Festplatte geschrieben werden mussten. Auf diese Weise kann der Speicher einfacher geleert werden, ohne dass zuvor E / A-Schreibvorgänge ausgeführt werden müssen.
Der Speichermanager protokolliert die Kosten für das private Festschreiben auf globaler Basis und auf Prozessbasis als Auslagerungsdateikontingent. Diese Werte werden dann verwendet, um zu bestimmen, wie oft in die Auslagerungsdatei geschrieben werden soll. Bitte beachten Sie, dass die Speicherfreigabe über den Mechanismus der Arbeitssätze erfolgt ...
Wenn sich etwas nicht mehr im Speicher befindet, wird es aus der Auslagerungsdatei geladen.
Windows-Berichte schreiben eine Gebühr als die Gesamtmenge an Speicher fest, die ein Prozess verwendet, für den es keinen Sicherungsspeicher gibt. Es summiert im Wesentlichen die Menge an physischem RAM, die in der Auslagerungsdatei noch nicht vorhanden ist, und subtrahiert andere zugeordnete Dateien von dieser.
Ein Sicherungsspeicher ist ein Speicher, der eine Sicherung der Daten enthält. Wenn Sie beispielsweise ein Bild in den Speicher mappen, befindet sich das Bild sowohl im Speicher als auch auf Ihrer Festplatte. Daher ist es nicht sinnvoll, dieses Image als Speichernutzung zu berechnen, da Sie bei hohen Speicheranforderungen immer von der Festplatte darauf zugreifen können.
Was sind Speicherhaufen und wofür werden sie verwendet?
Bekannt als der ausgelagerte und der nicht ausgelagerte Pool ...
System-Threads aus dem Kernel haben keinen Adressraum wie Prozesse. Daher müssen sie allen dynamischen Speicher in den Speicherheaps des Betriebssystems zuweisen. Diese werden meist vom ausgelagerten oder nicht ausgelagerten Pool gebildet.
Der ausgelagerte Pool besteht aus virtuellem Speicher, der in das System und aus dem System ausgelagert werden kann. Gerätetreiber, die auf einer niedrigen Dispatch-Ebene (mit höherer Priorität) nicht auf den Speicher zugreifen müssen, können die ausgelagerten Pools frei verwenden.
Der nicht ausgelagerte Pool besteht aus virtuellem Speicher, auf den garantiert immer physisch zugegriffen werden kann, ohne dass ein Seitenfehler auftritt. Gerätetreiber, die auf Speicher auf einer niedrigeren Dispatch-Ebene zugreifen müssen, MÜSSEN den nicht ausgelagerten Pool verwenden, um sicherzustellen, dass auf die Daten zugegriffen werden kann, da E / A-Aufrufe zu diesem Zeitpunkt nicht verfügbar sind. Auf dieser Ebene befindet sich ohnehin hauptsächlich kritischer Code.
Diese Pools haben eine minimale und eine maximale Größe. Dies ist ein kleiner Prozentsatz des verfügbaren Arbeitsspeichers. Beachten Sie, dass sie zwar wachsen können, jedoch einen bestimmten Prozentsatz des verfügbaren Arbeitsspeichers nicht überschreiten. Während der nicht ausgelagerte Pool ziemlich solide ist, da er nur für den kritischeren Speicher gedacht ist, erstreckt sich der ausgelagerte Pool in die Auslagerungsdatei.
Dies ist eines der am häufigsten übersehenen Probleme, wenn Benutzer ihre Auslagerungsdatei deaktivieren. Unter anderem Stabilitäts- und Leistungsprobleme , die es sicher wert sind, ausgecheckt zu werden, wenn Sie die Auslagerungsdatei deaktiviert haben.
- Quelle : Auszüge aus dem Windows Internals- Buch wurden in einen verständlichen Text umgewandelt.
quelle
Die englischen Übersetzungen sind Arbeitssatz, Spitzenarbeitssatz, Arbeitssatz-Delta, privater Arbeitssatz, Festschreibungsgröße, ausgelagerter Pool und nicht ausgelagerter Pool. Dies ist ungefähr das, was sie bedeuten:
Arbeitssatz: Wie viel physischer Arbeitsspeicher ist in diesem Prozess (und möglicherweise in anderen) vorhanden und zugeordnet.
Spitzenarbeitsspeicher: Der physischste Arbeitsspeicher, den dieser Prozess jemals hatte.
Working Set Delta: Die Änderung im Working Set seit der letzten Aktualisierung
Privater Arbeitsbereich: Wie viel physischer Arbeitsspeicher wurde speziell für diesen Prozess zugeordnet.
Festschreibegebühr : Wie viel virtueller Speicher dieser Prozess verwendet, muss möglicherweise von der Auslagerungsdatei gesichert werden. Dies ist schwer zu verstehen, aber es ist im Grunde genommen, wie viel zusätzlicher Arbeitsspeicher oder zusätzliche Auslagerungsdatei erforderlich wäre, wenn der Prozess auf jedes Byte des Arbeitsspeichers zugegriffen oder diesen geändert hätte, den er zugeordnet hatte.
ausgelagerter Pool: Für wie viel der Nutzung des normalen Systemspeicherpools (der bei Bedarf ausgelagert werden kann) ist dieser Prozess verantwortlich.
nicht ausgelagerter Pool: Wie viel physischer Speicher dieser Prozess gesperrt hat, kann nicht ausgelagert werden. Normalerweise wird dies für Systemobjekte wie asynchrone E / A verwendet. (Dieser Speicher zählt für den nicht ausgelagerten Pool des Systems.)
quelle