RAM, virtueller Speicher, Seitendatei und Speicherverwaltung in Windows
Ursprüngliche KB-Nummer: 2160852
Übersicht
Dieser Artikel enthält grundlegende Informationen zur Implementierung des virtuellen Speichers in 32-Bit-Versionen von Windows.
In modernen Betriebssystemen wie Windows verweisen Anwendungen und viele Systemprozesse immer mithilfe von virtuellen Speicheradressen auf den Arbeitsspeicher. Virtuelle Speicheradressen werden automatisch von der Hardware in echte (RAM)-Adressen übersetzt. Nur Kernteile des Betriebssystem-Kernels umgehen diese Adressübersetzung und verwenden echte Speicheradressen direkt.
Der virtuelle Speicher wird immer verwendet, auch wenn der arbeitsspeicher, der von allen ausgeführten Prozessen benötigt wird, nicht das Auf dem System installierte RAM-Volumen überschreitet.
Prozesse und Adressräume
Allen Prozessen (z. B. ausführbaren Anwendungen), die unter 32-Bit-Versionen von Windows ausgeführt werden, werden virtuelle Speicheradressen (ein virtueller Adressraum) zugewiesen, von 0 bis 4.294.967.295 (2*32-1 = 4 GB), unabhängig davon, wie viel RAM auf dem Computer installiert ist.
In der Standardkonfiguration von Windows werden 2 Gigabyte (GB) dieses virtuellen Adressraums für die private Nutzung jedes Prozesses festgelegt, und die anderen 2 GB werden zwischen allen Prozessen und dem Betriebssystem gemeinsam genutzt. In der Regel verwenden Anwendungen (z. B. Editor, Word, Excel und Acrobat Reader) nur einen Bruchteil des privaten Adressraums von 2 GB. Das Betriebssystem weist RAM-Seitenframes nur den virtuellen Speicherseiten zu, die verwendet werden.
Physical Address Extension (PAE) ist das Feature der Intel 32-Bit-Architektur, die die Physische Speicheradresse (RAM) auf 36 Bit erweitert. PAE ändert nicht die Größe des virtuellen Adressraums (der bei 4 GB bleibt), sondern nur das Volumen des tatsächlichen RAM, der vom Prozessor adressiert werden kann.
Die Übersetzung zwischen der 32-Bit-Speicheradresse, die vom Code verwendet wird, der in einem Prozess ausgeführt wird, und der 36-Bit-RAM-Adresse wird automatisch und transparent von der Computerhardware gemäß übersetzungstabellen verarbeitet, die vom Betriebssystem verwaltet werden. Jede virtuelle Speicherseite (32-Bit-Adresse) kann jeder physischen RAM-Seite (36-Bit-Adresse) zugeordnet werden.
In der folgenden Liste wird beschrieben, wie viel RAM die verschiedenen Windows-Versionen und -Editionen unterstützen (ab Mai 2010):
Windows-Version | RAM |
---|---|
Windows NT 4.0 | 4 GB |
Windows 2000 Professional | 4 GB |
Windows 2000 Standard Server | 4 GB |
Windows 2000 Advanced Server | 8 GB |
Windows 2000 Datacenter Server | 32 GB |
Windows XP Professional | 4 GB |
Windows Server 2003 Web Edition | 2 GB |
Windows Server 2003 Standard Edition | 4 GB |
Windows Server 2003 Enterprise Edition | 32 GB |
Windows Server 2003 Datacenter Edition | 64 GB |
Windows Vista | 4 GB |
Windows Server 2008 Standard | 4 GB |
Windows Server 2008 Enterprise | 64 GB |
Windows Server 2008 Datacenter | 64 GB |
Windows 7 | 4 GB |
Pagefile
RAM ist eine begrenzte Ressource, während der virtuelle Speicher für die meisten praktischen Zwecke unbegrenzt ist. Es kann viele Prozesse geben, und jeder Prozess verfügt über einen eigenen 2 GB privaten virtuellen Adressraum. Wenn der von allen vorhandenen Prozessen verwendete Arbeitsspeicher den verfügbaren RAM überschreitet, verschiebt das Betriebssystem Seiten (4 KB) eines oder mehrerer virtueller Adressplätze auf die Festplatte des Computers. Dadurch wird der RAM-Frame für andere Zwecke freigegeben. In Windows-Systemen werden diese ausgelagerten Seiten in einer oder mehreren Dateien (Pagefile.sys Dateien) im Stamm einer Partition gespeichert. Es kann eine solche Datei in jeder Datenträgerpartition geben. Der Speicherort und die Größe der Seitendatei sind in den Systemeigenschaften konfiguriert (klicken Sie auf "Erweitert", klicken Sie auf "Leistung", und klicken Sie dann auf die Schaltfläche "Einstellungen").
Benutzer fragen häufig, wie groß ich die Seitendatei machen soll? Es gibt keine einzige Antwort auf diese Frage, da sie von der Menge des installierten RAM und davon abhängt, wie viel virtueller Arbeitsspeicher für die Workload erforderlich ist. Wenn keine weiteren Informationen verfügbar sind, ist die typische Empfehlung von 1,5 Mal der installierte RAM ein guter Ausgangspunkt. Auf Serversystemen möchten Sie in der Regel über ausreichend RAM verfügen, sodass es nie einen Mangel gibt und die Seitendatei nicht verwendet wird. Auf diesen Systemen kann es keinen nützlichen Zweck erfüllen, eine große Seitendatei beizubehalten. Auf der anderen Seite führt die Aufrechterhaltung einer großen Seitendatei (z. B. 1,5 Mal des installierten RAM) zu keinem Problem, und dies beseitigt auch die Notwendigkeit, sich darüber zu kümmern, wie groß es zu machen ist.
Leistung, Architekturbeschränkungen und RAM
Auf jedem Computersystem verringert sich die Leistung, da die Auslastung (die Anzahl der Benutzer, das Arbeitsvolumen) zunimmt, aber nichtlinear. Jede Zunahme der Last oder Nachfrage über einen bestimmten Punkt hinaus führt zu einer erheblichen Leistungsminderung. Dies bedeutet, dass einige Ressourcen in kritischem Kurzangebot sind und zu einem Engpass geworden sind.
Irgendwann kann die Ressource, die kurz ist, nicht erhöht werden. Dies bedeutet, dass eine architektonische Grenze erreicht wurde. Einige häufig gemeldete Architekturbeschränkungen in Windows umfassen Folgendes:
- 2 GB freigegebener virtueller Adressraum für das System (Kernel)
- 2 GB privater virtueller Adressraum pro Prozess (Benutzermodus)
- 660 MB System-PTE-Speicher (Windows Server 2003 und früher)
- 470 MB Seitenpoolspeicher (Windows Server 2003 und früher)
- 256 MB nicht ausgelagerter Poolspeicher (Windows Server 2003 und früher)
Dies gilt speziell für Windows Server 2003, kann aber auch für Windows XP und Windows 2000 gelten. Windows Vista, Windows Server 2008 und Windows 7 teilen diese Architekturgrenzen jedoch nicht alle. Die Grenzwerte für Den Benutzer- und Kernelspeicher (hier die Zahlen 1 und 2) sind identisch, aber Kernelressourcen wie PTEs und verschiedene Speicherpools sind dynamisch. Diese neue Funktion ermöglicht sowohl seitenseitigen als auch nicht seitenseitigen Arbeitsspeicher. Dadurch können PTEs und Der Sitzungspool auch über die zuvor diskutierten Grenzwerte hinaus wachsen, bis zu dem Punkt, an dem der gesamte Kernel erschöpft ist.
Häufig gefundene und zitierte Anweisungen wie die folgenden:
Bei einem Terminalserver wird der 2 GB freigegebene Adressraum vollständig verwendet, bevor 4 GB RAM verwendet werden.
Dies kann in einigen Fällen der Fall sein. Sie müssen Ihr System jedoch überwachen, um zu wissen, ob sie für Ihr bestimmtes System gelten oder nicht. In einigen Fällen sind diese Aussagen Schlussfolgerungen aus bestimmten Windows NT 4.0- oder Windows 2000-Umgebungen und gelten nicht unbedingt für Windows Server 2003. Erhebliche Änderungen wurden an Windows Server 2003 vorgenommen, um die Wahrscheinlichkeit zu verringern, dass diese Architekturgrenzwerte tatsächlich in der Praxis erreicht werden. Beispielsweise wurden einige Prozesse, die sich im Kernel befanden, in Nicht-Kernel-Prozesse verschoben, um den im freigegebenen virtuellen Adressraum verwendeten Speicher zu reduzieren.
Überwachen der RAM- und virtuellen Speicherauslastung
Leistungsmonitor ist das Prinziptool zur Überwachung der Systemleistung und zur Ermittlung des Standorts des Engpasses. Um Leistungsmonitor zu starten, klicken Sie auf "Start", klicken Sie auf Systemsteuerung, klicken Sie auf "Verwaltungstools", und doppelklicken Sie dann auf Leistungsmonitor. Hier ist eine Zusammenfassung einiger wichtiger Indikatoren und was sie Ihnen sagen:
Speicher, zugesicherte Bytes: Dieser Indikator ist ein Maß für die Nachfrage nach virtuellem Arbeitsspeicher.
Dies zeigt, wie viele Bytes von Prozessen zugewiesen wurden und denen das Betriebssystem einen RAM-Seitenframe oder einen Seitenplatz in der Seitendatei (oder vielleicht beides) zugesichert hat. Da zugesicherte Bytes größer als der verfügbare RAM werden, wird die Auslagerung erhöht, und die verwendete Seitendatei wird ebenfalls erhöht. Irgendwann wirkt sich die Pagingaktivität erheblich auf die Leistung aus.
Prozess, Arbeitssatz, _Total: Dieser Indikator ist ein Maß für den virtuellen Arbeitsspeicher, der aktiv verwendet wird.
Dieser Indikator zeigt, wie viel RAM erforderlich ist, damit der virtuelle Speicher, der für alle Prozesse verwendet wird, im RAM ist. Dieser Wert ist immer ein Vielfaches von 4.096, bei dem es sich um das Seitenformat handelt, das in Windows verwendet wird. Da sich die Nachfrage nach virtuellem Arbeitsspeicher über den verfügbaren RAM hinaus erhöht, passt das Betriebssystem an, wie viel virtueller Arbeitsspeicher eines Prozesses in seinem Arbeitssatz enthalten ist, um die verfügbare RAM-Nutzung zu optimieren und paging zu minimieren.
Paging File, %pagefile in use: This counter is a measure of how much of the pagefile is actually being used.
Verwenden Sie diesen Leistungsindikator, um zu ermitteln, ob die Seitendatei eine geeignete Größe hat. Wenn dieser Zähler 100 erreicht, ist die Seitendatei voll, und die Dinge funktionieren nicht mehr. Abhängig von der Volatilität Ihrer Workload möchten Sie wahrscheinlich, dass die Seitendatei groß genug ist, sodass sie nicht mehr als 50-075 Prozent verwendet wird. Wenn ein Großteil der Seitendatei verwendet wird und mehrere auf verschiedenen physischen Datenträgern vorhanden sind, kann die Leistung verbessert werden.
Speicher, Seiten/Sek.: Dieser Leistungsindikator ist eine der falsch verstandenen Measures.
Ein hoher Wert für diesen Leistungsindikator bedeutet nicht unbedingt, dass Ihr Leistungsengpässe aus einem Mangel an RAM resultiert. Das Betriebssystem verwendet das Paging-System für andere Zwecke als das Austauschen von Seiten aufgrund der Überlastung des Arbeitsspeichers.
Speicher, Seitenausgabe/Sek.: Dieser Leistungsindikator zeigt, wie viele virtuelle Speicherseiten in die Seitendatei geschrieben wurden, um RAM-Seitenframes für andere Zwecke jede Sekunde freizugeben.
Dies ist der beste Indikator, um zu überwachen, wenn Sie vermuten, dass paging Ihr Leistungsengpässe ist. Selbst wenn zugesicherte Bytes größer als der installierte RAM sind, wenn die Seitenausgabe/s die meiste Zeit niedrig oder null ist, gibt es kein erhebliches Leistungsproblem von unzureichendem RAM.
Arbeitsspeicher, Cachebytes, Arbeitsspeicher, Pool nicht ausgelagerte Bytes, Arbeitsspeicher, Auslagerungsbytes im Pool, Arbeitsspeicher, Gesamtbytes des Systemcodes, Arbeitsspeicher, Systemtreiber Gesamtbytes:
Die Summe dieser Leistungsindikatoren ist ein Maß dafür, wie viel der 2 GB des freigegebenen Teils des virtuellen Adressraums von 4 GB tatsächlich verwendet wird. Verwenden Sie diese, um zu bestimmen, ob Ihr System eine der zuvor erörterten architektonischen Grenzen erreicht.
Arbeitsspeicher, Verfügbare MBytes: Dieser Leistungsindikator misst, wie viel RAM verfügbar ist, um Anforderungen für den virtuellen Speicher zu erfüllen (entweder neue Zuordnungen oder zum Wiederherstellen einer Seite aus der Seitendatei).
Wenn RAM in Kurzer Zeit verfügbar ist (z. B. ist zugesicherte Bytes größer als installierter RAM), versucht das Betriebssystem, einen bestimmten Bruchteil des installierten RAM zur sofortigen Verwendung verfügbar zu halten, indem virtuelle Speicherseiten kopiert werden, die nicht aktiv in die Seitendatei verwendet werden. Daher wird dieser Zähler nicht null erreichen und ist nicht unbedingt ein guter Hinweis darauf, ob Ihr System kurz vom RAM ist.