Exchange 2000/2003 Systemoptimierung

Exchange 2000 optimiert sich in weiten Bereichen selbst. Das ist z.B. schon daran zu erkennen, dass es die "Leistungsoptimierung" von Exchange 5.5 nicht mehr gibt. Es liegt daher in der Hand des Administrators, das System gekonnte einzurichten.

Datenbanken

Im wesentlichen ist hier das Augenmerk auf die Anordnung und Konfiguration der Festplatten zu wenden. Exchange 2000 verlagert keine Datenbanken alleine. Die umschichtung der Datenbanken entsprechend der Festplatten führen Sie mit dem Exchange Systemmanager durch. Der Systemmanager verschiebt alleine die Dateien auf die Zielfestplatten.

Hauptspeicher

Das größte Fragezeichen mit Exchange ist der exorbitante Speicherverbrauch, der Exchange gerne nachgesagt wird. Nun ja ein gutes Pferd darf schon gut im Futter stehen, aber erschreckend ist schon, wenn ein Server mit 512 MByte Speicher auch nach einem Tag auf 700 MByte Speicherbedarf angewachsen ist.

Exchange 2000 schaut sich das System an und entscheidet dann, wie viele Ressourcen es für sich nutzen darf. Gegen wir mal davon aus, dass Exchange funktioniert und kein Bug ein Speicherloch produziert, so kann man im Performance Monitor schön nachsehen, wie hoch die Cache Trefferrate des Dateisystems (Serverdienst) und der Exchange Datenbank (MSEXCHANGEIS) ist. Und Ziel sollte es sei, dass beide Werte hoch sind. Wenn auf ihrem Server noch weitere Dienste gestartet sind (z.B. SQL) , dann sollten auch diese eine reale Chance haben, mit etwas Hauptspeicher zu arbeiten. Denn "langsam" in einem Server ist immer die Festplatte. Es liegen Potenzen zwischen der Zugriffszeit auf Cache, Speicher und Festplatte.

Dazu zählt auch die Auslagerungsdatei. Kein Server kann ohne Programmcode laufen, aber oft gibt es Anteile davon, die sehr selten gebraucht werden. Und diese sind schneller ausgelagert und auch wieder eingelagert, als dass diese "entladen" werden und bei Anfrage erst im Dateisystem gesucht werden, geladen und initialisiert werden müssen. Daher ist es keineswegs "kritisch", wenn ein Server mehrere hundert Megabyte Code "auslagert". Die Größe der Auslagerungsdatei und die Nutzung ist viel weniger wichtig, als eine Aussage zur Aktivität auf der Auslagerungsdatei. Kritisch wird es erst, wenn die Festplatte durch häufiges Ein und Auslagern so beschäftigt wird, dass andere Prozesse darunter leiden.

Daher: Wenn ihr Server mehr Speicher belegt, als sie eingebaut haben, dann lagert er selten genutzte Teile aus. Das ist nicht schlimm, solange der Server nicht nur permanent auslagern muss. Ein Windows NT Server mit Exchange wir immer mehr Speicher belegen, als sie eingebaut haben.

Aber oftmals haben Sie auf einem Server auch andere Programme, von denen Exchange nicht wissen kann, wie viel Speicher diese brauchen. Und dann wünschen wir uns schon, dass wir dem Exchange Server bestimmte Grenzwerte setzen können. Dazu gibt es einen Artikel von Microsoft, anhand Sie hier steuernd eingreifen können.:

Mit dem Programm ADSIEDIT auf den Windows 2000 Support Tools kann man im AD den Maximalspeicher festlegen, den Exchange 2000 nutzen soll. Es wird die Anzahl der 4KByte Seiten angegeben. Die Zahl 128000 steht dann für 500 MB. http://www.Microsoft.com/germany/library/xml/technet/download/d_09_tt1.doc Es ist auch hilfreich, an anderen Stellen einfach nach der Variable "msExchESEParamCacheSizeMax" zu suchen. Sie wird an mehreren Stellen der TechNet beschrieben.

Exchange 2003 Optimierung

Mit Exchange 2003 haben Sich einige Dinge geändert. So meldet Exchange 2003 selbst, wenn aus seiner Sicht die Speicherkonfiguration nicht optimal ist. Allerdings wird die Konfiguration nicht angepasst.

Die Eventlog Meldung verweist direkt auf den entsprechenden Artikel in der TechNet.

Obergrenzen

Auch Exchange 2000/2003 hat einige wichtige Obergrenzen, die Sie wissen sollten:

  • 4 GB Ram
    Exchange kann nur 2 GB und mit der Option /3GB bis zu 3 Gigabyte Hauptspeicher nutzen. Exchange unterstützt noch nicht PAE oder andere Funktionen
  • Maximal 8 CPUs
    Exchange kann zwar auf Systemen mit mehr als 8 CPUs laufen, aber auch davon nur bedingt gebraucht machen. Insofern sind mehr CPUs nur interessant, wenn andere Prozesse ebenfalls auf dem Server laufen. Sie sollten dann (Windows Datacenter) einstellen, welche CPU von welchem Prozess genutzt wird.

Selbst dann ist es noch ein Problem, wenn die CPUs schneller sind. Exchange kann z.B.: eine 8 CPU Maschine mit 2 GHz eigentlich gar nicht vernünftig nutzen, weil andere Engpässe, z.B.: Festplatte, Bussysteme etc, die Grenze vorgeben.

Windows und Pagefile

Neben dem physikalischen Speicher, der naturgemäß begrenzt ist, nutzt Windows selbst aber eine virtuelle Speicherverwaltung. So hat jeder Prozess auf einem 32-bit Windows 2 Gigabyte bzw. 3 Gigabyte Hauptspeicher zur Verfügung, selbst wenn dieser physikalisch nicht zur Verfügung steht. Brauchen Programme nun mehr Speicher als real vorhanden ist, dann fängt Windows an, Speicher in das Pagefile (auch Swapfile genannt) auszulagern. Im Laufe der Entwicklung gab es verschiedene Empfehlungen für die Größe des Pagefile

  • Windows NT4: 12 Megabyte mehr als Hauptspeicher vorhanden war
  • Windows 2000: 1,5 fache des physikalischen RAM

Heute im Zeichen der Server mit Gigabytes Hauptspeicher gibt es keine sinnvolle Vorgabe mehr, außer einer Aussage, die schon immer richtig ist:

Der Server braucht immer etwas mehr Speicher, als die Anwendungen benötigen. (Frank Carius)

Denn immer wenn der reale Speicher knapp wird und ein Betriebssystem das "Swappen" anfängt, geht die Performance in den Keller. Und das ist bei den Preisen von Hauptspeicher nicht wirklich eine gute Wahl.

Denken Sie nur eine Sekunden mal nach, was Sie mit einem Pagefile von 1 Gigabyte real anfangen wollen. Wenn ein Prozess z.B. 500 Megabyte RAM anfordert, dann muss Windows erst 500 Megabyte Speicher "auslagern".  Selbst mit ganz schnellen Festplatten dauert dies sehr lange. Windows 2000/2003 hat folgende Regel bei einer automatischen Verwaltung des Pagefile:

Pagefilegröße = Minimum von physikalischer Hauptspeicher* 1,5 oder 2GB

Oder als Tabelle:

Physikalischer Hauptspeicher Pagefile Resultierender Gesamtspeicher
256MB 384 MB 640 MB
512 MB 768 MB 1280 MB
1024 MB 1536 MB 2560 MB
1536 MB 2048 MB 3584 MB
2048 MB 2048 MB 4096 MB
3072 MB 2048 MB 5120 MB
4096 MB 2048 MB 6144 MB

Bei Servern mit mehr als 3,5 GB RAM kann es passieren, dass Speicher bis 4GB nicht immer komplett genutzt werden kann. Die Nutzung von mehr als 3 GB Speicher für einzelne Prozesse funktioniert natürlich weiterhin nur über die PAE-Option oder mit 64bit.

Ich würde ein Pagefile von 2 GB einrichten und die Speicherbenutzung des Servers mit MOM2005 überwachen. Bei Bedarf lässt sich sicher ein Speicherriegel addieren.

Wenn Sie wirklich mehr als 2 GB Pagefile benötigen, dann sollten Sie diese auf verschiedenen Festplatten verteilen, um die Performance nicht allein von dem Durchsatz einer Festplatte abhängig zu machen. Zudem erlaubt Windows normalerweise nur ein Pagefile a 2 GByte pro Partition.

Aber erinnern Sie sich immer daran: Ein Prozess (und die Exchange Datenbank mit dem STORE.EXE ist ein Prozess) kann sowieso nie mehr als 3 GB Speicher direkt adressieren.

Weitere Links

Sie können hier dann bestimmte Werte (z.B. Anzahl der Benutzer) eingeben, so dass Exchange sparsamer mit Speicher umgeht. Sie sollten aber wissen, was sie tun.