RAM, virtueller Arbeitsspeicher, Auslagerungsdatei 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 Arbeitsspeichers in 32-Bit-Versionen von Windows.

In modernen Betriebssystemen wie Windows verweisen Anwendungen und viele Systemprozesse immer mithilfe virtueller 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 arbeitsspeicher, der von allen ausgeführten Prozessen benötigt wird, nicht das ram-Volume überschreitet, das auf dem System installiert ist.

Prozesse und Adressräume

Allen Prozessen (z. B. ausführbare 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) liegen, unabhängig davon, wie viel RAM auf dem Computer installiert ist.

In der Standardkonfiguration Windows werden 2 Gigabyte (GB) dieses virtuellen Adressraums für die private Verwendung jedes Prozesses festgelegt, und die anderen 2 GB werden zwischen allen Prozessen und dem Betriebssystem gemeinsam verwendet. In der Regel verwenden Anwendungen (z. B. Editor, Word, Excel und Reader Reader) nur einen Bruchteil der 2 GB des privaten Adressraums. Das Betriebssystem weist RAM-Seitenframes nur den verwendeten virtuellen Speicherseiten zu.

Die physische Adresserweiterung (PAE) ist das Feature der Intel 32-Bit-Architektur, die die Adresse des physischen Speichers (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, das vom Prozessor adressiert werden kann.

Die Übersetzung zwischen der 32-Bit-Adresse des virtuellen Arbeitsspeichers, die von dem in einem Prozess ausgeführten Code verwendet wird, und der 36-Bit-RAM-Adresse wird automatisch und transparent von der Computerhardware gemäß übersetzungstabellen verarbeitet, die vom Betriebssystem verwaltet werden. Jede Seite des virtuellen Arbeitsspeichers (32-Bit-Adresse) kann einer beliebigen 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

Auslagerungsdatei

Ram ist eine begrenzte Ressource, während für die meisten praktischen Zwecke der virtuelle Speicher unbegrenzt ist. Es kann viele Prozesse geben, und jeder Prozess verfügt über einen eigenen privaten virtuellen Adressraum von 2 GB. Wenn der von allen vorhandenen Prozessen verwendete Arbeitsspeicher den verfügbaren RAM überschreitet, verschiebt das Betriebssystem Seiten (4 KB) eines oder mehrerer virtueller Adressräume auf die Festplatte des Computers. Dadurch wird der RAM-Frame für andere Verwendungszwecke freigegeben. In Windows Systemen werden diese ausgelagerten Seiten in einer oder mehreren Dateien (Pagefile.sys Dateien) im Stammverzeichnis einer Partition gespeichert. Es kann eine solche Datei in jeder Datenträgerpartition vorhanden sein. Der Speicherort und die Größe der Seitendatei sind in den Systemeigenschaften konfiguriert (klicken Sie auf "Erweitert", klicken Sie auf "Leistung" und dann auf die Schaltfläche Einstellungen).

Benutzer fragen häufig , wie groß die Auslagerungsdatei 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 Speicher diese Workload benötigt. Wenn keine weiteren Informationen verfügbar sind, ist die typische Empfehlung von 1,5 Mal dem installierten RAM ein guter Ausgangspunkt. Auf Serversystemen benötigen Sie in der Regel genügend ARBEITSSPEICHER, damit es nie zu einem Konflikt kommt und die Auslagerungsdatei nicht verwendet wird. Auf diesen Systemen ist es möglicherweise nicht sinnvoll, eine große Auslagerungsdatei zu verwalten. Wenn jedoch genügend Speicherplatz auf dem Datenträger vorhanden ist, verursacht das Beibehalten einer großen Auslagerungsdatei (z. B. das 1,5-fache des installierten RAM) kein Problem, und dadurch müssen Sie sich keine Gedanken darüber machen, wie groß die Größe ist, um sie zu erstellen.

Leistung, Architekturbeschränkungen und RAM

Auf jedem Computersystem nimmt die Leistung ab, wenn die Last zunimmt (die Anzahl der Benutzer, das Arbeitsvolumen), aber nicht linear. Jeder Anstieg der Last oder Nachfrage über einen bestimmten Punkt hinaus führt zu einer signifikanten Leistungsminderung. Dies bedeutet, dass sich einige Ressourcen in einem kritischen Angebot befinden und zu einem Engpass geworden sind.

Zu einem bestimmten Zeitpunkt kann die Ressource, die kurz ist, nicht erhöht werden. Dies bedeutet, dass ein Architekturlimit 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-Speicher des Systems (Windows Server 2003 und früher)
  • 470 MB Seitenpoolspeicher (Windows Server 2003 und früher)
  • 256 MB nicht ausgegebener 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. Für Windows Vista, Windows Server 2008 und Windows 7 gelten jedoch nicht alle diese Architekturbeschränkungen. Die Grenzwerte für den Benutzer- und Kernelspeicher (zahlen 1 und 2 hier) sind identisch, Kernelressourcen wie PTEs und verschiedene Speicherpools sind jedoch dynamisch. Diese neue Funktion ermöglicht sowohl seitenseitigen als auch nicht ausgegebenen Speicher. Auf diese Weise können PTEs und Sitzungspools über die zuvor beschriebenen Grenzwerte hinaus wachsen, bis der gesamte Kernel aufgebraucht ist.

Häufig gefundene und in Anführungszeichen eingeschlossene Anweisungen wie die folgenden:

Bei einem Terminalserver werden die 2 GB des freigegebenen Adressraums 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 es für Ihr bestimmtes System gilt oder nicht. In einigen Fällen sind diese Aussagen Schlussfolgerungen aus bestimmten NT 4.0- oder Windows 2000-Umgebungen Windows nt 2000 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 Speicher zu reduzieren.

Überwachen der RAM- und virtuellen Speichernutzung

Die Leistungsüberwachung ist das Prinziptool zum Überwachen der Systemleistung und zum Identifizieren des Standorts des Engpasses. Klicken Sie zum Starten der Leistungsüberwachung auf "Start", auf " Systemsteuerung", auf " Verwaltungstools" und dann auf " Leistungsmonitor". Hier ist eine Zusammenfassung einiger wichtiger Indikatoren und ihrer Informationen:

  • Arbeitsspeicher, zugesicherte Bytes: Dieser Indikator ist ein Maß für die Nachfrage nach virtuellem Speicher.

    Dies zeigt, wie viele Bytes von Prozessen zugewiesen wurden und für die das Betriebssystem einen RAM-Seitenframe oder einen Seitenplatz in der Auslagerungsdatei (oder vielleicht beides) festgelegt hat. Wenn zugesicherte Bytes größer als der verfügbare RAM werden, nimmt die Paginggröße zu, und auch die verwendete Seitendateigröße wird erhöht. Zu einem bestimmten Zeitpunkt beginnt die Pagingaktivität, die Leistung erheblich zu beeinträchtigen.

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

    Dieser Indikator zeigt, wie viel RAM erforderlich ist, damit sich der für alle Prozesse verwendete virtuelle Speicher 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 Arbeitsspeicher über den verfügbaren RAM hinausgeht, passt das Betriebssystem an, wie viel des virtuellen Arbeitsspeichers eines Prozesses im Arbeitssatz enthalten ist, um die verfügbare RAM-Auslastung zu optimieren und die Auslagerung zu minimieren.

  • Auslagerungsdatei, verwendete %Pagefile: Dieser Indikator ist ein Maß dafür, wie viel der Auslagerungsdatei tatsächlich verwendet wird.

    Verwenden Sie diesen Indikator, um zu bestimmen, ob die Auslagerungsdatei eine geeignete Größe hat. Wenn dieser Indikator 100 erreicht, ist die Auslagerungsdatei voll, und die Dinge funktionieren nicht mehr. Je nach Auslastung möchten Sie wahrscheinlich, dass die Auslagerungsdatei groß genug ist, damit sie nicht mehr als 50 bis 075 Prozent verwendet wird. Wenn ein Großteil der Auslagerungsdatei verwendet wird und mehrere Dateien auf verschiedenen physischen Datenträgern vorhanden sind, kann die Leistung verbessert werden.

  • Speicher, Seiten/s: Dieser Indikator ist eine der am häufigsten missverstandenen Maßnahmen.

    Ein hoher Wert für diesen Indikator bedeutet nicht notwendigerweise, dass ihr Leistungsengpass auf einen Zustrom von RAM zurückzuführen ist. Das Betriebssystem verwendet das Auslagerungssystem für andere Zwecke als das Austauschen von Seiten aufgrund von zu vielem Arbeitsspeicher.

  • Arbeitsspeicher, Seitenausgabe/s: Dieser Indikator zeigt, wie viele virtuelle Speicherseiten in die Auslagerungsdatei geschrieben wurden, um RAM-Seitenframes für andere Zwecke pro Sekunde freizugeben.

    Dies ist der beste Indikator, der überwacht werden kann, wenn Sie vermuten, dass paging Ihr Leistungsengpass ist. Auch 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 durch unzureichenden RAM.

  • Arbeitsspeicher, Cachebytes, Arbeitsspeicher, Nicht-Seiten-Bytes des Pools, Arbeitsspeicher, Byte mit Poolseite, Arbeitsspeicher, Gesamtanzahl der Bytes des Systemcodes, Arbeitsspeicher, Gesamtanzahl der Bytes des Systemtreibers:

    Die Summe dieser Indikatoren ist ein Maß dafür, wie viel der 2 GB des freigegebenen Teils des virtuellen Adressraums mit 4 GB tatsächlich verwendet wird. Verwenden Sie diese, um zu bestimmen, ob Ihr System einen der zuvor erläuterten Architekturgrenzen erreicht.

  • Arbeitsspeicher, Verfügbare MB: Dieser Indikator misst, wie viel RAM verfügbar ist, um anforderungen an virtuellen Speicher zu erfüllen (entweder neue Zuordnungen oder zum Wiederherstellen einer Seite aus der Auslagerungsdatei).

    Wenn ram knapp ist (z. B. ist zugesicherte Bytes größer als der installierte RAM), versucht das Betriebssystem, einen bestimmten Teil des installierten RAM für die sofortige Verwendung verfügbar zu halten, indem es seiten des virtuellen Arbeitsspeichers kopiert, die nicht aktiv in die Auslagerungsdatei verwendet werden. Daher erreicht dieser Indikator nicht null und ist nicht notwendigerweise ein guter Hinweis darauf, ob ihr System nicht genügend ARBEITSSPEICHER hat.

References

Adressfenstererweiterungen