DetailPage-MSS-KB

Knowledge Base

Artikel-ID: 171793 - Geändert am: Freitag, 10. August 2001 - Version: 1.0

Dieser Artikel wurde zuvor veröffentlicht unter D171793
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
171793  (http://support.microsoft.com/kb/171793/en-us/ ) Information on Application Use of 4GT RAM Tuning

Auf dieser Seite

Zusammenfassung

Dieser Artikel beschreibt das Feature 4GT RAM Tuning von Windows NT Server Enterprise Edition (Windows NT Server/E), Version 4.0. Bei herkömmlichen Windows NT Server beträgt die Adressbegrenzung vor einem Prozess 2 GB RAM (Random Access Memory). Das 4GT-Feature von Windows NT Server/E erhöht diese Begrenzung auf 3 GB, ohne neue APIs einzuführen. 4GT führt dies durch, indem der potenzielle RAM, der dem Windows NT Kernel zugeordnet ist, von 2 GB auf 1 GB reduziert wird.

Ein großer Teil der in diesem Artikel enthaltenen Informationen wurde den Versionsinformationen zum Produkt entnommen.

Weitere Informationen

Anwendungen, die für die Windows NT Server-Plattform entwickelt wurden, nehmen weiter zu, sowohl in der Größe als auch in der Leistungsanforderung. Für Anwendungen, die Eingabe/Ausgabe-intensiv sind, wie z. B. Datenbank-Managementsysteme (DBMS), kann die Verwendung eines größeren Prozessraums erhebliche Leistungsvorteile bieten, da zeitintensive E/A-Zugriffe auf Medien reduziert werden. Beim aktuellen Windows NT Server-Produkt beträgt die Adressbegrenzung vor einem Prozess 2 GB. 4GT erhöht diese Begrenzung auf 3 GB, ohne neue APIs einzuführen. 4GT erreicht dies durch, indem der potenzielle RAM, der dem Windows NT Kernel zugeordnet ist, von 2 GB auf 1 GB reduziert wird.

Dieses Leistungsmerkmal bietet Vorteile für Anwendungen, die auf leistungsstarken Computern mit mehr als 2 GB physikalischem RAM ausgeführt werden, und die einen größeren Adressbereich nutzen können. Die Auswirkungen auf Entwickler und Anwendungen sind im weiteren Verlauf des Artikels zusammengefasst.

Windows NT Server/E unterstützt 4GT nur auf Servern mit Intel-Architektur.

Anmerkung: 4GT funktioniert nur mit 32-Bit-Prozessoren, also wird der adressierbare Speicher von Windows NT Server nicht über die aktuelle Begrenzung von 4 GB hinaus erhöht.

Anwendungen für 4GT entwickeln

Auswahl von Adressen des Benutzermodus:

Wenn 4GT aktiviert ist, kann das höchste Bit einer virtuellen Adresse nicht verwendet werden, um Adressen des Benutzermodus von Adressen des Kernelmodus zu unterscheiden.

Speicherzuordnungsproblem:

Manche DLL-Dateien (Dynamic Link Library-Dateien) werden in der Nähe der 2 GB-Grenze geladen; daher gibt es eine Region im 2 GB-Bereich, in dem mithilfe von VirtualAlloc kein zusammenhängender Speicher zugewiesen werden kann.

In Kernelmodus sichtbare Effekte:

Kernelmoduscode kann nicht länger annehmen, dass die Benutzer-/Kernelgrenze bei 0x80000000 bzw. bei einer anderen Nummer liegt. Ein Code, der die Makros ProbeForRead oder ProbeForWrite verwendet, muss mithilfe von neuen Headern, die nicht länger annehmen, dass der Kernelbereich bei 0x80000000 startet, neu erstellt werden.

4GT-Unterstützung in Ihren Anwendungen aktivieren

Die Änderungen zur Unterstützung von 4GT werden sowohl auf Systemebene als auch auf Anwendungsebene vorgenommen.

Systemänderungen:

Nachdem Sie Windows NT Server/E installiert haben, müssen Sie die Datei Boot.ini ändern, um 4GT zu aktivieren. Fügen Sie zur Startzeile einfach den Parameter /3GB hinzu, um 4GT zu aktivieren.

Anmerkung: Diese Änderung wirkt sich nur aus, wenn Sie Windows NT Server/E verwenden. Beim herkömmlichen Windows NT verschiebt dieses Flag den Kernel, Anwendungen können jedoch auf mehr als 2 GB zugreifen.

Beispiel:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINNT
[operating systems] multi(0)disk(0)rdisk(0)partition(2)\WINNT="Windows NT Server Version 4.00" /3GB
multi(0)disk(0)rdisk(0)partition(2)\WINNT="Windows NT Server Version 4.00 [VGA mode]" /basevideo /sos
Anmerkung: Einige der oben aufgeführten Zeilen wurden umgebrochen, um die Lesbarkeit zu erhöhen.

Anwendungsänderungen:

Für 4GT-Unterstützung sind keine neuen APIs erforderlich. Speicherzuordnungen bleiben hingegen unverändert, abgesehen von den im unteren Abschnitt "Tipps für effektive 4GT-Unterstützung" aufgeführten Ausnahmen. Es hätte jedoch keine Auswirkungen auf die einzelnen Anwendungen, wenn diesen automatisch ein 3-GB-Adressenbereich bereitgestellt würde. Folgender Mechanismus wurde implementiert, um eine selektive Verwendung von 4GT zu ermöglichen:
  • Bei ausführbare Dateien, für die der 3-GB-Adressenbereich sichtbar sein muss, muss in ihrem Imageheader das Bit IMAGE_FILE_LARGE_ADDRESS_AWARE gesetzt haben. Dies kann mithilfe des Tools Imagecfg erreicht werden, das Sie auf der Windows NT Server/E -CD im Ordner Support finden. Geben Sie an der Eingabeaufforderung beispielsweise Folgendes ein, um die Zieldatei DBMSApp.exe zu ändern:
    Imagecfg -l DBMSApp.exe
Anmerkung: Der Linker hat auch einen neuen Schalter (/LARGEADDRESSAWARE), um ausführbare Dateien mit dem Bit IMAGE_FILE_LARGE_ADDRESS_AWARE zu verknüpfen. Das Setzen diese Bits und die anschließende Ausführung der Anwendung in einem System ohne 4GT-Unterstützung sollte keine Auswirkung auf die Anwendung haben.

Tipps für effektive 4GT-Unterstützung

Folgende Richtlinien sind als Zusammenfassung der Änderungen gedacht, die Entwickler überprüfen sollten, wenn sie in Ihren Anwendungen die 4GT-Unterstützung aktivieren möchten.
  • Verwenden Sie GlobalMemoryStatus, um die Größe des gesamten virtuellen Bereichs für den Benutzer zu erhalten. Vermeiden Sie es, Konstanten fest zu definieren (wie z. B. "#define HIGHEST_USER_ADDRESS 0xC0000000"). Versuchen Sie, den realen Wert zur Laufzeit zu ermitteln.

  • Vermeiden Sie signierte Vergleiche mit Zeigern. In Systemen, in den 4GT aktiviert ist, könnten einige Anwendungen möglicherweise aus diesem Grund abstürzen. Eine Bedingung wie z. B. "if (pointer > 40000000)" wird für einen Zeiger über 2GB falsch sein.

  • Ein Code, der das höchste Bit verwendet, um Elemente zu kennzeichnen (Datenwert bzw. ein Adressenwert), wird fehlschlagen. Ein 32-Bit-Wort wird möglicherweise als Benutzermodusadresse betrachtet, wenn es unter 0x80000000 ist, und als Fehlercode, wenn es darüber liegt. Dies funktioniert nicht mehr.

Die Größe einer Auslagerungsdatei einstellen

Ziehen Sie eventuell eine Änderung der Standardgröße Ihrer Auslagerungsdatei in Betracht, wenn Sie die 4GT-Option verwenden und der physikalische Speicher in Ihrem Sytem größer als 3GB ist. Beachten Sie, dass diese Änderung mithilfe der Option System in der Systemsteuerung durchgeführt wird. In Windows NT 3.51 liegt die Standardgröße der Auslagerungsdatei normalerweise 11 MB über der Größe des physikalischen Speichers. In Windows NT 4.0 sind die Standardgröße der Auslagerungsdatei und die Größe des physikalischen Speichers im System identisch. Auf einem Computer mit 4 GB physikalischem Speicher würde dies zu einer Auslagerungsdatei von 4,01 GB führen. Unter diesen Umständen könnte die Effektivität dieser Auslagerungsdatei aufgrund der Gesamtgröße von 4GB minimal sein. Folglich könnte mithilfe einer 256-MB-Auslagerungsdatei Speicherplatz effektiver verwendet werden. Eine kleinere Auslagerungsdatei wirkt sich jedoch auf die gesamte Speichergröße für Anwendungen aus. Sie sollten diese Einstellungen mit ISV (Independent Software Vendor) für die Anwendungen, die mit der 4GT-Option ausgeführt werden, besprechen.

Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Windows NT Server 4.0 Enterprise Edition
Keywords: 
kbhowto kbinfo KB171793
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Freigeben
Weitere Supportoptionen
Microsoft Community-Supportforen
Kontaktieren Sie uns direkt
Zertifizierten Partner finden
Microsoft Store