Exchange Überwachungspraxis - Performance Counter

Exchange bindet durch die Installation sehr viele Performance Counter in das System ein, welche nicht zur zur Suche im Fehlerfall, sondern auch zur Messung der aktuellen Leistung geeignet sind. Übrigens können diese Counter auch per SNMP abgefragt werden.

Perfmon

Der Windows Performance Monitor ist das optimale Tool zur Überwachung des Servers. Er kann sowohl in Echtzeit die verschiedenen Parameter anzeigen, Sie bei Überschreitungen von Grenzwerten warnen und sogar langfristig Daten protokollieren. Mit Windows NT 4.0 muss er dazu aber interaktiv laufen oder mit Hilfsmitteln aus dem Ressource Kit (MONITOR.EXE) als Dienst eingerichtet werden. Bei Windows 200x ist PERFMON automatisch ein Dienst.

Nur ehe wir müssen, müssen wir wissen, welche Werte sinnvoll zu betrachten sind. Hier ist zu unterscheiden zwischen Alarmgrenzen und Trendwerten. Die individuellen Grenzen müssen  natürlich je Server bestimmt werden.

Alarmgrenzen

Es gibt Grenzen, die ein Server nicht erreichen sollte, bzw. Uns sagen, das aktuell oder sehr bald etwas nicht mehr wie erwartet funktioniert. Diese sollten z.B.: mit der Alarmfunktion des Performance Monitors überwacht werden. Diese Überwachung sollte Zeitnah (z.B. alle Minute) erfolgen.

Trendwerte

Zudem sollten bestimmte Werte z.B. mehrfach täglich aufgezeichnet werden, um über die Laufzeit eine Entwicklung erkennen zu können. Damit diese Datenmenge ihren Server nicht auffüllt, sollten sie hier nur mit Bedacht Werte aufnehmen und den freien Platz der Festplatte mit überwachen.

Trendwerte können geschickt eingesetzt ihnen eine Planungssicherheit geben, wenn es um den Ausbau des Servers geht.

Parameter

Hier finden Sie eine kurze Liste der interessanten Werte, die für eine erste Beobachtung in Frage kommen. Natürlich können Sie für sich selbst Schwerpunkte setzen.

Wert Beschreibung

CPU-Belastung %

Alarm, wenn mehrfach bei 100 %
Trendaufzeichnung sinnvoll

Pagefile Nutzung %

Alarm, wenn über 70%
Trendaufzeichnung sinnvoll

Freie Plattenkapazität

Alarm, wenn unter xx MByte je Platte individuell
Trendaufzeichnung sinnvoll

Pages/Sek

Alarm bei überschreiten eines Grenze
Trendaufzeichnung sinnvoll
Die Größe ist individuell für den Server zu ermitteln. Sie enthält nicht nur die Auslagerungsdatei, sondern jede Art Aktivität.

Disktime in %
(mit diskperf -y aktivieren !!)

Alarm wenn über 80 %
Trendaufzeichnung sinnvoll

Interrupts/s

Alarm bei Überschreitung
möglicherweise Anzeichen auf Hardwarefehler

Netzwerkpakete /s

Alarm bei Überschreitung
möglicherweise Anzeichen auf Angriff / Loop

Freier Speicher 

Alarm wenn unter 4 Megabyte !!!
(der Wert ist RICHTIG)
Anzeichen für Engpass in der Speicherverwaltung

MSexchangeIS RPC Calls/Sek

Ein guter Counter über die Aktivität der Clients. Hohe werde sind nicht unbedingt schlecht, sondern sagen nur dass der Server etwas zu tun hat

MSExchangeIS RPC Requests

Exchange akzeptiert per Default maximal 100 RPC Requests (fest codiert). Wenn der Wert an diese Grenze stößt, stocken die Clients und der Server ist zu langsam

Exchange Queues

Alarm bei Überschreitung einer bestimmten Länge

Exchange Store Messages/Sek

Alarm bei Überschreitung
Trendaufzeichnung sinnvoll

Ob der Server wirklich "busy" ist, sagen nur die Performancecounter. Auch ein Server mit 512 MB RAM und 700 MB "in Benutzung" ist nicht automatisch am auslagern.

Es ist natürlich eine gute Idee, die Aufnahme der Wert und die Überwachung der Server nicht auf dem Server selbst durchzuführen, sondern auf einer eigens dafür abgestellten Maschine laufen zu lassen. Die zentrale Kontrolle und Konfiguration wie auch der Zugriff auf historische Daten, wenn der Server eben nicht mehr online ist, können Hilfsmittel für weitere Entscheidungen sein.

Eine ausgefeilte Überwachung ist wenig interessant für kleine Firmen oder Teilzeitadministratoren, da der Aufwand für Planung, Implementation und Betrieb eher in Tagen zu müssen ist. Wenn SNMP interessant wird, dann ist Überwachung und Betrieb sowieso ein Thema. Auch die Kosten für eine "richtige" Managementsoftware ist meist fünfstellig und schon daher kein Setup, welches einmal aufzurufen ist. sondern das gesamte Thema bedeutet einen permanent mit einzuplanenden Zeitaufwand. Die Ergebnisse sind aber nicht nur interessant, sondern erlauben erst eine Sicherstellung einer bestimmten Verfügbarkeit.

Perfmon Intern

Das Performance Counter System von Windows ist manchmal ein sehr empfindliches System, da es durch Drittprodukte natürlich erweitert werden kann. Wenn Sie  z.B. Exchange installieren, dann fügt das Setup entsprechende Erweiterungen in das Betriebssystem ein. Und das passiert an mehreren Stellen

  • c:\WINDOWS\system32\perfc*.dat  (meist 007 oder 009)
    Datenbank, welche die Liste der Counter selbst enthält
  • c:\WINDOWS\system32\perfd*.dat (meist 007 oder 009)
    Enthält die dazu gehörige Beschreibung zu den Countern
  • Registry
    In der Registrierung ist nun je Dienst ebenfalls ein Verweis zu den Performance Countern und den Einträgen in den Datenbanken

Fatalerweise müssen diese Einträge auch sauber übereinstimmen und sind nicht auf allen Systemen identisch. Ergänzt eine neue Software eigene Counter, so muss Sie dazu die Counter und Hilfebeschreibungen in die Datenbank eintragen und die Verweise darauf in der Registrierung. Hierbei helfen die Programme "LODCTR.EXE" und "UNLODCTR.EXE", die anhand entsprechender INI-Dateien gesteuert werden, die vom Hersteller mitgeliefert werden. Suchen Sie auf einem Exchange Server einfach mal nach der Datei c:\WINDOWS\system32\esentprf.ini. Sie wird in etwa wie folgt aussehen:

Anhand dieser Informationen modifizieren LODCTR und UNLODCTR entsprechende Einträge in der Registrierung. Die Übersicht der installierten Performance Counter mit den Verweisen auf die Datenbank steht unter

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib

Hier gibt es die Einträge "Counter" und "Help" welche die einzelnen Counter samt ihrem Index enthalten:

Eine Anzeige ist sehr einfach mit dem Programm EXCTRLST.EXE (exctrlst.exe Extensible Counter list http://www.Microsoft.com/windows2000/techinfo/reskit/tools/existing/exctrlst-o.asp) möglich.

Sie sehen also, dass auch in den Tiefen von Windows einige Einträge stimmen müssen, damit die Performance Counter auch sauber funktionieren. Die Nummern müssen zudem nicht lückenlos sein.

Counter "reparieren"

Wenn Sie daher beim Start von PERFMON im Eventlog die Meldungen bekommen, dass einige Performance Counter nicht gefunden werden konnten, dann liegt es meist immer hier vergraben. Oftmals hilft dann die Deregistrierung und erneute Registrierung der Counter oder eine Suche nach "LODCTR" in der TechNet und Knowledgebase.

Mit dem Befehl LODCTR können Sie auch die Performance Counter neu aufbauen lassen. Starten Sie dazu den Dienst der Leistungsüberwachung und dann den Befehl "LODCTR /r" ein einer Shell:

LODCTR Rebuild

Genau genommen muss man das für 32 und 64bit in einer Admin-CMD ausführen:

Rem Counter aus dem Backup wieder herstellen
C:\Windows\system32\lodctr.exe /R
C:\Windows\SysWOW64\lodctr.exe /R

Rem Resync der Performance Counter
C:\Windows\System32\wbem\winmgmt.exe /RESYNCPERF
C:\Windows\SysWOW64\wbem\winmgmt.exe /RESYNCPERF

Besonders häufig scheint es auf Servern Probleme mit "BITS" und "WmiApRpl" zu geben.

Performance Counter und WMI

Windows Performance Counter können auch per WMI abgefragt werden.

Performance Counters can be consumed through WMI's COM and scripting interfaces. WMI also has support für instrumenting performance counters (by writing a WMI High Performance provider). Performance counters exposed by high performance providers can be seen in Perfmon by running "Perfmon /wmi". In Windows XP and later, these counters appear in Perfmon by default.

Ich selbst nutze WMI in Skripten, um z.B. mit QStatus die Warteschlangen abzufragen. Auch der Zugriff per "Permon /WMI" hat mir schon mehrfach geholfen, wenn die normalen Wege zum Counter durch eine fehlerhafte Drittsoftware kaputt gemacht wurden.

Performance Counter und PowerShell

Mit der PowerShell ist es sehr einfach, Performance Counter auszulesen und sogar eigene Counter anzulegen. Siehe auch PowerShell Beispiele

Performance Counter und SNMP

Leider kann man nicht alle Performance Counter direkt per SNMP abfragen. Dazu sind sogenannte Extension Agents erforderlich, die Microsoft nicht für alle Produkte mitliefert. Aber Dritthersteller sind hier natürlich sofort zur Stelle, um entsprechende Agenten nachzuliefern. Auf SNMP Intern finden Sie Links und Beschreibungen zu solchen Produkten.

Perfmon-Aufzeichnung konvertieren

Vielen unbekannt ist das Programm RELOG", welches bei Windows zum Standard Lieferumfang gehört. PERFMON kann ja Performance Counter in eine Binärdatei aufzeichnen, welche dann wieder mit Permon geöffnet und ausgewertet werden kann. Was machen Sie aber, wenn PERFMON ihnen nicht zur Auswertung reicht ?

Dann ist RELOG ihr Freund, denn RELOG liest die Binärdateien und kann dies als CSV oder TXT-Datei wieder abspeichern. RELOG kann die Daten aber auch über eine ODBC-Verbindung in eine beliebige von Windows ansprechbare Datenbank schreiben, z.B. den SQL-Server. Damit stehen ihnen nun weitere Auswertehilfsmittel zur Verfügung, z.B. SQL Reporting Services. Siehe auch SQL-Server

Das ist natürlich alles kein Ersatz für ein echtes permanentes Überwachung mit langfristigen Daten, Konsolidierung von Daten und Alarmierung bei Grenzwertüberschreitung, wie dies z.B. MOM2005 liefern kann.

Weitere Links

HKLM\SYSTEM\CurrentControlSet\Services\ESE\Performance\Show Advanced Counters: DWORD = 1