Wenn Sie mit einem langsamen Exchange Server in Ihrer Umgebung zu kämpfen haben, ist die manuelle Analyse und Ursachenforschung oft zeitraubend und aufwendig. Es gibt unzählige Gründe warum ein Exchange Server seine Funktion nur mit angezogener Handbremse ausführt und im Folgenden möchte ich Ihnen gerne ein paar Ansätze zeigen, wie Sie solche Probleme besser „greifen“ können und vor allem proaktiv handeln, damit die Ursache gar nicht erst entstehen kann.
Schritt 1 – Rahmenbedingungen des Servers
Serverprüfungen
Zuerst einmal sollten man das Offensichtliche prüfen. Ist mein Exchange Server vielleicht einfach unterdimensioniert?
Gerade dieser Aspekt wird nämlich oft vernachlässigt oder fällt erst bei einer längerfristigen Betrachtung ins Auge.
Mit Hilfe von einfachen Sensoren können Sie dies in servereye abbilden, Sie müssen nur CPU, Arbeitsspeicher und Festplattenauslastung überprüfen.
Orientieren können Sie sich dabei an folgendem Aufbau
- CPU (10 Minuten-Durchschnitt, 85% maximale Last)
- Arbeitsspeicher (10 Minuten-Durchschnitt, 90% maximale Last)
- Festplattenspeicher (5 Minuten, 15% freier Speicher)
Die obigen Werte richtigen sich dabei nach Empfehlungen von Microsoft. Werden diese Werte regelmäßig überschritten bzw bei freiem Speicherplatz unterschritten, kann eine korrekte Funktionsweise nicht mehr gewährleistet werden.
Schritt 2 – Interne Verarbeitung
Verarbeitung
Ist der Server ausreichend dimensioniert, ist dies natürlich noch keine Garantie für einen fehlerfreien Ablauf. Der Exchange Server selbst kann zum Beispiel durch massig Spam oder auch fehlerhafte Zustellungen belastet werden und so den normalen Mailflow negativ beeinflussen. Vielleicht werden aber auch gerade E-Mails versendet, die eine größere Menge an Daten beeinhalten.
Für genau diesen Fall haben wir Sensoren entwickelt, die über den Tellerand von Statusinformationen schauen und die Verarbeitung an sich überprüfen.
Der Sensor Exchange Nachrichtenübersicht liefert Statistiken über folgende Werte:
- Gesendete/Empfangene Nachrichten inklusive Datenverkehr
- Zustellungsfehler als Prozentwert (im Vergleich zu erfolgreichen Mails)
- „Vergiftete“ Nachrichten
- Top 3 der fehlgeschlagenen Sender
- Top 5 der größten Postfächer
- Top 5 der nicht genutzten Postfächer
Gerade wenn bestimmte Email-Adressen (die vielleicht in einem nicht mehr aktiven Tool genutzt werden) zu hohen Zustellungsfehlern führen, hilft die Top 3 der fehlgeschlagenen Sender schnell die Ursache zu finden.
Durch die vom Sensor bereitgestellten Messwerte ist es außerdem auch möglich Lastszenarien zu erkennen, zu welchen Zeiten besonders viel Emailaufkommen stattfindet und dementsprechend zu reagieren.
Ein weiterer Sensor der die interne Verarbeitung überprüft ist der Exchange Warteschlange Sensor. Hier können Sie schnell und einfach überprüfen ob sich zu viele Emails in einer Warteschlange befinden und deswegen die Mailzustellung nur verzögert oder sogar gar nicht stattfindet.
Schritt 3 – Performancewerte zur Bottleneck Analyse
Performance
Es gibt Punkte die lassen sich ziemlich schwer greifen und vielleicht will man auch nicht direkt einen Alarm generieren, sondern nur ein Verhalten beobachten. Mit den Performance Countern lassen sich bequem verschiedene Aspekte des Systems analysieren und Auswertungen erstellen. Mit der von uns bereitgestellten PowerShell API können Sie sogar komplett eigene Sensoren auf Basis eines PowerShell Skripts erstellen. Oder Sie nutzen unsere vorhandenen Sensoren, wie die WMI Überprüfung, um gezielte Abfragen durchzuführen.
Ein Beispiel für interessante PerformanceCounter sind die sogenannten „Database Page Fault Stalls/sec“. Dieser Wert wird jedes Mal um 1 erhöht wenn der Datenbank Cache Manager eine neue Page anfordert. Sollte dieser Wert durchschnittlich größer als 10 sein, deutet dies darauf hin das sogenannte „Dirty Pages“ nicht schnell genug von der Datenbank entfernt werden. Ein Bottleneck für den Server.
Dies kann man mit dem vorhanden WMI Sensor in servereye überwachen.
Dazu müssen Sie nur folgende Abfrage durchführen:
select * from Win32_PerfFormattedData_ESE_MSExchangeDatabase where Name = 'Information Store'
Als Parameter verwenden Sie „DatabasePageFaultStallsPersec“
Der Grund warum wir hier eine WMI Abfrage verwenden ist dabei relativ einfach. Nur in der WMI sind die Namen der PerformanceCounter nicht lokalisiert. Diese Prüfung können Sie also auf einem deutschen Exchange Server wie auf einem englischen oder spanischen durchführen. Ansonsten haben Sie mit den lokalisierten Namen der Zähler zu kämpfen und Sie müssen Ihr Skript immer anpassen.
Die Werte die zurückkommen werden natürlich auch in einem Graph festgehalten. Hier im Bild sieht man das zum Glück nicht viel los ist.
Eine Übersicht verfügbarer/sinnvoller PerformanceCounter inklusive vorgeschlagener Schwellwerte für den Exchange finden Sie in diesem Technet-Artikel
In einem meiner kommenden Blogbeiträge widme ich mich außerdem der Problematik des Mailversandes.
Wie stellen Sie sicher, dass Ihr Server Emails zuverlässig versendet und empfägt?