Exchange und der Hauptspeicher

Auslagerungsspeicher

Wird die Hardware eines Rechners voll ausgenutzt, dann kann es vorkommen, dass die laufenden Prozesse zusammen mehr Speicher beanspruchen, als physischer Speicher in dem Rechner vorhanden ist. Um auch diesem Problem zu begegnen, besitzen moderne Betriebssysteme so genannte Auslagerungsdateien (Swap Files). Speichersegmente, die gerade nicht verwendet werden, werden temporär auf der Festplatte gespeichert, um Platz für weitere Speicheranforderungen zu schaffen. Die Auslagerungsdatei erweitert hierdurch den Hauptspeicher, der dem System zur Verfügung steht.

Die Auslagerung von Speichersegmenten macht allerdings nur Sinn, wenn diese zwar angefordert, aber nur selten verwendet werden. Dann müssen diese Segmente nur selten wieder aus der Auslagerungsdatei in den physischen Speicher zurückgeladen werden. Wenn die Speicherauslastung so groß wird, dass auch häufig verwendete Segmente zwischenzeitlich ausgelagert werden müssen, wird es problematisch. Das Auslagern und Laden eines Speichersegments kostet einigen Aufwand. Wenn Segmente zu häufig ausgetauscht werden müssen, dann wird die Leistung des Gesamtsystems stark herabgesetzt. eanspruchen die laufenden Prozesse insgesamt mehr Speicher, als die Größe des Hauptspeichers und der Auslagerungsdatei zusammen zur Verfügung stellen, kommt es schließlich zu Systemfehlern bis hin zum Absturz des Rechners.

Anwendungs- und Kernelspeicher

Erschwerend kommt hinzu, dass der virtuelle Adressbereich einer Anwendung in zwei Teile geteilt ist. Der eine Teil steht der Anwendung zur alleinigen Verfügung und der andere Teil, der so genannte Kernelspeicher, dient dazu, Daten mit dem Betriebssystem auszutauschen. Den Zugriff auf diesen Bereich teilen sich Anwendung und Systemkern.

Standardmäßig ist die Aufteilung des Adressbereichs gleichmäßig, das heißt, dass Kernel- und Anwendungsspeicher virtuell jeweils 2 GB groß sind. Diese Aufteilung kann aber über einen Schalter (/3GB) in der Datei Boot.ini angepasst werden. Ist dieser Schalter hinter der gestarteten Systemkonfiguration angegeben, stehen jeder Anwendung nur noch 1 GB Kernelspeicher zur Verfügung. Diese Vorgabe gilt dann für alle Prozesse des Rechners.

Einer Anwendung kann sowohl der Kernelspeicher als auch der Anwendungsspeicher ausgehen. Die Entscheidung, ob der /3GB-Schalter gesetzt wird, muss sich deshalb nach den Ansprüchen der speicherhungrigsten Anwendung eines Systems richten. Besonders Serveranwendungen brauchen viel Kernelspeicher, da jede einzelne Netzwerkverbindung Systemspeicher benötigt. Für Exchange Server 2000 und 2003 empfiehlt Microsoft das Setzen des /3GB-Schalters deshalb nur für Server, die Postfächer und öffentliche Ordner speichern und über mehr als 1 GB physischen Hauptspeicher verfügen (KB815372). In diesem Fall ist der Bedarf des Store. exe-Prozesses an Anwendungsspeicher größer als der des Netzwerks an Kernelspeicher. Der Schalter sollte nicht gesetzt werden, wenn der Server auch Domänencontroller oder Active Directory-Server ist, wie dies auch für Small Business Server gilt. Gleiches trifft zu, wenn andere Serveranwendungen auf dem Rechner parallel ausgeführt werden, die viel Kernelspeicher benötigen.

Bild 1: Jeder Prozess hat theoretisch 4 GB virtuellen Speicher zur Verfügung, der von Windows auf den realen Speicher und die Auslagerungsdatei verteilt wird.
Bild 1: Jeder Prozess hat theoretisch 4 GB virtuellen Speicher zur Verfügung, der von Windows auf den realen Speicher und die Auslagerungsdatei verteilt wird.

Über den /USERVA-Schalter kann die Aufteilung zwischen Kernel- und Anwendungsspeicher noch genauer gesteuert werden. Für die Konfiguration von Postfach-Servern mit Windows 2003 und Exchange 2003 empfiehlt die Vorgabe /USERVA: 3030 (KB810371). Dies gibt 3030 MB Anwendungsspeicher vor anstelle der 3072 MB, wenn nur der /3GB-Schalter angegeben würde. Der /USERVA-Schalter muss zusätzlich zum /3GBSchalter angegeben werden (/3GB /USERVA: 3030).