Exchange und der Hauptspeicher

Durch immer leistungsfähigere Hardware und gleichzeitig sinkende Preise stößt die noch vorherrschende 32-Bit-Windows-Architektur zunehmend an ihre Grenzen. Trotz hohem Speicherausbau bekommt Exchange Server dabei Probleme mit der Speichernutzung. Der Grund liegt häufig in der Reservierung des so genannten Kernelspeichers.

Die Ära der 32-Bit-PC-Systeme neigt sich langsam ihrem Ende entgegen. Dabei treten teilweise Probleme auf, wie man sie schon von den 16-Bit-Systemen im Speicherbereich kannte. 32 Bit ermöglichen es, 232 Byte, also 4 GB an Speicher direkt zu adressieren. Die Speicherbausteine sind mittlerweile so preiswert, dass es sich in vielen Fällen lohnen würde, Systeme mit mehr als 4 GB pro Prozessor auszustatten. Die Möglichkeit, auf einer immer geringeren Zahl leistungsfähigerer Server immer mehr Benutzerkonten zu verwalten, birgt einiges Potenzial für eine Kostenersparnis in sich. Deshalb ist es ärgerlich, wenn diese Möglichkeit durch ein technisches Hemmnis, anstelle einer reinen Kostenbarriere, unmöglich gemacht wird. 64-Bit-Architekturen sind zwar rechtzeitig am Markt erschienen und haben mittlerweile auch bereits einen beträchtlichen Marktanteil, aber die Migration auf diese Architektur ist noch nicht vollzogen. Insbesondere im Windows-Bereich ist vor allem die Software noch hauptsächlich in 32-Bit-Versionen verfügbar. Exchange wird diesen Schritt ebenfalls erst mit der nächsten Version gehen. Die Produktzyklen der Programme sind in diesem Fall schlichtweg zu lang für die rasante Entwicklung des Hardwaresektors.

Grundlagen des Prozessspeichers

Genau genommen handelt es sich bei dem betrachteten Speicherproblem mehr um ein „virtuelles“ Problem. Es betrifft nämlich den virtuellen Hauptspeicher der einzelnen Prozesse und nur mittelbar den physischen Speicher des Rechners. Ähnlich wie früher bei 16-Bit-Architekturen haben Systemarchitekten Technologien wie PAE (Physical Address Extension) und AWE (Address Windowing Extensions) entwickelt, mit denen sich Rechner mit mehr als den rechnerisch möglichen 4 GB physischem Hauptspeicher pro Prozessor ausstatten lassen.

Windows weist jedem einzelnen Prozess einen virtuellen Adressraum zu. Er ist, unabhängig vom wirklich vorhandenen physischen Speicher, maximal 4 GB groß. In der Praxis können Programme diesen Speicher allerdings nur sehr selten vollständig ausschöpfen. Auf jedem Rechner laufen parallel mehrere Prozesse, die theoretisch alle Anspruch auf 4 GB Hauptspeicher haben. Zudem kooperieren sie in keiner Weise miteinander, wenn es um die Verteilung des physischen Speichers geht. Die Schaffung der virtuellen Adressräume für Prozesse dient ja gerade dazu, die Programmierer von derartigen Fragen zu entlasten. Fast alle Programme sind deshalb so programmiert, als würde ihnen der Speicher allein gehören.

Zudem betrachtet kaum ein Programm die auf dem konkreten Rechner vorhandene Speichersituation. Dies trifft allerdings im Falle von Exchange nicht ganz zu. Exchange macht beim Hochfahren der Dienste eine kurze Speicheranalyse und schreibt gegebenenfalls einen Eintrag mit der ID 9665 in das Windows-Ereignisprotokoll. Die genaue Beschreibung der auslösenden Faktoren für diesen Eintrag und einige weitere Maßnahmen zur Speicheroptimierung finden sich im Knowledgebase-Artikel KB815372.

Die Konkurrenz der Programme um den zur Verfügung stehenden physischen Speicher ist in der Regel nicht so groß. Die meisten Programme benötigen nicht annähernd den ihnen zustehenden theoretischen Speicher und haben einen eher konstanten Speicherbedarf. Nur einzelne Anwendungen eines Rechners verbrauchen einen Großteil des Speichers. Exchange geht bei seiner Speicheranalyse genauso wie die folgende Darstellung davon aus, dass es das einzige derartig anspruchsvolle Programm auf dem Server ist. Vorsicht ist geboten, wenn auf einem Rechner ein zweites Serverprogramm läuft, beispielsweise ein Domänencontroller. Dann gilt es bei der Optimierung der Speichersituation auch die Anforderungen dieses Programms zu berücksichtigen.