RAM, virtueller Speicher, Seitendatei und Speicherverwaltung in Windows

Gilt für: Windows 7 Service Pack 1, Windows Server 2012 R2
Ursprüngliche KB-Nummer: 2160852

Zusammenfassung

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 von der Hardware automatisch in echte (RAM)-Adressen übersetzt. Nur Kernteile des Betriebssystem-Kernels umgehen diese Adressübersetzung und verwenden echte Speicheradressen direkt.

Virtueller Speicher wird immer verwendet, auch wenn der von allen ausgeführten Prozessen benötigte Arbeitsspeicher das auf dem System installierte RAM-Volumen nicht ü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, die zwischen 0 und 4.294.967.295 (2*32-1 = 4 GB) reichen, unabhängig davon, wie viel RAM auf dem Computer installiert ist.

In der Windows-Standardkonfiguration sind 2 Gigabyte (GB) dieses virtuellen Adressraums für die private Nutzung jedes Prozesses vorgesehen, 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.

Die physische Adresserweiterung (PAE) ist das Feature der Intel 32-Bit-Architektur, die die Adresse des physischen Arbeitsspeichers (RAM) auf 36 Bit erweitert. PAE ändert nicht die Größe des virtuellen Adressraums (der bei 4 GB verbleibt), sondern nur das Volumen des tatsächlichen RAM, das vom Prozessor adressiert werden kann.

Die Übersetzung zwischen der 32-Bit-Adresse des virtuellen Speichers, 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äß den übersetzungstabellen behandelt, 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 (ab Mai 2010) unterstützen:

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

Auslagerungsdatei

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 eigene 2 GB privaten virtuellen Adressraum. Wenn der von allen vorhandenen Prozessen verwendete Speicher den verfügbaren RAM überschreitet, verschiebt das Betriebssystem Seiten (4 KB Stück) eines oder mehrerer virtueller Adressräume auf die Festplatte des Computers. Dadurch wird dieser 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. In jeder Datenträgerpartition kann eine solche Datei vorhanden sein. Der Speicherort und die Größe der Seitendatei sind in den Systemeigenschaften konfiguriert (klicken Sie auf "Erweitert", dann auf " Leistung" und dann auf die Schaltfläche " Einstellungen ").

Benutzer fragen sich häufig , wie groß die Seitendatei sein 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 die Workload benötigt. Wenn keine weiteren Informationen verfügbar sind, ist die typische Empfehlung des 1,5-fachen des installierten RAM ein guter Ausgangspunkt. Auf Serversystemen möchten Sie in der Regel über ausreichend RAM verfügen, damit es nie zu einem Mangel kommt und die Pagefile-Datei nicht verwendet wird. Auf diesen Systemen kann es keinen nützlichen Zweck erfüllen, eine große Seitendatei zu verwalten. Auf der anderen Seite verursacht die Verwaltung einer großen Seitendatei (z. B. das 1,5-fache des installierten RAM) kein Problem, und dies beseitigt auch die Notwendigkeit, sich gedanken darüber zu machen, wie groß sie sein soll.

Leistung, Architekturbeschränkungen und RAM

Auf jedem Computersystem nimmt die Leistung bei zunehmender Last (Anzahl der Benutzer, Arbeitsvolumen) ab, jedoch nicht linear. Jede Zunahme der Last oder nachfrage, über einen bestimmten Punkt hinaus, führt zu einer erheblichen Leistungsminderung. Dies bedeutet, dass einige Ressourcen sehr knapp sind und zu einem Engpass geworden sind.

Irgendwann kann die knappe Ressource nicht erhöht werden. Dies bedeutet, dass eine architektonische Grenze erreicht wurde. Einige häufig gemeldete Architekturgrenzwerte in Windows umfassen Folgendes:

  • 2 GB freigegebener virtueller Adressraum für das System (Kernel)
  • 2 GB privater virtueller Adressraum pro Prozess (Benutzermodus)
  • 660 MB PTE-Systemspeicher (Windows Server 2003 und früher)
  • 470 MB Auslagerungspoolspeicher (Windows Server 2003 und frühere Versionen)
  • 256 MB Nicht-seitenierter Poolspeicher (Windows Server 2003 und frühere Versionen)

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 weisen jedoch nicht alle diese Architekturgrenzen auf. Die Grenzwerte für Benutzer- und Kernelspeicher (hier die Zahlen 1 und 2) sind identisch, aber Kernelressourcen wie PTEs und verschiedene Speicherpools sind dynamisch. Diese neue Funktionalität ermöglicht sowohl ausgelagerten als auch nicht mehr vorhandenen Speicher. Auf diese Weise können PTEs und Sitzungspools über die zuvor erläuterten Grenzwerte hinaus wachsen, bis der gesamte Kernel erschöpft ist.

Häufig gefundene und zitierte Anweisungen wie die folgenden:

Bei einem Terminalserver werden die 2 GB des freigegebenen Adressraums vollständig genutzt, bevor 4 GB RAM verwendet werden.

Dies kann in einigen Fällen zutreffen. 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. Es wurden erhebliche Änderungen 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 Arbeitsspeicher zu reduzieren.

Überwachen der RAM- und virtuellen Speicherauslastung

Leistungsmonitor ist das Haupttool zur Überwachung der Systemleistung und zur Identifizierung 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 Leistungsindikatoren und deren Informationen:

  • Speicher, Zugesicherte Bytes: Dieser Zähler ist ein Maß für die Nachfrage nach virtuellem Speicher.

    Dies zeigt, wie viele Bytes von Prozessen zugeordnet wurden und für die das Betriebssystem einen RAM-Seitenframe oder einen Seitenplatz in der Seitendatei (oder vielleicht beides) zugesichert hat. Wenn zugesicherte Bytes größer als der verfügbare RAM werden, nimmt die Paging-Funktion zu, und die verwendete Seitendateigröße nimmt ebenfalls zu. Zu einem bestimmten Zeitpunkt wirkt sich die Pagingaktivität erheblich auf die Leistung aus.

  • Prozess, Arbeitssatz _Total: Dieser Zähler ist ein Maß für den virtuellen Speicher, der aktiv verwendet wird.

    Dieser Zähler zeigt, wie viel RAM erforderlich ist, damit sich der virtuelle Speicher, der für alle Prozesse verwendet wird, im RAM befindet. Dieser Wert ist immer ein Vielfaches von 4.096, d. h. die Seitengröße, die in Windows verwendet wird. Da die Nachfrage nach virtuellem Speicher über den verfügbaren RAM hinaus steigt, passt das Betriebssystem an, wie viel virtueller Speicher eines Prozesses in seinem Arbeitssatz enthalten ist, um die verfügbare RAM-Nutzung zu optimieren und paging zu minimieren.

  • Paging File, %pagefile in use: Dieser Indikator ist ein Maß dafür, wie viel der Pagefile tatsächlich verwendet wird.

    Verwenden Sie diesen Zähler, 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 Pagefile-Datei groß genug ist, sodass sie nicht mehr als 50-075 Prozent verwendet wird. Wenn ein Großteil der Seitendatei verwendet wird, kann die Leistung verbessert werden, wenn mehrere auf unterschiedlichen physischen Datenträgern vorhanden sind.

  • Speicher, Seiten/Sek.: Dieser Zähler ist eines der missverstandensten Maßnahmen.

    Ein hoher Wert für diesen Zähler bedeutet nicht notwendigerweise, dass Ihr Leistungsengpässe auf einen Mangel an RAM zurückzuführen ist. Das Betriebssystem verwendet das Paging-System für andere Zwecke als das Austauschen von Seiten aufgrund von Speicherüberlastung.

  • Speicher, Seitenausgabe/Sek.: Dieser Zähler zeigt, wie viele virtuelle Speicherseiten in die Pagefile geschrieben wurden, um RAM-Seitenframes für andere Zwecke pro 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, gibt es bei einer niedrigen Seitenausgabe/s oder null in den meisten Zeiten kein erhebliches Leistungsproblem aufgrund unzureichenden RAM.

  • Speicher, Cachebytes, Speicher, nichtpageierte Bytes des Pools, Arbeitsspeicher, Ausgelagerte Bytes des Pools, Arbeitsspeicher, Systemcodegesamtbytes, Arbeitsspeicher, Systemtreibergesamtbytes:

    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 festzustellen, ob Ihr System eine der zuvor erläuterten architektonischen Grenzwerte erreicht.

  • Arbeitsspeicher, verfügbare MBytes: Dieser Zähler misst, wie viel RAM verfügbar ist, um die Anforderungen an virtuellen Speicher (entweder neue Zuordnungen oder zum Wiederherstellen einer Seite aus der Seitendatei) zu erfüllen.

    Wenn RAM knapp ist (z. B. sind zugesicherte Bytes größer als der installierte RAM), versucht das Betriebssystem, einen bestimmten Anteil des installierten RAM zur sofortigen Verwendung verfügbar zu halten, indem virtuelle Speicherseiten kopiert werden, die nicht aktiv in die Seitendatei verwendet werden. Daher erreicht dieser Zähler nicht 0 und ist nicht unbedingt ein guter Hinweis darauf, ob Ihr System nicht über ram verfügt.

References

Adressfenstererweiterungen